加入星計劃,您可以享受以下權益:

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

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

09/27 10:10
3.8萬
閱讀需 17 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

作者:陳玲,單位:中國移動智慧家庭運營中心

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

Part 01●??什么是rsyslog?

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

以下是rsyslog的一些關鍵特性:

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

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

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

強大的過濾器rsyslog提供了強大的自定義過濾器,可以對日志信息進行過濾。

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

日志集中管理:通過rsyslog,用戶可以進行日志集中管理。

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

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

Part 02●??rsyslog日志類型及等級?

rsyslog日志類型用來定義日志消息的來源,方便對日志進行分類:

rsyslog日志等級定義不同消息的級別:

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

為了將內部日志消息發(fā)送到遠程rsyslog服務器,我們可以采用以下拓撲配置:

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

將IP地址為172.21.44.245的虛擬機配置為rsyslog日志服務器,用于接收和存儲日志消息。

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

3.1 rsyslog日志服務端配置

- 檢查是否安裝了rsyslog服務

ps -ef | grep rsyslogrsyslogd -v

- 編輯配置文件

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

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

需要注意的是,可以同時啟用TCP和UDP來監(jiān)聽TCP/UDP連接:

$ModLoad imtcp$InputTCPServerRun 514

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

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

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

- 編輯完配置文件后,重啟守護進程使更改生效

systemctl restart rsyslog

可以使用netstat命令來驗證rsyslog守護進程是否正常工作,運行以下命令:

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

3.2 rsyslog日志客戶端配置

- 安裝rsyslog守護進程

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

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

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

# yum install rsyslog

- 修改配置文件

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

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

3.3 編輯完配置文件后,重啟守護進程使更改生效

systemctl restart rsyslog.service

- 驗證遠程日志記錄

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

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

Part 04●??如何快速搭建到遠程日志服務器的安全日記?

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

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

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

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

雙向身份驗證可防止中間人攻擊。

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

4.1 生成CA證書

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

yum -y install gnutls-utils

生成私鑰,并設置權限以確保創(chuàng)建的密鑰只對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

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

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

4.2 生成機器證書

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

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

通過私鑰獲取簽名請求,加載服務端私鑰node3-key.pem,并將該私鑰簽名到node3-request.pem:

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

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

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證書以啟用安全的遠程日志記錄

接下來,我們將密鑰復制到遠程節(jié)點服務端node3。

在復制密鑰之前,在服務器節(jié)點上創(chuàng)建一個目錄rsyslog-key來存儲這些密鑰,將密鑰從client復制到server。

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

為了在服務端接受消息,需進行相應的配置:

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

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

systemctl status rsyslog.service

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

配置客戶端實現(xiàn)將日志安全地傳輸?shù)竭h程日志服務器,在客戶端創(chuàng)建目錄,存儲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服務,檢查服務狀態(tài):

systemctl status rsyslog.service

4.6驗證遠程日志記錄

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

Part 05●??結語??

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

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

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

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
CC430F5137IRGZ 1 Texas Instruments 16-Bit ultra-low-power CC430 Sub 1 GHz wireless MCU with 12-Bit ADC, 32kB Flash and 4kB RAM 48-VQFN -40 to 85

ECAD模型

下載ECAD模型
$7.53 查看
KSZ8081MNXCA-TR 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER
$1.36 查看
KSZ8463MLI 1 Microchip Technology Inc DATACOM, MANCHESTER ENCODER
$6.84 查看
中國移動

中國移動

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

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

查看更多

相關推薦

電子產業(yè)圖譜

移動Labs是中國移動的社交化新媒體平臺,是面向外部行業(yè)及產業(yè)鏈合作伙伴的信息發(fā)布、業(yè)務發(fā)展和產業(yè)推進門戶。