Назад | Перейти на главную страницу

использование syslog-ng для анализа snmptrapd - не успевать

(Centos 7.x)

У меня есть настройка syslog-ng для анализа сообщений snmptrapd, чтобы я мог их отформатировать для дальнейшего использования. Проблема в том, что syslog-ng выводит только сообщение n-1. IE, если в snmptrapd.log 10 строк, syslog-ng выводит только 9 строк. Если я отправлю новое сообщение в snmptrapd (сообщение № 11), то syslog-ng выведет 10-е сообщение.

syslog-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() source реализован как источник файла, который анализирует вывод snmptrapd. Журналы snmptrapd многострочные, конец данного сообщения определяется по префиксу предстоящего сообщения, отсюда и непредвиденное поведение. Это уродливые детали реализации (ограничения) этого плагина, в конечном итоге он может быть заменен подходящим источником прерывания SNMP.

В качестве обходного пути вы можете установить multi-line-timeout(10) для обработки последнего сообщения с задержкой в ​​10 секунд.