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

Как выполнить действие при поступлении данного сообщения системного журнала на порт UDP

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

Syslog-ng может сделать это примерно так:

destination d_special { program("/usr/local/bin/script"); };
filter f_special { match("regex"); };
log { source (s_all); filter(f_special); destination(d_special); };

Может тебе стоит взглянуть на rsyslog. Его синтаксис гораздо более гибкий и простой, чем у syslogd. Также в целом намного мощнее.

В любом случае, то, что вы хотите в rsyslog, будет похоже на

if ( regex ) then action

& another_action # This line could be ignored if you want only one action

Ты можешь использовать OSSEC чтобы посмотреть конкретный образец и использовать активный ответ функциональность для выполнения желаемого действия.