部署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/

原文地址:https://www.cnblogs.com/llwxhn/p/12942956.html