自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

Part 01.什么是rsyslog 

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

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

  • 將IP地址為172.21.44.93的虛擬機配置為rsyslog客戶端,用于發(fā)送日志消息。
  • 將IP地址為172.21.44.245的虛擬機配置為rsyslog日志服務器,用于接收和存儲日志消息。

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

圖片圖片

3.1 rsyslog日志服務端配置

- 檢查是否安裝了rsyslog服務

ps -ef | grep rsyslog
rsyslogd -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/rsyslogd
udp6 0 0 :::514 :::* 551/rsyslogd 
如果rsyslog守護進程被設置在TCP連接端口,可以看到類似下面的輸出:
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 1891/rsyslogd
tcp6 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等級的日志消息,內(nèi)容為"addddddddddd"。

圖片圖片

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

圖片圖片

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.pem
chmod 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)的安全性、可靠性和可管理性。

責任編輯:龐桂玉 來源: 移動Labs
相關推薦

2023-12-17 14:36:05

2011-06-30 09:30:57

rsyslogLinux日志紅帽企業(yè)級

2021-04-27 09:45:33

Nginx日志運維

2009-07-01 18:08:18

JSP頁面跳轉

2011-11-21 15:44:46

管理服務器日志

2010-07-28 15:21:00

NFSSolaris

2020-08-31 07:00:00

Android安卓日志分析

2010-09-16 16:02:26

PPPoA配置

2012-09-06 09:31:14

PHPmysqlpdo

2010-09-02 14:39:34

2020-06-11 16:35:02

filebeatlogstash前端

2009-06-23 14:54:07

配置ControlleVSTS2010

2019-10-28 14:38:36

RsyslogCentOS8開源

2010-09-25 17:00:47

dhcp中繼配置

2009-07-05 11:23:44

2009-06-26 14:04:15

Quartz配置

2018-04-26 09:33:16

2009-06-23 15:30:20

jBPMMySQL

2009-07-03 18:07:31

Servlet的運行環(huán)

2020-08-20 07:00:00

人工智能深度學習技術
點贊
收藏

51CTO技術棧公眾號