Модуль 4: Observability & Security

Настройка Telegram-уведомлений и алертинга в Zabbix 6.4

1. Зачем настраивать алертинг в Telegram?

Система мониторинга бесполезна, если системный администратор узнаёт об аварии только от недовольных пользователей. Настройка оперативных оповещений в Telegram позволяет моментально получать информацию о сбоях (падение узлов, исчерпание места на диске, высокая нагрузка на ЦП) прямо на смартфон или в командный чат.

2. Создание Telegram-бота и получение Chat ID

Шаг 2.1. Регистрация бота через @BotFather

1. Найдите в Telegram бота @BotFather и отправьте команду /newbot.

2. Укажите имя и username бота (например, MyLab_Zabbix_Bot).

3. Сохраните полученный **HTTP API Token** (например, 123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ).

Шаг 2.2. Получение Chat ID

1. Начните диалог с вашим созданным ботом (нажмите Start) или добавьте его в групповой чат дежурных инженерных служб.

2. Чтобы узнать ID чата, отправьте любое сообщение боту @userinfobot или @getmyid_bot.

3. Конфигурация Способа Оповещения (Media Type) в Zabbix

В Zabbix 6.4 встроен нативный вебхук для Telegram, что исключает необходимость писать собственные bash или python-скрипты.

Шаг 3.1. Активация Media Type

Пошаговая настройка в веб-интерфейсе Zabbix:
1. Перейдите в раздел Alerts → Media types (Оповещения → Способы оповещений).
2. Найдите в списке пресет Telegram и нажмите на него.
3. В поле параметра Token вставьте ваш **API Token**, полученный от BotFather.
4. Убедитесь, что переключатель Status установлен в Enabled, и нажмите Update.

Шаг 3.2. Привязка Telegram к профилю пользователя

1. Перейдите в раздел Users → Users и выберите вашего пользователя (или Admin).

2. Откройте вкладку Media (Способы оповещения) и нажмите Add.

3. В поле Type выберите Telegram.

4. В поле Send to вставьте ваш Chat ID.

5. Отметьте важность алертов (например, Warning, Average, High, Disaster) и нажмите Add / Update.

4. Создание Действия (Trigger Action)

Укажем Zabbix, при каких условиях нужно отправлять уведомление:

  1. Откройте Alerts → Actions → Trigger actions.
  2. Нажмите Create action в правом верхнем углу.
  3. Укажите имя действия (например, Report problems to Telegram).
  4. Во вкладке Operations настройте отправку сообщений при возникновении проблемы (Operations) и при её решении (Recovery operations).
Шаблон сообщения для проверки:
Проблема: {EVENT.NAME}
Узел: {HOST.NAME} ({HOST.IP})
Важность: {EVENT.SEVERITY}
Время: {EVENT.TIME} {EVENT.DATE}

5. Тестирование отправки алертов

Для проверки работы оповещений можно принудительно сгенерировать событие (например, остановить службу агента на тестовом хосте или воспользоваться функцией Test прямо в настройках Media Type):

# Остановка службы агента для эмуляции аварии
sudo systemctl stop zabbix-agent

Через пару минут Zabbix зафиксирует недоступность агента и пришлет уведомление в ваш Telegram-чат.