客戶端rsyslog配置檔案詳解

2022-08-26 23:24:38 字數 3490 閱讀 4920

最近再開發乙個rsyslog的接收服務端,支援udp,tcp和tls三種協議。所以去仔細研究了一下rsyslog.conf的配置檔案,下面來詳細說一下。

因為我這兒重點在於怎麼將資訊傳送到我的伺服器,所以只講了一些傳送應該配置的內容,至於rsyslog.conf配置的詳細內容,大家可以去rsyslog的官網自行檢視。

系統: centos 7.4

rsyslog版本: 8.24.0

udp和tcp都比較簡單

udp

cd /etc/rsyslog.d

vim udp.conf

# udp.conf

$template myformat,"192.168.82.129_34 %syslogpriority% %timestamp% %hostname% %syslogtag% %msg%"

# *.* /var/log/tls

*.* @192.168.92.1:9898;myformat

tcp
cd /etc/rsyslog.d

vim udp.conf

# tcp.conf

$template myformat,"192.168.82.129_34 %syslogpriority% %timestamp% %hostname% %syslogtag% %msg%"

*.* @@192.168.92.1:9898;myformat

現在來講一下各個引數的意義

最後別忘記重啟下rsyslog服務:

# centos7

systemctl restart rsyslog.service

tls才是真正麻煩的地方,讓我糾結了很久。

server.crt
然後在官網給出的client端中的配置是這麼寫的:

# make gtls driver the default

$defaultnetstreamdriver gtls

# certificate files

$defaultnetstreamdrivercafile /rsyslog/protected/ca.pem

$defaultnetstreamdrivercertfile /rsyslog/protected/machine-cert.pem

$defaultnetstreamdriverkeyfile /rsyslog/protected/machine-key.pem

$actionsendstreamdriverauthmode x509/name

$actionsendstreamdriverpermittedpeer central.example.net

$actionsendstreamdrivermode 1 # run driver in tls-only mode

*.* @@central.example.net:10514 # forward everything to remote server

可以大致分為三塊:

然後我就按照自己的需求改成了這個樣子:

cd /etc/rsyslog.d

vim tls.conf

# tls.conf

$defaultnetstreamdriver gtls

$defaultnetstreamdrivercafile /root/test/server.crt

$actionsendstreamdriverauthmode x509/name

$actionsendstreamdriverpermittedpeer 192.168.92.1

$actionsendstreamdrivermode 1

$template myformat,"unique %syslogpriority% %timestamp% %hostname% %syslogtag% %msg%"

*.* @@192.168.92.1:9898;myformat

重啟服務後發現什麼都沒有,去檢視日誌/var/log/message,找到一條可能是問題的原因的記錄:

dec  1 22:18:16 here rsyslogd-2066: could not load module '/usr/lib/rsyslog/lmnsd_gtls.so', dlopen: /usr/lib/rsyslog/lmnsd_gtls.so: cannot open shared object file: no such file or directory

[try ]

dec 1 22:18:56 here rsyslogd-2066: last message repeated 4 times

然後去看了看這個/usr/lib/rsyslog/lmnsd_gtls.so到底是什麼東西,在這兒找到了答案 could not load module '/usr/lib/rsyslog/lmnsd_gtls.so',原來是它這兒少了一些包和依賴,需要去安裝一下:

sudo yum install -y rsyslog-gnutls
問題解決。

然後再執行,發現還是什麼日誌都沒有,然後去檢視記錄,也沒有報錯,這時候就很納悶了。這時候只能又去面向google程式設計了,翻了一大圈翻到了這篇文章 gtls network stream driver,裡面對於配置的第三大部分做了詳細的解答。貼上一段問題所在:

supported authentication modes

意思就是說,x509/name這種模式是需要進行身份認證的,但我這兒提供的證書(即server.crt)是乙個公用的證書,這就衝突了,所以只能用anon的模式:

$actionsendstreamdriverauthmode anon
修改完成,重啟服務,資訊接收成功,大功搞定。

最終的crt.conf檔案:

# tls.conf

$defaultnetstreamdriver gtls

$defaultnetstreamdrivercafile /root/test/server.crt

$actionsendstreamdriverauthmode x509/name

$actionsendstreamdrivermode 1

$template myformat,"unique %syslogpriority% %timestamp% %hostname% %syslogtag% %msg%"

*.* @@192.168.92.1:9898;myformat

rsyslog 配置檔案說明

rsyslog是什麼,以及如何安裝,配置使用者和使用者組在此不多說.網上有大把教程.本文設定 由a伺服器向b伺服器傳送log,b伺服器為中心收集log伺服器.1.a 的配置檔案 etc rsyslog.conf etc rsyslog.conf configuration file for rsys...

EasyUI Datagrid 客戶端分頁詳解

最近在做乙個小型的成績管理系統,需要用到easyui datagrid的分頁功能,考慮到資料量較少 只有乙個班級 於是選擇客戶端分頁。在網上能找到的客戶端分頁demo基本都是同一段 但沒有注釋,下面是我根據自己的理解和除錯分析寫上的 以及注釋,希望能幫助大家理解easyui datagrid客戶端分...

客戶端配置 Git客戶端基本配置

git 能夠識別的配置項被分為了兩大類 客戶端和伺服器端,其中大部分基於你個人工作偏好,屬於客戶端配置。儘管有數不盡的選項,但我只闡述 其中經常使用或者會對你的工作流產生巨大影響的選項,如果你想觀察你當前的 git 能識別的選項列表,請執行 git config helpgit config的手冊頁...