環境配置linux
centos7系統 client1:192.168.91.17vim
centos7系統 master:192.168.91.18centos
rsyslog客戶端配置服務器
一、rsyslog安裝網絡
yum install rsyslog
二、啓用UDP進行傳輸tcp
vim /etc/rsyslog.conf # Provides UDP syslog reception #若啓用UDP進行傳輸,則取消下面兩行的註釋 $ModLoad imudp $UDPServerRun 514 # Provides TCP syslog reception #若啓用TCP進行傳輸,則取消下面兩行的註釋 #$ModLoad imtcp #$InputTCPServerRun 514 *.* @192.168.28.149:514 #若啓用TCP傳輸則使用@@,如果UDP則使用@
三、重啓rsyslog服務ide
systemctl restart rsyslog
rsyslog服務端配置測試
一、啓用UDP/TCP進行傳輸優化
vim /etc/rsyslog.conf # Provides UDP syslog reception #若啓用UDP進行傳輸,則取消下面兩行的註釋 $ModLoad imudp $UDPServerRun 514 # Provides TCP syslog reception #若啓用TCP進行傳輸,則取消下面兩行的註釋 #$ModLoad imtcp #$InputTCPServerRun 514
二、重啓rsyslog服務centos7
systemctl restart rsyslog
測試服務是否可以將客戶端的系統日誌傳回服務端
一、在服務端不間斷輸出系統日誌文件
tailf /var/log/messages
第二:在客戶端使用logger生成測試日誌信息(並查看服務器端輸出,判斷是否經過網絡將日誌收集到了)
logger "rsyslog test"
Rsyslog搭建中心日誌服務器
默認配置下,接收到的日誌寫入服務端對應的日誌文件裏,如:若是涉及到了secure日誌的記錄,就會寫到服務器端的/var/log/secure裏面,也就是客戶端本身寫一份而後再往服務器端寫一份。
咱們經過下面三個問題,對服務端日誌配置進行優化。
優化問題 1:從客戶端發送過來的日誌,在主機位置顯示本身的主機名,本地查看仍是能夠的,若是都匯聚到一個服務器了,如何去判斷此條消息是哪一個服務器發過來的呢,顯然要以IP的形式更好一點,下面來設置一下。
須要在服務器端修改日誌模板配置:
#### GLOBAL DIRECTIVES #### $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $template myFormat,"%timestamp% %fromhost-ip% %syslogtag% %msg%\n" $ActionFileDefaultTemplate myFormat
重啓rsyslog服務後,經過IP形式展現:
優化問題 2:服務端接收的日誌過於分散,是否可疑將日誌存放到一個指定的目錄裏面,進行日誌分類存儲。
打開/etc/rsyslog.conf文件,啓用UDP協議,儘可能避免修改主配置文件,咱們在/etc/rsyslog.d/
中新建default.conf,追加以下模板:
#### GLOBAL DIRECTIVES #### # Use default timestamp format # 使用自定義的格式 $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $template myFormat,"%timestamp% %fromhost-ip% %syslogtag% %msg%\n" $ActionFileDefaultTemplate myFormat # 根據客戶端的IP單獨存放主機日誌在不一樣目錄,rsyslog須要手動建立 $template RemoteLogs,"/var/log/rsyslog/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log" # 排除本地主機IP日誌記錄,只記錄遠程主機日誌 :fromhost-ip, !isequal, "127.0.0.1" ?RemoteLogs # 忽略以前全部的日誌,遠程主機日誌記錄完以後再也不繼續往下記錄 & ~
經過使用自定義格式,將不一樣客戶端IP的日誌單獨存放在不一樣目錄。
優化問題 3:
rsyslog寫日誌自定義,好比/data/rsyslog 目錄權限沒有問題,可是日誌沒法正常輸出?
只須要關閉SELinux便可實現日誌文件路徑寫入的問題。
臨時關閉SELinux setenforce 0 永久關閉 vi /etc/selinux/config 改爲 SELINUX=disable