Logstash简介
官网地址:https://www.elastic.co/products/logstash
Logstash is an open source data collection engine with real-time pipelining capabilities。简单来说logstash就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供里很多功能强大的滤网以满足你的各种应用场景,Logstash常用于日志关系系统中做日志采集设备;
Logstash基于java开发的开源项目,是一个数据收集处理转发系统,Logstash的事件(logstash将数据流中等每一条数据称之为一个event)处理流水线有三个主要角色完成:inputs –> filters –> outputs:
inpust:必须,负责产生事件(Inputs generate events),常用:File、syslog、redis、beats(如:Filebeats)
filters:可选,负责数据处理与转换(filters modify them),常用:grok、mutate、drop、clone、geoip
outpus:必须,负责数据输出(outputs ship them elsewhere),常用:elasticsearch、file、graphite、statsd
其中inputs和outputs支持codecs(coder&decoder)在1.3.0 版之前,logstash 只支持纯文本形式输入,然后以过滤器处理它。但现在,我们可以在输入 期处理不同类型的数据,所以完整的数据流程应该是:input | decode | filter | encode | output;codec 的引入,使得 logstash 可以更好更方便的与其他有自定义数据格式的运维产品共存,比如:graphite、fluent、netflow、collectd,以及使用 msgpack、json、edn 等通用数据格式的其他产品等
Logstash最常用于ELK(elasticsearch + logstash + kibane)中作为日志收集器使用
Logstash安装指南
Logstash安装环境:
支持系统 | centos6.10 |
Logstash使用版本 | Logstash-7.2.0 |
java使用版本 | 1.8.0+ |
1. java安装环境可参考:https://www.cnblogs.com/Huang-Niu/p/11250268.html(ELK——ElasticSearch部署及介绍)
2. Logstash安装(二进制包)
2.1 将Logstash包上传至服务器,解压
tar xf logstash-7.2.0.tar.gz -C /usr/local
2.2 修改配置文件(需要新写一个配置文件,因为对接的是filebeat,所以不单独写Logstash的配置文件)
vim /usr/local/logstash-7.2.0/confignginxlog.conf
input { beats { port => 5044 } }
output {
elasticsearch {
hosts => "192.168.1.130:9200"
index => "nginx-accesslog-%{+YYYY.MM.dd}"
}
}
2.3 收集增加redis配置文件修改
input { redis { host => "192.168.1.128" port => 6379 data_type => "list" key => "test" } }
output {
elasticsearch {
hosts => "192.168.1.130:9200"
index => "nginx-accesslog-%{+YYYY.MM.dd}"
}
}
2.4 配置文件修改完成后,指定配置文件进行启动(可直接使用root启动)
/usr/local/logstash-7.2.0/bin/logstash -f /usr/local/logstash-7.2.0/config/nginxlog.conf
/usr/local/logstash-7.2.0/bin/logstash -f /usr/local/logstash-7.2.0/config/nginxlog.conf > /dev/null 2>&1 & #第一条命令无报错结束后,在执行此命令
2.5 若出现下图报错,为配置文件缩进问题,将从上面复制的配置文件首行缩进在server中重新编写即可