解決rsyslog日志分發過濾問題


問題描述:

服務器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,解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM