部署Logstash--Elastic Stack之六
1.Logstash是一个开源的服务器端数据处理管道,可以同时从多个源获取数据。面对海量的日志量,rsyslog和sed,awk等日志收集,处理工具已经显的力不从心。logstash是一个整合型的框架,可以用以日志的收集,存储,索引构建(一般这个功能被ES取代)。
工作机制:
logstash 的服务器端从redis/kafka/rabbitmq等(broker)消息队列获取数据。一条数据一条数据的清洗。清洗完成后发送给elasticsearch集群。再在kibana上显示。对于logstash而言,他的所有功能都是基于插件来完成的。input,filter,output等等都是这样。
2.在192.168.1.223上安装logstash #yum install -y logstash 3.安装完之后,先不要启动服务,先配置logstash收集syslog日志: #vim /etc/logstash/conf.d/syslog.conf # 加入如下内容 input { # 定义日志源 syslog { type => "system-syslog" # 定义类型 port => 10514 # 定义监听端口 } } output { # 定义日志输出 stdout { codec => rubydebug # 将日志输出到当前的终端上显示 } } #/usr/share/logstash/bin/logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.test_and_exit Config Validation Result: OK #代表配置文件没有问题 命令说明: --path.settings 用于指定logstash的配置文件所在的目录 -f 指定需要被检测的配置文件的路径 --config.test_and_exit 指定检测完之后就退出,不然就会直接启动了 #配置logstash服务器的ip以及配置的监听端口: # vim /etc/rsyslog.conf *.* @@192.168.1.223:10514
#重启rsyslog,让配置生效: #systemctl restart rsyslog #指定配置文件,启动logstash: #/usr/share/logstash/bin/logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf 4.测试将信息输出到当前终端 我们在配置文件中定义的是将信息输出到当前终端,终端中以JSON的格式打印了收集到的日志,测试成功。
#配置logstash #cp -apr logstash.yml logstash.yml.bak #vi /etc/logstash/logstash.yml http.host: "192.168.1.223"
5.以上只是测试的配置,这一步我们需要重新改一下配置文件,让收集的日志信息输出到es服务器中,而不是当前终端: # 更改为如下内容 #vim /etc/logstash/conf.d/syslog.conf input { syslog { type => "system-syslog" port => 10514 } } output { elasticsearch { hosts => ["192.168.1.224:9200"] # 定义es服务器的ip index => "system-syslog-%{+YYYY.MM}" # 定义索引 } } #同样的需要检测配置文件有没有错: #/usr/share/logstash/bin/logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.test_and_exit 6.启动logstash服务,并检查进程以及监听端口: #systemctl restart logstash #netstat -lntp |grep 9600 #netstat -lntp |grep 10514 7.重启服务之后,发现没有监听端口,查看logstash的日志和messages的日志,需要设置一下权限 #chown -R logstash /home/logstash/ #chown -R logstash /var/log/logstash/ #systemctl restart logstash
8.完成了logstash服务器的搭建之后,执行以下命令可以获取索引信息: #curl '192.168.1.223:9200/_cat/indices?v'
如上,可以看到,在logstash配置文件中定义的system-syslog索引成功获取到了,证明配置没问题,logstash与es通信正常。
9.获取指定索引详细信息: #curl -XGET '192.168.1.224:9200/system-syslog-2019.12?pretty' #如果日后需要删除索引的话,使用以下命令可以删除指定索引: #curl -XDELETE '192.168.1.224:9200/system-syslog-2019.12'
10.es与logstash能够正常通信后就可以去配置kibana了,
在浏览器访问192.168.1.224:5601,到kibana页面上配置索引:
配置成功后点击 “Discover” :
参考链接:
https://blog.51cto.com/zero01/2082794
https://www.cnblogs.com/cjsblog/p/9459781.html
https://www.cnblogs.com/fzxiaomange/tag/efk/