实验一:logstash收集haproxy日志
架构图
实现原理:haproxy服务器监听kibana服务器的地址和端口号,rsyslog定义haproxy的日志级别,并监听logstash服务器地址,以TCP模式的网络协议监听端口:1514,logstash服务器也监听1514网络端口,实现rsyslog和logstash服务器的端口一致,最终haproxy日志文件传到logstash主机,logstash主机将haproxy日志再传到elasticsearch主机上。
1、安装并配置haproxy与rsyslog服务器
1、安装并配置haproxy服务器
# yum install haproxy -y
2、配置haproxy文件 : /etc/haproxy/haproxy.cfg
log 127.0.0.1 local2 # 定义haproxy的日志级别,默认就是local2 listen kibana bind 0.0.0.0:5601 #监听kibana端口 mode http log global # 调用haproxy全局部分的log文件 server 192.168.7.100 192.168.7.100:5601 check # 监听kibana服务器的IP地址,并作状态检测
3、修改rsyslog配置文件,并定义log日志级别
# vim /etc/rsyslog.conf $ModLoad imudp # 开启UDP网络协议日志收集模式 $UDPServerRun 514 $ModLoad imtcp #开启TCP网络协议日志收集模式 $InputTCPServerRun 514
local2.* /var/log/haproxy.log # 对应haproxy的日志级别 local2.* @@192.168.7.102:1514 #指定logstash主机的IP地址和对应的logstash配置文件中的端口号:1514,两个@@属于tcp网络模式
4、重启haproxy和rsyslog服务
# systemctl restart haproxy rsyslog
2、在logstash服务器上创建收集haproxy文件
1、在/etc/logstash/conf.d目录下创建一个rsyslog.conf配置文件,收集haproxy日志文件。
input { syslog { port => 1514 #与rsyslog配置文件中监控的端口号一致 type => "rsyslog-100" } } output { if [type] == "rsyslog-100" { elasticsearch { hosts => ["192.168.7.100:9200"] index => "rsyslog-100-%{+YYYY.MM.dd}" } } }
2、重启logstash服务
# systemctl restart logstash
3、在网页上访问haproxy代理的网站:192.168.7.103:5601
4、然后在head插件上查看haproxy的日志已经存在。
3、在logstash网页上创建索引
1、创建索引
2、在discover选项查看添加的日志信息