加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • Part 01●??什么是rsyslog?●
    • Part 02●??rsyslog日志類型及等級(jí)?●
    • Part 03●??如何快速搭建rsyslog?●
    • Part 04●??如何快速搭建到遠(yuǎn)程日志服務(wù)器的安全日記?●
    • Part 05●??結(jié)語(yǔ)??●
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

淺談rsyslog配置和日志轉(zhuǎn)發(fā)

2023/10/31
1.6萬(wàn)
閱讀需 17 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

作者:陳玲,單位:中國(guó)移動(dòng)智慧家庭運(yùn)營(yíng)中心

rsyslog是一個(gè)開(kāi)源的日志處理程序,被廣泛應(yīng)用于Linux系統(tǒng)中以提供日志轉(zhuǎn)發(fā)和接收功能。本文淺談linux配置rsyslog以及日志轉(zhuǎn)發(fā)。

Part 01●??什么是rsyslog?

作為一個(gè)功能強(qiáng)大和高度配置化的系統(tǒng)日志守護(hù)進(jìn)程,rsyslog可以在日志服務(wù)器或日志客戶端這兩種不同的環(huán)境中運(yùn)行。作為日志服務(wù)器,rsyslog可以從網(wǎng)絡(luò)中的其他主機(jī)收集日志數(shù)據(jù);作為日志客戶端,可以過(guò)濾并發(fā)送內(nèi)部日志消息至可路由的遠(yuǎn)程rsyslog服務(wù)器。

以下是rsyslog的一些關(guān)鍵特性:

多線程支持:rsyslog提供多線程支持,以實(shí)現(xiàn)更高的并發(fā)處理能力。

多協(xié)議支持:rsyslog可以使用UDP、TCP、SSL、TLS、RELP等協(xié)議收集信息。

數(shù)據(jù)庫(kù)集成:rsyslog能將日志數(shù)據(jù)存儲(chǔ)在MySQL、pgsql、Oracle等多種數(shù)據(jù)庫(kù)管理系統(tǒng)中。

強(qiáng)大的過(guò)濾器rsyslog提供了強(qiáng)大的自定義過(guò)濾器,可以對(duì)日志信息進(jìn)行過(guò)濾。

自定義輸出格式:用戶可以根據(jù)需要設(shè)置rsyslog的輸出格式。

日志集中管理:通過(guò)rsyslog,用戶可以進(jìn)行日志集中管理。

C/S架構(gòu):在rsyslog的客戶端/服務(wù)器架構(gòu)中,客戶端會(huì)將其日志上傳至服務(wù)器,用戶可以通過(guò)查詢服務(wù)端日志,實(shí)現(xiàn)對(duì)所有客戶端日志的集中管理。

這些特性使rsyslog成為處理和管理系統(tǒng)日志的強(qiáng)大工具。

Part 02●??rsyslog日志類型及等級(jí)?

rsyslog日志類型用來(lái)定義日志消息的來(lái)源,方便對(duì)日志進(jìn)行分類:

rsyslog日志等級(jí)定義不同消息的級(jí)別:

Part 03●??如何快速搭建rsyslog?

為了將內(nèi)部日志消息發(fā)送到遠(yuǎn)程rsyslog服務(wù)器,我們可以采用以下拓?fù)渑渲茫?/p>

將IP地址為172.21.44.93的虛擬機(jī)配置為rsyslog客戶端,用于發(fā)送日志消息。

將IP地址為172.21.44.245的虛擬機(jī)配置為rsyslog日志服務(wù)器,用于接收和存儲(chǔ)日志消息。

通過(guò)上述配置,我們可以實(shí)現(xiàn)內(nèi)部日志的集中管理和存儲(chǔ),以便進(jìn)行后續(xù)的分析和監(jiān)控。

3.1 rsyslog日志服務(wù)端配置

- 檢查是否安裝了rsyslog服務(wù)

ps -ef | grep rsyslogrsyslogd -v

- 編輯配置文件

vi /etc/rsyslog.conf$ModLoad imudp$UDPServerRun 514

這個(gè)配置使rsyslog守護(hù)進(jìn)程能夠通過(guò)UDP端口514接收日志消息。UDP是一種速度比TCP更快的協(xié)議,但不具備TCP協(xié)議的可靠性。如果需要使用可靠的傳輸機(jī)制,可以設(shè)置在TCP端口514上接收日志消息。

需要注意的是,可以同時(shí)啟用TCP和UDP來(lái)監(jiān)聽(tīng)TCP/UDP連接:

$ModLoad imtcp$InputTCPServerRun 514

除了配置接收日志信息的協(xié)議和端口外,還需要?jiǎng)?chuàng)建日志接收模板,以告知rsyslog守護(hù)進(jìn)程如何記錄從其他客戶端機(jī)器接收到的消息。

使用文本編輯器打開(kāi)/etc/rsyslog.conf文件,在GLOBAL DIRECTIVE塊之前添加以下模板配置。使用指令$template RemoteLogs指示rsyslog后臺(tái)進(jìn)程將日志消息寫入獨(dú)立的本地日志文件/var/log/rsyslogTest中。

$template RemoteLogs,"/var/log/rsyslogTest/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"  *.* ? RemoteLogs

- 編輯完配置文件后,重啟守護(hù)進(jìn)程使更改生效

systemctl restart rsyslog

可以使用netstat命令來(lái)驗(yàn)證rsyslog守護(hù)進(jìn)程是否正常工作,運(yùn)行以下命令:

$ sudo netstat -tulpn | grep rsyslog 如果rsyslog守護(hù)進(jìn)程正在使用UDP監(jiān)聽(tīng)端口,可以看到類似下面的輸出:udp 0 0 0.0.0.0:514 0.0.0.0:* 551/rsyslogdudp6 0 0 :::514 :::* 551/rsyslogd 如果rsyslog守護(hù)進(jìn)程被設(shè)置在TCP連接端口,可以看到類似下面的輸出:tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 1891/rsyslogdtcp6 0 0 :::514 :::* LISTEN 1891/rsyslogd以上輸出表明rsyslog守護(hù)進(jìn)程正在監(jiān)聽(tīng)相應(yīng)的端口,并處于活動(dòng)狀態(tài)。

3.2 rsyslog日志客戶端配置

- 安裝rsyslog守護(hù)進(jìn)程

CentOS 7上,rsyslog守護(hù)進(jìn)程已經(jīng)預(yù)先安裝。可以執(zhí)行以下命令來(lái)驗(yàn)證rsyslog是否已安裝到CentOS系統(tǒng)上:

# rpm -qa | grep rsyslog# rsyslogd -v、

如果處于某種原因,rsyslog守護(hù)進(jìn)程沒(méi)有出現(xiàn)在系統(tǒng)中,可以使用以下命令來(lái)安裝:

# yum install rsyslog

- 修改配置文件

用文本編輯器打開(kāi)位于/etc路徑下的rsyslog主配置文件:

# vim/etc/rsyslog.conf 開(kāi)啟文件用于編輯后,將IP地址替換為遠(yuǎn)程rsyslog服務(wù)器的IP地址:*.* @172.21.44.245:514 該配置指示rsyslog守護(hù)進(jìn)程將系統(tǒng)上各個(gè)設(shè)備的各種日志消息路由到遠(yuǎn)程rsyslog服務(wù)器的UDP端口514(IP地址為172.21.44.245)。如果出于某種原因,需要更為可靠的協(xié)議TCP,可以如下配置:*.* @@172.21.44.245:514

3.3 編輯完配置文件后,重啟守護(hù)進(jìn)程使更改生效

systemctl restart rsyslog.service

- 驗(yàn)證遠(yuǎn)程日志記錄

在rsyslog客戶端上輸入命令:logger -t kern -p err "addddddddddd",該命令將在客戶端上創(chuàng)建一個(gè)帶有kern類型和err等級(jí)的日志消息,內(nèi)容為"addddddddddd"。

rsyslog service查看日志信息,可以看到日志文件中有客戶端發(fā)送的內(nèi)容:

Part 04●??如何快速搭建到遠(yuǎn)程日志服務(wù)器的安全日記?

為了提高安全性,可以通過(guò)使用TLS進(jìn)行安全的遠(yuǎn)程日志記錄。使用TLS進(jìn)行安全的遠(yuǎn)程日志記錄具有以下一些安全優(yōu)勢(shì):

在網(wǎng)絡(luò)傳輸期間,系統(tǒng)日志消息已加密。

syslog發(fā)送方向syslog接收方進(jìn)行身份驗(yàn)證,因此接收者知道與其通信的是誰(shuí)。

syslog接收方向syslog發(fā)送方進(jìn)行身份驗(yàn)證,因此發(fā)送者可以驗(yàn)證是否確實(shí)發(fā)送給了預(yù)期的接收方。

雙向身份驗(yàn)證可防止中間人攻擊。

下面將使用兩個(gè)不同的節(jié)點(diǎn)演示如何使用帶有TLS證書的rsyslog進(jìn)行安全的遠(yuǎn)程日志記錄。這兩個(gè)節(jié)點(diǎn)分別是client和server,client節(jié)點(diǎn)作為rsyslog客戶端,server節(jié)點(diǎn)作為遠(yuǎn)程日志服務(wù)器。

4.1 生成CA證書

要?jiǎng)?chuàng)建用于將syslog安全轉(zhuǎn)發(fā)到遠(yuǎn)程日志服務(wù)器的自簽名證書,需要先安裝certtool工具,它是GnuTLS的一部分:

yum -y install gnutls-utils

生成私鑰,并設(shè)置權(quán)限以確保創(chuàng)建的密鑰只對(duì)root用戶可讀:

certtool --generate-privkey --outfile ca-key.pemchmod 400 ca-key.pem

創(chuàng)建自簽名CA證書:

certtool --generate-self-signed --load-privkey ca-key.pem --outfile ca.pem

關(guān)于證書有效性,當(dāng)該證書過(guò)期時(shí),需要重新創(chuàng)建所有證書,我們可以設(shè)置一個(gè)比較長(zhǎng)的時(shí)間3650天(大約10年)。

如圖所示,ca-key.pem是證書頒發(fā)機(jī)構(gòu)的私鑰,ca.pem是分發(fā)給其他節(jié)點(diǎn)的公鑰。

4.2 生成機(jī)器證書

在此步驟中,我們將生成服務(wù)器端(server)的私鑰和證書。--outfile反映了將要使用私鑰的服務(wù)器名稱,我們將server端名稱命名為node3:

certtool --generate-privkey --outfile node3-key.pem --bits 2048

通過(guò)私鑰獲取簽名請(qǐng)求,加載服務(wù)端私鑰node3-key.pem,并將該私鑰簽名到node3-request.pem:

certtool --generate-request --load-privkey node3-key.pem --outfile node3-request.pem

完成上述操作后,日志服務(wù)器的密鑰生成過(guò)程已經(jīng)完成。證書頒發(fā)機(jī)構(gòu)的私鑰(ca-key.pem)將對(duì)即將使用的證書進(jìn)行簽名。

certtool --generate-certificate --load-request node3-request.pem --outfile node3-cert.pem --load-ca-certificate ca.pem --load-ca-privkey ca-key.pem

4.3 分發(fā)TLS證書以啟用安全的遠(yuǎn)程日志記錄

接下來(lái),我們將密鑰復(fù)制到遠(yuǎn)程節(jié)點(diǎn)服務(wù)端node3。

在復(fù)制密鑰之前,在服務(wù)器節(jié)點(diǎn)上創(chuàng)建一個(gè)目錄rsyslog-key來(lái)存儲(chǔ)這些密鑰,將密鑰從client復(fù)制到server。

4.4 服務(wù)器配置以安全轉(zhuǎn)發(fā)系統(tǒng)日志

為了在服務(wù)端接受消息,需進(jìn)行相應(yīng)的配置:

在/etc/rsyslog.config文件中輸入以下信息:#將gtls驅(qū)動(dòng)程序設(shè)為默認(rèn)驅(qū)動(dòng)程序 $ DefaultNetstreamDriver gtls#證書文件 $ DefaultNetstreamDriverCAFile /etc/rsyslog-keys/ca.pem $ DefaultNetstreamDriverCertFile /etc/rsyslog-keys/node3-cert.pem $ DefaultNetstreamDriverKeyFile /etc/rsyslog-keys/node3-key.pem#TCP偵聽(tīng)器$ ModLoad imtcp #在僅TLS模式下運(yùn)行驅(qū)動(dòng)程序$ InputTCPServerStreamDriverMode 1$ InputTCPServerStreamDriverAuthMode anno#在端口514上啟動(dòng)偵聽(tīng)器$ InputTCPServerRun 514

重啟rsyslog服務(wù),檢查服務(wù)狀態(tài):

systemctl status rsyslog.service

4.5 客戶端配置以安全地接收日志消息

配置客戶端實(shí)現(xiàn)將日志安全地傳輸?shù)竭h(yuǎn)程日志服務(wù)器,在客戶端創(chuàng)建目錄,存儲(chǔ)ca.pem。

在/etc/rsyslog.config文件中輸入以下信息:

#tls protocol $DefaultNetstreamDriver gtls $DefaultNetstreamDriverCAFile /etc/rsyslog-keys/ca.pem $ActionSendStreamDriverAuthMode anon$ActionSendStreamDriverMode 1 *.* @@172.21.44.245:514

重啟rsyslog服務(wù),檢查服務(wù)狀態(tài):

systemctl status rsyslog.service

4.6驗(yàn)證遠(yuǎn)程日志記錄

在客戶端rsyslog client輸入:logger "hello world",截圖信息可知遠(yuǎn)程日志服務(wù)器接收到了客戶端發(fā)送的消息。

Part 05●??結(jié)語(yǔ)??

rsyslog是一個(gè)強(qiáng)大而安全的日志處理系統(tǒng),被廣泛用于不同Linux發(fā)行版中,如Ubuntu 14.04、CentOS 6及以后的版本。它提供了豐富的功能,可以從不同的源收集日志,并提供過(guò)濾和格式化日志的能力。

通過(guò)使用rsyslog,我們能夠輕松管理和記錄系統(tǒng)日志。rsyslog可以集中處理和存儲(chǔ)登錄認(rèn)證、系統(tǒng)日志等重要信息,并將其發(fā)送到遠(yuǎn)程日志服務(wù)器上。這樣做有助于減輕系統(tǒng)的負(fù)載并確保日志的集中管理。此外,通過(guò)rsyslog,我們可以隨時(shí)獲取最新的日志信息,以進(jìn)行監(jiān)控和分析,幫助我們了解系統(tǒng)的運(yùn)行狀況。

總的來(lái)說(shuō),rsyslog在日志收集方面提供了強(qiáng)大的功能,使我們能夠更好地管理和利用系統(tǒng)日志。它是一個(gè)可靠且廣泛使用的工具,有助于提高系統(tǒng)的安全性、可靠性和可管理性。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
TJA1042T/3/CM,118 1 NXP Semiconductors TJA1042 - High-speed CAN transceiver with Standby mode SOIC 8-Pin

ECAD模型

下載ECAD模型
$1.55 查看
TLE6250GV33 1 Infineon Technologies AG Interface Circuit, 1-Trnsvr, BICMOS, PDSO8, GREEN, PLASTIC, SOP-8

ECAD模型

下載ECAD模型
$3.27 查看
KSZ9031RNXCC 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER

ECAD模型

下載ECAD模型
$2.81 查看
中國(guó)移動(dòng)

中國(guó)移動(dòng)

中國(guó)移動(dòng)有限公司(「本公司」,包括子公司合稱為「本集團(tuán)」)于1997年9月3日在香港成立,本集團(tuán)在中國(guó)內(nèi)地所有三十一個(gè)省、自治區(qū)、直轄市以及香港特別行政區(qū)提供通信和信息服務(wù),業(yè)務(wù)主要涵蓋個(gè)人、家庭、政企和新興市場(chǎng)的語(yǔ)音、數(shù)據(jù)、寬帶、專線、IDC、云計(jì)算、物聯(lián)網(wǎng)等,是中國(guó)內(nèi)地最大的通信和信息服務(wù)供應(yīng)商,亦是全球網(wǎng)絡(luò)和客戶規(guī)模最大、盈利能力領(lǐng)先、市值排名位居前列的世界級(jí)通信和信息運(yùn)營(yíng)商。

中國(guó)移動(dòng)有限公司(「本公司」,包括子公司合稱為「本集團(tuán)」)于1997年9月3日在香港成立,本集團(tuán)在中國(guó)內(nèi)地所有三十一個(gè)省、自治區(qū)、直轄市以及香港特別行政區(qū)提供通信和信息服務(wù),業(yè)務(wù)主要涵蓋個(gè)人、家庭、政企和新興市場(chǎng)的語(yǔ)音、數(shù)據(jù)、寬帶、專線、IDC、云計(jì)算、物聯(lián)網(wǎng)等,是中國(guó)內(nèi)地最大的通信和信息服務(wù)供應(yīng)商,亦是全球網(wǎng)絡(luò)和客戶規(guī)模最大、盈利能力領(lǐng)先、市值排名位居前列的世界級(jí)通信和信息運(yùn)營(yíng)商。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

移動(dòng)Labs是中國(guó)移動(dòng)的社交化新媒體平臺(tái),是面向外部行業(yè)及產(chǎn)業(yè)鏈合作伙伴的信息發(fā)布、業(yè)務(wù)發(fā)展和產(chǎn)業(yè)推進(jìn)門戶。