Rsyslog系統日志轉發


 一、rsyslog介紹

  rsyslog是一個快速處理日志的程序,提供了高性能、安全功能和模塊化設計,將多種來源輸入輸出轉換結果到目的地

  優點:多線程、支持加密協議(ssl、relp等)、多種數據庫(mysql)等。

  可以監控錄入每個用戶的鍵入命令

 1.1、rsyslog架構圖

 

Rsyslog架構,這是rsyslog官網 上的一張圖,用來介紹rsyslog的架構, rsyslog的消息流是從輸入模塊->預處理模塊->主隊列->過濾模塊- >執行隊列->輸出模塊。
在這個流程圖中,輸入、輸出、過濾三個部分稱為module,輸入模塊有imklg、imsock、 imfile. 輸出模塊有omudp、omtcp、 omfile、 omprog、 ommysql. omruleset 。
過濾模塊研究不多,只會提到mmnormalize.預處理模塊主要解決各種syslog協議實現間的差異,舉例說明如果日志系統client端使用rsyslog、server端使用syslog-ng,如果自己不做特殊處理syslog-ng是無法識別的。但是反過來,rsyslog的server端就可以識別syslog-ng發過來的消息。
Input模塊,包括imklg、 imsock. imfile、 imtcp等, 是消息來源。
Filetr模塊,處理消息的分析和過濾,rsyslog可以根據消 息的任何部分進行過濾,后面會介紹到具體的做法。
Output模塊,包括omfile、 omprog. omtcp、 ommysq|等。 是消息的目的地。
Queue模塊,負責消啟的存儲,從Input傳入的未經過濾的消啟放在主隊列中,過濾后的消息放入到不同
action queue中,再由action queue送到各個輸出模塊。

二、實踐部署

2.1、環境:

  CentOS7.4    2m2g  server  client1  client2

2.2、server上部署操作

  安裝rsyslog程序(rsyslog默認已經在發行版安裝,如果系統中沒有的話,可以yum安裝)

# yum install rsyslog -y

grep
-v "^#" /etc/rsyslog.conf | grep -v "^$" $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) $ModLoad imjournal # provides access to the systemd journal $ModLoad immark # provides --MARK-- message capability $ModLoad imudp $UDPServerRun 514 $ModLoad imtcp $InputTCPServerRun 514 $WorkDirectory /var/lib/rsyslog $AllowedSender tcp, 192.168.37.100/24 $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $template Remote,"/data/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log" :fromhost-ip, !isequal, "127.0.0.1" ?Remote $IncludeConfig /etc/rsyslog.d/*.conf $OmitLocalLogging on $IMJournalStateFile imjournal.state *.info;mail.none;authpriv.none;cron.none /data/log/messages authpriv.* /var/log/secure mail.* -/var/log/maillog cron.* /var/log/cron *.emerg :omusrmsg:* uucp,news.crit /var/log/spooler local7.* /var/log/boot.log

 

1、$AllowedSender tcp, 192.168.37.100/24  允許37.0網段內的主機以 tcp 協議來傳輸
2、 $template Remote,"/data/log/ %fromhost-ip%/ %fromhost-ip%_ %$YEAR%- %$MONTH%-%$DAY%.log"定義模板,接受日志文件路徑,區分了不同主機的日志
3、 :fromhost-ip, !isequal, "127.0.0.1" ?Remote過濾server本機的日志。
4、$InputTCPServerRun 514開啟tcp,tcp和udp可以共存的

創建日志目錄,盡量選擇系統內比較大的區域創建,因為考慮到要存放很多服務器的日志文件。

mkdir -pv /data/log

 

修改完后,重啟rsyslog服務,並查看監聽端口,514是否是tcp協議

2.3、client端部署操作

先修改兩台機器的配置文件

# grep -v "^$" /etc/rsyslog.conf | grep -v "^#"

$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal
$WorkDirectory /var/lib/rsyslog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$template myFormat,"%timestamp% %fromhost-ip% %msg%\n"
$ActionFileDefaultTemplate myFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$OmitLocalLogging on
$IMJournalStateFile imjournal.state
*.info;mail.none;authpriv.none;cron.none                @@192.168.37.100
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                 :omusrmsg:*
uucp,news.crit                                          /var/log/spooler
local7.*                                                /var/log/boot.log

 

修改完后  wq! restart

2.4、驗證

在服務器上進到  /data/log  目錄下,進行查看,會發現這樣的文件結構

[root@node ~]# tree /data/log/
/data/log/
├── 192.168.37.101
│ └── 192.168.37.101_2020-07-23.log
├── 192.168.30.57
│ └── 192.168.37.102_2020-07-23.log
└── messages

 

在server上操作查看日志

tail -f /data/log/192.168.37.101/192.168.37.101_2020-07-23.log 

 

三、收集系統其它服務日志,在客戶端上操作

3.1、修改配置文件,在尾部添加幾行參數

module(load="imfile" PollingInterval="5")
#加載imfile模塊,並5秒刷新一次 $InputFileName
/var/log/http/access.log
#要監控的日志文件路徑 $InputFileTag Apache1
:
#定義文件標簽,注意最后是冒號: $InputFileStateFile state
-Apache1
#定義狀態文件 $InputRunFileMonitor
#激活讀取,可以設置多組日志讀取,每組結束時設置本參數

 

3.2、老樣子  wq!   systemctl restart rstslog

3.3、查看server端的日志收集

四、總結

最近發現系統有自己用戶的操作輸入內容,很好奇,於是收集了一下類似的博客,發現確實有這個服務,這樣可以監控其他人員的操作,方便不時之需造成失誤時錯誤環境的演示以及排錯

 


免責聲明!

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



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