сообщения системного журнала, поступающие от коммутаторов HP, не могут быть правильно отфильтрованы в syslog-NG?

у меня возникли проблемы с фильтрацией сообщений, поступающих из нескольких источников (коммутаторы HP), и я хотел бы получить несколько советов.

у меня есть огромный файл конфигурации syslog-NG, фильтрующий сообщения, поступающие из разных источников (серверы Unix, файловые системы NAS, устройства и т. д.)

Обычно я фильтрую сообщения с помощью функции host(), filter() или даже программы().

однако у меня возникают проблемы с фильтрацией сообщений, поступающих от некоторых коммутаторов HP (сетевых коммутаторов и коммутаторов san), хотя формат сообщения кажется правильным.

например, я получаю такие сообщения, как:

Mar 14 10:40:48 switchname program: message contents here

и я создал такой фильтр (позже используется в функции журнала):

filter f_network {
    host("switch*");
};

но это не работает (в то время как все остальные работают для других устройств), я также пытался фильтровать по имени программы, та же проблема.

есть ли способ исследовать это и понять, почему это не работает? возможно, сообщение отформатировано по-другому и поле хоста не это (я пробовал все остальные поля и не смог заставить его работать)

при прослушивании сетевого интерфейса с помощью tcpdump я вижу обычное сообщение (по-видимому, никаких скрытых специальных символов или других, но, возможно, я использую неправильные флаги)

любой способ проверить это?

С уважением


person olivierg    schedule 06.03.2017    source источник
comment
Привет, кажется, что значение приоритета (PRI) отсутствует в начале сообщения. AFAIK, это должно выглядеть примерно так:   -  person Robert Fekete    schedule 07.03.2017
comment
Привет, кажется, что значение приоритета (PRI) отсутствует в начале сообщения. Насколько я знаю, это должно выглядеть примерно так: ‹133›25 февраля 14:09:07 webserver syslogd: перезапуск. Можно ли использовать фиктивный пункт назначения для проверки значений макросов syslog-ng при чтении такого сообщения? Что-то вроде: файл назначения d_file { файл (/var/log/messages template(pri=${priority} date=${ISODATE} host=${HOST} program=${PROGRAM} message=${MSG}\n)) ; }; Если проблема в том, что значения макросов не совпадают, то ваш коммутатор неправильно форматирует сообщения.   -  person Robert Fekete    schedule 07.03.2017
comment
спасибо Роберт, я попробую это и дам вам знать, что он показал! это то, что я искал (шаблон). что произойдет, если сообщение имеет неправильный формат? будет ли он обрабатываться со сдвинутыми полями? или вообще не обрабатывается?   -  person olivierg    schedule 07.03.2017
comment
Привет, это зависит от того, насколько сильно сообщение сломано. Если отсутствует только поле PRI, я предполагаю, что поля будут смещены, и, возможно, некоторые из них содержат недопустимые значения (мусор). Если вы сможете убедиться, что проблема именно в этом, мы узнаем, как ее решить (в качестве первой попытки, возможно, с помощью параметра flags(no-parse)).   -  person Robert Fekete    schedule 07.03.2017
comment
привет Роберт, я только что сделал другие проверки и вроде как понимаю, почему это не работает, в зависимости от переключателей у меня есть несколько видов сообщений. Я попробовал вашу команду, и она ничего не записала, поэтому я полагаю, что syslog-ng даже не анализирует сообщение! Я еще раз понюхал интерфейс и вижу вот такой лог например, где перепутаны поля: ‹190›raslogd: 2017/03/08-16:03:20, [SEC-1203], 53642, WWN 10:00: 50:еб:1а:6в:21:38 | FID 128, INFO, cswc-mo8x-SAN01, Информация для входа: Вход в систему выполнен успешно через TELNET/SSH/RSH. IP-адрес: 1.2.3.4. Есть ли способ отфильтровать этот журнал?   -  person olivierg    schedule 09.03.2017
comment
удивительно, если я просто использую обычный файл в качестве назначения, я вижу сообщение в нем, если я использую шаблон, он ничего не регистрирует. например, если я использую: пункт назначения d_INCOMING_ALL { файл (/app/syslog-ng/logs/incoming_all.log); }; Я вижу в файле: 9 марта 09:44:20 cswc-mo8x-hpsan01 raslogd: 2017/03/09-08:34:50, [SEC-1203], 53647, WWN 10:00:50:eb:1a :6с:21:38 | FID 128, INFO, cswc-mo8x-SAN01, Информация для входа: Вход в систему выполнен успешно через TELNET/SSH/RSH. IP-адрес: 1.2.3.4, хотя, если я использую ваш шаблон, я не вижу сообщений, зарегистрированных с этого устройства.   -  person olivierg    schedule 09.03.2017
comment
Я создал другую тему, гораздо более понятную, так как проблема немного отличается от того, о чем я говорил в этой (вы ответили на эту, поэтому я буду считать эту тему решенной): stackoverflow.com/questions/42692552/   -  person olivierg    schedule 09.03.2017


Ответы (1)


эта проблема как-то решается (из-за приоритета).

Я создал новую тему здесь для другой ошибки, которую я получаю с более сложным сообщением системного журнала: невозможно отфильтровать плохо отформатированные сообщения в syslog-ng

person olivierg    schedule 09.03.2017