Logstash配合rsyslog收集haproxy日誌
阿新 • • 發佈:2020-08-22
1.rsyslog介紹
在centos 6及之前的版本叫做syslog,centos 7開始叫做rsyslog,根據官方的介紹,rsyslog(2013年版本)可以達到每秒轉發百萬條日誌的級別,官方網址:http://www.rsyslog.com/
2.安裝
[root@web01 ~]# yum isntall -y rsyslog
3.配置rsyslog
[root@web01 ~]# vim /etc/rsyslog.conf #開啟註釋 $ModLoad imudp $UDPServerRun 514 $ModLoad imtcp $InputTCPServerRun 514 #新增日誌收集級別 local6.* @@172.16.1.52:2222
4.安裝haproxy
[root@web01 ~]# yum install -y haproxy
5.配置haproxy
[root@web01 ~]# vim /etc/haproxy/haproxy.cfg global maxconn 100000 chroot /var/lib/haproxy uid 99 gid 99 daemon nbproc 1 pidfile /var/run/haproxy.pid log 127.0.0.1 local6 info defaults option http-keep-alive option forwardfor maxconn 100000 mode http timeout connect 300000ms timeout client 300000ms timeout server 300000ms listen stats mode http bind 0.0.0.0:9999 stats enable log global stats uri /haproxy-status stats auth haadmin:123456 #frontend web_port frontend web_port bind 0.0.0.0:80 mode http option httplog log global option forwardfor ###################ACL Setting########################## acl pc hdr_dom(host) -i www.elk.com acl mobile hdr_dom(host) -i m.elk.com ###################USE ACL############################## use_backend pc_host if pc use_backend mobile_host if mobile ######################################################## backend pc_host mode http option httplog balance source server web1 10.0.0.53:8081 check inter 2000 rise 3 fall 2 weight 1 backend mobile_host mode http option httplog balance source server web1 10.0.0.53:8080 check inter 2000 rise 3 fall 2 weight 1 [root@web01 ~]# vim /etc/haproxy/haproxy.cfg #全域性配置 global #最大併發 maxconn 100000 #安全機制 chroot /var/lib/haproxy #指定啟動的使用者和組 uid 99 gid 99 #守護程序 daemon #haproxy的程序數 nbproc 1 #指定pid檔案 pidfile /var/run/haproxy.pid #指定日誌級別 log 127.0.0.1 local6 info #預設配置 defaults #開啟長連線 option http-keep-alive #獲取使用者真實IP option forwardfor #最大連線數 maxconn 100000 #支援http協議 mode http #設定連線超時時間 timeout connect 300000ms timeout client 300000ms timeout server 300000ms #監控狀態 listen status #支援http mode http #監聽埠 bind 0.0.0.0:9999 #啟動 stats enable #日誌級別 log global #訪問uri地址 stats uri /haproxy-status #狀態頁使用者名稱和密碼 stats auth haadmin:123456 #frontend web_port frontend web_port bind 0.0.0.0:80 mode http option httplog log global option forwardfor ###################ACL Setting########################## acl nginx hdr_dom(host) -i www.nginx.com acl tomcat hdr_dom(host) -i www.tomcat.com ###################USE ACL############################## use_backend nginx_host if nginx use_backend tomcat_host if tomcat ######################################################## backend nginx_host mode http option httplog balance source server web01 10.0.0.7:8081 check inter 2000 rise 3 fall 2 weight 1 backend tomcat_host mode http option httplog balance source server web01 10.0.0.7:8080 check inter 2000 rise 3 fall 2 weight 1
6.修改Nginx啟動埠
[root@web01 ~]# vim /etc/nginx/nginx.conf
server {
listen 8081 default_server;
...
7.啟動服務
#啟動haproxy
[root@web01 ~]# systemctl start haproxy.service
#啟動rsyslog
[root@web01 ~]# systemctl start rsyslog
#驗證
[root@web01 ~]# netstat -lntp
8.訪問狀態頁面
http://10.0.0.7:9999/haproxy-status haadmin 123456
9.測試訪問Nginx和tomcat
#配置本地hosts
10.0.0.7 www.nginx.com
10.0.0.7 www.tomcat.com
#訪問頁面
http://www.nginx.com/
http://www.tomcat.com/
10.測試配置收集proxy日誌
[root@db02 ~]# vim /etc/logstash/conf.d/haproxy.conf
input {
syslog {
port => "2222"
}
}
output {
stdout {}
}
#訪問haproxy的頁面,檢視有無輸出
11.配置收集proxy日誌到ES
[root@db02 ~]# vim /etc/logstash/conf.d/haproxy_es.conf
input {
syslog {
port => "2222"
}
}
output {
elasticsearch {
hosts => ["10.0.0.51:9200"]
index => "haproxy_log_%{+YYYY-MM-dd}"
}
}