Одной из ключевых возможностей Zabbix является отправка уведомлений о событиях, таких как срабатывание триггеров. В этой статье мы подробно рассмотрим, как настроить отправку уведомлений из Zabbix в Telegram с использованием Telegram-бота.
Создание бота в Telegram
Первым шагом необходимо создать бота в Telegram, через который будут отправляться уведомления. Для этого выполните следующие действия:
Создание бота:
- Откройте Telegram и найдите бота @BotFather.
- Начните диалог с командой
/start
. - Создайте нового бота с помощью команды
/newbot
. - Следуйте инструкциям: задайте имя бота и его username. После успешного создания вы получите токен, который понадобится для интеграции с Zabbix.
Добавление бота в контакты:
- Найдите созданного бота по его username (например, @root_bot) и добавьте его в свои контакты.
Проверка работы бота:
Для проверки отправки сообщений через бота используйте команду в консоли сервера:
curl --header 'Content-Type: application/json' --request 'POST' --data '{"chat_id":"210806260","text":"Проверяю отправку оповещений ботом"}' "https://api.telegram.org/bot<TOKEN>/sendMessage"
В этой команде:
11111111
— это ID вашего аккаунта в Telegram. Чтобы узнать свой ID, добавьте бота @my_id_bot и отправьте ему команду/start
.<TOKEN>
— токен вашего бота, который вы получили от @BotFather.
Если всё настроено правильно, бот отправит вам сообщение.
Настройка Zabbix для отправки уведомлений в Telegram
Шаг 1: Импорт шаблона оповещений
Если у вас нет шаблона для отправки уведомлений в Telegram, его можно скачать из официального репозитория Zabbix:
- Перейдите в раздел
/templates/media/telegram/
в репозитории Zabbix. - Скачайте шаблон в формате YAML, соответствующий версии вашего сервера Zabbix.
- Импортируйте шаблон в Zabbix через веб-интерфейс: Configuration → Templates → Import.
Шаг 2: Настройка токена бота
- Откройте шаблон оповещений в Zabbix.
- Найдите параметр
BOT_TOKEN
и укажите токен вашего бота. - Сохраните изменения.
Шаг 3: Настройка текста уведомлений
Zabbix позволяет настраивать шаблоны уведомлений, добавляя макросы и изменяя текст сообщений. Например, можно добавить имя хоста через макрос {HOST.NAME}
или использовать emoji для улучшения читаемости.
Пример настройки шаблона:
📢 Оповещение от Zabbix
Хост: {HOST.NAME}
Проблема: {TRIGGER.NAME}
Статус: {TRIGGER.STATUS}
Шаг 4: Настройка действий (Actions)
- Перейдите в Configuration → Actions.
- Создайте новое действие или отредактируйте существующее.
- В разделе Operations добавьте отправку уведомлений через Telegram.
- Укажите получателя (ваш Telegram ID или ID группы) и выберите шаблон оповещений.
Шаг 5: Проверка работы уведомлений
- Создайте тестовый триггер для проверки. Например, можно использовать элемент данных Number of logged in users из шаблона Linux by Zabbix agent и настроить триггер, который срабатывает при наличии более одного пользователя:
last(/Zabbix server/system.users.num)>1
- Подключитесь к серверу по SSH дважды, чтобы триггер сработал.
- Проверьте, пришло ли уведомление в Telegram.
Отправка уведомлений в группу Telegram
Если вы хотите отправлять уведомления в группу, выполните следующие шаги:
- Создайте группу в Telegram.
- Добавьте бота в группу.
- Узнайте ID группы. Обратите внимание, что ID группы начинается с минуса (например,
-123456789
). - Укажите этот ID в настройках Zabbix как получателя уведомлений.
Дополнительные улучшения
Кастомизация шаблонов:
Вы можете создавать разные шаблоны для разных типов уведомлений (например, для критических и информационных событий). Это позволяет сделать уведомления более информативными и удобными для восприятия.
Использование emoji:
Добавление emoji в текст уведомлений помогает быстро определить важность события. Например:
- 🔴 — критическая ошибка,
- 🟡 — предупреждение,
- 🟢 — восстановление.
Заключение
Настройка уведомлений Zabbix в Telegram — это удобный способ получать оперативную информацию о состоянии вашей инфраструктуры. Создание бота, настройка шаблонов и интеграция с Zabbix не требуют глубоких технических знаний, но значительно упрощают процесс мониторинга. Следуя этому руководству, вы сможете настроить отправку уведомлений в Telegram и улучшить их читаемость с помощью кастомизации шаблонов.