Syslog-Ng

使用 syslog-ng 解析 snmptrapd - 跟不上

  • July 4, 2020

(7.x 百)

我有 syslog-ng 設置來解析 snmptrapd 消息,以便我可以格式化它們以供以後消化。問題是 syslog-ng 僅輸出 n-1 消息。IE 如果 snmptrapd.log 中有 10 行 syslog-ng 僅輸出 9 行。如果我向 snmptrapd 發送一條新消息(消息 #11),那麼 syslog-ng 將輸出第 10 條消息。

系統日誌-ng.conf:

@version:3.27
@include "scl.conf"
log {
 source {
   snmptrap(filename("/var/log/snmptrapd.log"));
 };
 destination {
   file("/var/log/syslog-ng.log");
 };
};

snmptrapd.conf:

authCommunity log,execute,net public
authCommunity log,execute,net localtrap
format2 %.4y-%.2m-%.2l %.2h:%.2j:%.2k %B [%b]:\n%v\n
outputOption s

我嘗試在format2的末尾添加一個額外的換行符,但它沒有幫助。(雖然 snmptrapd.log 確實得到了附加行)

目前,snmptrap()源被實現為解析 snmptrapd 輸出的文件源。snmptrapd 日誌是多行的,給定消息的結尾是根據即將到來的消息的前綴檢測到的,因此會出現意外行為。這些是這個外掛的醜陋實現細節(限制),它最終可能會被適當的 SNMP 陷阱源所取代。

作為一種解決方法,您可以設置multi-line-timeout(10)以 10 秒的延遲處理最後一條消息。

引用自:https://serverfault.com/questions/1022358