搭建rsyslog日志服務器


環境配置

centos7系統 client1:192.168.91.17

centos7系統 master:192.168.91.18

rsyslog客戶端配置

1、rsyslog安裝

yum install rsyslog  

2、啟用UDP進行傳輸

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則使用@

3、重啟rsyslog服務

systemctl restart rsyslog

rsyslog服務端配置

1、啟用UDP/TCP進行傳輸

vim /etc/rsyslog.conf # Provides UDP syslog reception #若啟用UDP進行傳輸,則取消下面兩行的注釋 $ModLoad imudp $UDPServerRun 514 ​ # Provides TCP syslog reception #若啟用TCP進行傳輸,則取消下面兩行的注釋 #$ModLoad imtcp #$InputTCPServerRun 514

2、重啟rsyslog服務

systemctl restart rsyslog

測試服務是否能夠將客戶端的系統日志傳回服務端

1、在服務端不間斷輸出系統日志文件

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
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM