1. 程式人生 > >解決rsyslog日誌分發過濾問題

解決rsyslog日誌分發過濾問題

過濾 無法 ast 實現 一個 color lin name 解決

問題描述:

服務器B從遠端接收來自服務器A的消息網關日誌,按照配置要求,需要將這些日誌按照消息標簽分類寫入不同的文件中。

例如有這樣一條日誌:

Sep 12 08:00:03 192.100.6.3 Monster-CMPP20MO[37518]: 20180912080002SMS0000999L00100000000cc515275,0,00,,,09120800018510260295,,,,xxxxxxxxxxx,,,1,xxxxxxxxxx,,,,,,,,,,,,0,6,DM302J,

我們希望可以按照“Monster-CMPP20MO”這樣的消息標簽來寫入到monster-cmppmo.log文件中。

但是,按照以前的配置無法實現日誌過濾的效果,服務器B會將接收到的所有日誌全部寫到每一個文件中。根本沒有做分類處理。

解決辦法:

首先加入模板

$template TraditionalFormat, "%timegenerated% %HOSTNAME% %syslogtag%%msg:::drop-last-lf%\n"

ps:drop-last-lf 表示寫入所有日誌

添加完模板後,需要配置一下將模板利用起來

if ($syslogtag startswith Monster-CMPP20MT)
then {
*.=info  /xxx/xxx/monster-cmppmt.log;TraditionalFormat
}
if ($syslogtag startswith Monster-MM7MT
) then { *.=info /xxx/xxx/monster-mm7mt.log;TraditionalFormat } ......

重啟rsyslog,解決。

解決rsyslog日誌分發過濾問題