среда, 24 июля 2019 г.

graylog - оповещения в telegram



Продолжаем смотреть 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

Теперь нужно прикрутить новый плагин. Для этого можно сходить на 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, что дает возможность увидеть только те сообщения которые и привели к срабатыванию алерта.


Очень полезный плагин, жаль что его нет в дефолтной поставке.

Комментариев нет:

Отправить комментарий