Продолжаем смотреть graylog и на этот раз будем делать уведомления с помощью телеграм бота. Для этого нужно будет создать отдельный stream, направить туда сообщения, установить в graylog новый плагин и создать алерт с уведомлением.
Ничего сложного.
Создание нового потока проблем уже не должно представлять, а работу с конвейерами мы рассмотрели в прошлый раз.
Поэтому сразу пример правила, которое будет маршрутизировать сообщения по наличию трех указанных полей (и определенного содержимого):
rule "route_ssh_failures"
when
has_field("auditbeat_event_action") AND
to_string($message.auditbeat_event_action) == "user_login" AND
has_field("auditbeat_event_outcome") AND
to_string($message.auditbeat_event_outcome) == "failure" AND
has_field("auditbeat_user_terminal") AND
to_string($message.auditbeat_user_terminal) == "ssh:notty"
then
route_to_stream("ssh_failures");
end
when
has_field("auditbeat_event_action") AND
to_string($message.auditbeat_event_action) == "user_login" AND
has_field("auditbeat_event_outcome") AND
to_string($message.auditbeat_event_outcome) == "failure" AND
has_field("auditbeat_user_terminal") AND
to_string($message.auditbeat_user_terminal) == "ssh:notty"
then
route_to_stream("ssh_failures");
end
Теперь нужно прикрутить новый плагин. Для этого можно сходить на https://github.com/irgendwr/TelegramAlert/releases и взять свежий релиз. Интересует только jar файл, который нужно будет разместить в /usr/share/graylog-server/plugin/ и перезапустить сервис graylog-server.
Так же, нужно создать нового бота, для этого как обычно используется BotFather.
Для настройки оповещений в дальнейшем потребуется ID и токен, тут тоже все стандартно.
После всех приготовлений можно переходить в Alerts / Conditions и добавлять новое условие. Сразу выбираем stream и тип условия.
В нашем примере оповещение сработает если в течении 5 минут будет более 5 сообщений о неудачном входе на сервер по ssh.
Важный нюанс - если оставить параметр "Message Backlog" по дефолту (на нуле), то мы не будем получать само тело сообщения (которое вызвало срабатывание алерта) в телеграм. Поэтому если такая информация будет полезна, лучше выставить этот параметр, например в единицу.
И теперь остается добавить новое оповещение (add new notificaiton).
Здесь нужно будет выбрать тип оповещения и можно переходить к непосредственной настройке.
Шаблон самого сообщения можно взять по образцу как в уведомлении на почту. И так как это телеграм, то вполне поддерживается синтаксис markdown. К слову, есть кнопка "Test" и оповещения можно сразу же проверить и отформатировать по вкусу.
И в результате при срабатывании оповещения получаем следующее сообщение в телеграм:
Если перейти по ссылке, то попадем в поиск с выставленным фильтром на дату/время и stream, что дает возможность увидеть только те сообщения которые и привели к срабатыванию алерта.
Очень полезный плагин, жаль что его нет в дефолтной поставке.
Комментариев нет:
Отправить комментарий