Как я могу отслеживать системный журнал и отправлять уведомления на основе событий?
Я собираюсь отправлять системный журнал с одного моего устройства / сервера на сервер Ubuntu.
На сервере Ubuntu (получающем системный журнал) я хочу, чтобы он запускал скрипт при поступлении определенных сообщений системного журнала.
Это возможно?
1 ответ
Вопрос, похоже, немного изменился и нацелен на скриптинг, а не на отправку уведомлений. Я мог бы удалить этот ответ позже.
Кажется, довольно просто настроить запуск сценариев оболочки в реальном времени на основе сообщений, передаваемых в rsyslog. Если ОП переписывает свой ответ, чтобы лучше представить, к чему он стремится (как уже было написано в комментариях), я готов предоставить здесь качественный ответ.
Не совсем точно, каковы ваши требования, но я могу порекомендовать один конкретный программный продукт logcheck
, Это может быть полезно и в вашей ситуации.
Его целью является отправка дайджестов по конкретным согласованным (интересным) строкам. Я предполагаю, что базовая конфигурация почты работает (например, echo bla | mail -s testmail user@domain.tld
работает) уже. Он заботится о ротации журналов и знает, где он остался, так что больше не беспокойтесь об этом в сценариях!
Извлечены некоторые важные шаги из этого урока:
Настроить основные вещи в
/etc/logcheck/logcheck.conf
:REPORTLEVEL="server" # default reportlevel with pre-configured filters SENDMAILTO="user@domain.tld"
Какие файлы журналов для регистрации
/etc/logcheck/logcheck.logfiles
:/var/log/syslog /var/log/auth.log /var/log/myapp.log
Теперь, чтобы сказать ему, чтобы вызвать на определенной строке, аналогичной
myapp: Error: Login failed for admin123
для этого журнала myapp это можно реализовать, создав регулярное выражение в
/etc/logcheck/ignore.d.server/myapp
(нотаserver
соответствующий используемомуREPORTLEVEL
ранее):^myapp:.*
Ладно, это не самое специфическое регулярное выражение, но это не главное.
Подождите, пока придут письма, например:
Subject: webserver.domain.tld 2013-01-01 10:17 System Events Jan 01 09:40:59 webserver myapp: IMAP Error: Login failed for gertvdijk