使用logstash配置rsyslog收集haproxy日誌
阿新 • • 發佈:2020-12-09
一,使用logstash配置rsyslog收集haproxy日誌
1.rsyslog介紹
在centos 6及之前的版本叫做syslog,centos 7開始叫做rsyslog,根據官方的介紹,rsyslog(2013年版本)可以達到每秒轉發百萬條日誌的級別,rsyslog是日誌收集處理工具
它提供了高效能,出色的安全性和模組化設計。儘管rsyslog最初是常規的syslogd,但已發展成為一種瑞士軍刀式的記錄工具,能夠接受來自各種來源的輸入,並將其轉換,然後輸出到不同的目的地。
當應用有限的處理時,RSYSLOG每秒可以將超過一百萬的訊息傳遞到本地目的地。即使在遠端目的地和更精細的處理下,效能通常也被認為是“驚人的”。
2.安裝配置rsyslog
#安裝rsyslog
[root@lb01 ~]# yum install -y rsyslog
#編輯rsyslog配置檔案
[root@lb01 ~]# vim /etc/rsyslog.conf
#開啟支援udp協議
$ModLoad imudp
$UDPServerRun 514
#開啟支援tcp協議
$ModLoad imtcp
$InputTCPServerRun 514
#最後面一行新增,local6對應haproxy配置檔案定義的local級別,埠為Logstash的埠
local6.* @@10.0.0.53:2222
3.安裝並配置haproxy
[root@lb01]# vim /etc/haproxy/haproxy.cfg #全域性配置 global #最大連線數 maxconn 100000 #庫檔案許可權目錄 chroot /var/lib/haproxy #使用者和組 uid 99 gid 99 #後臺啟動 daemon #指定啟動程序數量 nbproc 1 #pid檔案 pidfile /var/run/haproxy.pid #定義日誌,與rsyslog中的配置對應 log 127.0.0.1 local6 info #預設配置 defaults #開啟長連線 option http-keep-alive #獲取使用者真實IP option forwardfor #最大連線數 maxconn 100000 #執行模式 mode http timeout connect 300000ms timeout client 300000ms timeout server 300000ms #監聽狀態 listen status #執行模式 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 tomcat hdr_dom(host) -i linux.tomcat.com acl nginx hdr_dom(host) -i linux.nginx.com ###################USE ACL############################## use_backend tomcat_host if tomcat use_backend nginx_host if nginx ######################################################## backend tomcat_host mode http option httplog balance source server web1 10.0.0.7:8080 check inter 2000 rise 3 fall 2 weight 1 backend nginx_host mode http option httplog balance source server web1 10.0.0.7:80 check inter 2000 rise 3 fall 2 weight 1
# 註釋:
check:檢查健康狀態
inter:檢查狀態的間隔時間
rise:檢查次數
fall:檢查過程中錯誤次數
weight:權重
圖解
4.啟動服務
[root@lb01 ~]# systemctl start haproxy.service
[root@lb01 ~]# systemctl start rsyslog
# 檢查啟動
[root@lb01 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:9999 0.0.0.0:* LISTEN 8060/haproxy
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 8060/haproxy
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 8028/rsyslogd
tcp6 0 0 :::514 :::* LISTEN 8028/rsyslogd
5.配置hosts測試
10.0.0.4 linux.tomcat.com linux.nginx.com
# 分別訪問
linux.tomcat.com # 代理頁面
linux.nginx.com # 代理頁面
http://linux.tomcat.com:9999/haproxy-status # 代理服務狀態頁面
6.配置logstash收集haproxy日誌
1)配置收集到標準輸出
[root@redis01 ~]# vim /etc/logstash/conf.d/haproxy_stdout.conf
input {
syslog {
port => "2222"
}
}
output {
stdout {}
}
2)配置收集到ES
[root@redis01 ~]# vim /etc/logstash/conf.d/haproxy_es.conf
input {
syslog {
port => "2222"
}
}
output {
elasticsearch {
hosts => ["10.0.0.71:9200"]
index => "haproxy_es_%{+YYYY-MM-dd}"
}
}