Zabbix to Telegram notifications

По умолчанию в Zabbix есть нотификации на почту. Но учитывая, что почта тоже иногда может “падать”, то критические нотификации желательно дублировать. Можно конечно использовать альтернативный почтовый сервис, но лучше полностью альтернативный канал. Я выбрал Телеграмм.

Все, кто решил добавить Телеграмм нотификации к Zabbix и решил начать поиск существующего решения с помощью Google, с вероятностью 99.9% в числе первых найдет решение ableev/Zabbix-in-Telegram . Ставится достаточно просто, работает достаточно стабильно, хорошо поддерживается и обновляется. Есть особенность, что в качестве получателя указывается символическое имя (а-ля @ableev ), но Телеграмм он такой – позволяет не заполнять множество полей, менять их. Единственное, что незыблемо в Телеграмм для любого контакта – это его цифровой ID. Второй момент – получение ID получателя по его символическому имени в вышеуказанном скрипте происходит путем просмотра истории сообщений бота и если там был где-то участник с таким именем – запоминается его ID. А если нет – то сообщение не уходит. И хотя там есть кэширование таблицы Имя:ID во временный файл, но все же периодически данные теряются (апгрейд/реконфигурация или восстановление после сбоя) и приходится вручную “приветствовать” бот дабы перезапустить отправку сообщений (так как Телеграмм хранит историю ограниченное время). Обычно это происходит, когда замечаешь, что неделю ничего не приходит %)

Как по мне, гораздо проще и надежней указывать сразу ID получателя – в этом случае легко получить частично (или даже полностью) stateless сервер.

Понятно, что можно было просто взять и адаптировать скрипт под себя (вначале так и сделал), но… захотелось применить Python не только для competive programming, но также для чего-то более практичного и полезного 🙂

Результат – BlackVS/zabbix-telegram

Создание самого Телеграмм бота/группового чата – можно дополнительно подсмотреть в

Telegram bot for Mikrotik

Единственно, что – пока – не создаем собственные команды для бота. Запросы к боту – это следующая итерация.