Zabbix 5 — уведомления в Telegram

Thank you for reading this post, don't forget to subscribe!

Настра­и­ва­ем уве­дом­ле­ния из Zabbix 5 в Telegram. В раз­де­ле Administration → Media types (Адми­ни­стра­ция → Типы опо­ве­ще­ний) уже есть куча пред­уста­нов­лен­ных веб­ху­ков, в том чис­ле и Telegram, оста­лось его толь­ко настроить.

На самом деле есть несколь­ко спо­со­бов отправ­лять сооб­ще­ния из Zabbix в Telegram, но здесь я рас­смот­рю толь­ко отправ­ку с помо­щью вебхуков.

Нам пона­до­бит­ся создать бота для отправ­ки сооб­ще­ний. Бот может отправ­лять сооб­ще­ния поль­зо­ва­те­лям или в группу.

Создание бота в Telegram

Созда­дим бота, через кото­ро­го Zabbix будет отправ­лять сооб­ще­ния. Для управ­ле­ния бота­ми есть спе­ци­аль­ный бот @BotFather, добав­ля­ем его себе в кон­так­ты и пишем ему:

/start

Выво­дит­ся справ­ка по коман­дам. Для созда­ния бота пишем:

/newbot

Нам пред­ла­га­ют ука­зать для бота name (имя), я пишу:

Zabbix internet-lab.ru

Нам пред­ла­га­ют ука­зать для бота username (логин), он дол­жен окан­чи­вать­ся на "bot" или "Bot" я пишу:

zabbix_internet_lab_ru_bot

Бот создан, полу­ча­ем токен "Use this token to access the HTTP API". Копи­ру­ем его и встав­ля­ем в Zabbix в раз­де­ле Administration → Media types → Telegram → Parameters → Token.

Сохра­ня­ем изме­не­ния. Кста­ти, в опи­са­нии так­же при­во­дит­ся крат­кая инструк­ция по настрой­ке Telegram:

https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/telegram

Отправка уведомления в Telegram пользователю

Если вы хоти­те отпра­вить лич­ное сооб­ще­ние поль­зо­ва­те­лю, то в его про­фи­ле в раз­де­ле Media нуж­но ука­зать chat id поль­зо­ва­те­ля из Telegram.

Для полу­че­ния chat id поль­зо­ва­те­лю нуж­но в Telegram доба­вить бота @myidbot и отпра­вить команду:

/getid

На самом деле таких ботов, кото­рые воз­вра­ща­ют иден­ти­фи­ка­то­ры доволь­но много.

Мож­но про­те­сти­ро­вать отправ­ку сооб­ще­ния в Telegram ссыл­кой "test".

Про­ве­ряю

Ошиб­ка.

Sending failed: Bad Request: chat not found.

Это нор­маль­но, ботам нель­зя отправ­лять сооб­ще­ния поль­зо­ва­те­лям без их согла­сия. Нахо­жу создан­но­го бота Zabbix internet-lab.ru и отправ­ляю ему команду:

/start

Про­ве­ряю ещё раз.

Media type test successful.

Сооб­ще­ние пришло.

Отправка уведомления в Telegram группе

Для отправ­ки уве­дом­ле­ния в груп­пу нуж­но эту груп­пу создать, доба­вить в неё создан­но­го бота и отпра­вить уве­дом­ле­ние на id группы.

ПРИМЕЧАНИЕ: если вы сде­ла­е­те груп­пу "супер­груп­пой", то у неё сме­нит­ся идентификатор.

Создаю груп­пу, добав­ляю в неё бота.

Для полу­че­ния group id в Telegram добав­ляю бота @myidbot в груп­пу и отправ­ляю команду:

/getgroupid@myidbot

Полу­ча­ем иден­ти­фи­ка­тор груп­пы, заметь­те, что он отри­ца­тель­ный, не теря­ем минус.

Мож­но про­те­сти­ро­вать отправ­ку сооб­ще­ния в Telegram.

Сооб­ще­ние отправлено.

Сооб­ще­ния отправ­ля­ют­ся в Telegram. Теперь мож­но зани­мать­ся настрой­кой, шли­фов­кой, дизай­ном и про­чи­ми неин­те­рес­ны­ми вещами.