Когда ты управляешь несколькими VPS, со временем возникает один закономерный вопрос: а как я узнаю, если что-то пойдёт не так? Особенно если у тебя мониторинг настроен, но не настроено уведомление о проблеме. Я долго полагалась на «проверю завтра» — и в какой-то момент один из серверов просто лёг. Причина — банально закончился диск. А я не узнала об этом двое суток. После этого инцидента я решила: всё, пора автоматизировать оповещения через Telegram.
Почему Telegram?
Мессенджер у меня всегда открыт. Телефон всегда под рукой. И самое главное — Telegram поддерживает Webhooks, а значит можно настроить автоматическую отправку сообщений из любых систем мониторинга: Grafana, Prometheus + Alertmanager, Zabbix — или вообще кастомный Bash-скрипт.
Вариант 1: Telegram-оповещения через Alertmanager + Prometheus
Если у вас уже крутится стек Prometheus, то подключить alertmanager telegram — дело пары шагов.
Создание Telegram-бота
- В Telegram откройте @BotFather.
- Создайте нового бота:
/newbot
- Скопируйте токен — он вам понадобится.
- Отправьте любое сообщение вашему боту, чтобы он начал вас «видеть».
- Получите свой , например, через curl:
chat_id
curl https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates
Конфигурация Alertmanager
Файл
alertmanager.yml
receivers: - name: 'telegram' telegram_configs: - bot_token: '<YOUR_TOKEN>' chat_id: '<YOUR_CHAT_ID>' message: '{{ .CommonAnnotations.summary }}' route: receiver: 'telegram'
⚠️ Убедитесь, что у вас в Alertmanager включена поддержка Telegram. Если нет — придётся использовать webhook.
Перезапустите Alertmanager
systemctl restart alertmanager
Теперь при срабатывании алерта вы будете получать сообщение прямо в Telegram. Очень удобно. Главное — не забыть про правильную настройку меток в Prometheus и шаблонов.
Вариант 2: Grafana → Telegram через webhook
Если вы используете Grafana (а я её обожаю за визуализацию), то там всё ещё проще.
Настройка webhook в Grafana:
- В Telegram создайте бота (через @BotFather) и получите токен.
- Создайте свой Webhook-приёмник (например, через или middleware скрипт).
alertmanager webhook
- В Grafana:
- Перейдите в Alerting > Contact points
- Выберите тип Webhook
- Укажите URL: например
http://localhost:4000/telegram-alert
- Ваш backend-скрипт должен при получении данных от Grafana пересылать их в Telegram:
#!/bin/bash curl -s -X POST https://api.telegram.org/bot<YOUR_TOKEN>/sendMessage \ -d chat_id="<YOUR_CHAT_ID>" \ -d text="$1"
Вариант 3: Zabbix и Telegram: просто, но мощно
Если у вас Zabbix, то здесь всё тоже достаточно просто:
Шаги:
- Создайте Telegram-бота.
- Получите .
chat_id
- Скачайте готовый скрипт zabbix-alert-telegram.sh.
- Пропишите путь к скрипту в Admin > Media types.
- Создайте пользователя, добавьте медиа Telegram, и укажите .
chat_id
Zabbix теперь будет радостно слать вам уведомления об ошибках, нагрузках и других событиях. Zabbix Telegram notification — реально удобная штука, особенно если вы админите много хостов.
Альтернативы и бонус: свой Telegram DDOS-блокировщик
Некоторые коллеги идут дальше и пишут ddos telegram bot — т.е. интеграцию между фаерволом (например, iptables) и Telegram-ботом, чтобы получать сообщение при резком скачке входящего трафика. Я пока так не заморачивалась, но идея интересная — можно будет заскриптовать fail2ban + Telegram.
Общие советы из опыта
- Не отправляйте слишком много алертов. Telegram может временно ограничить бота.
- Используйте разные чаты или группы, если у вас несколько проектов.
- Делайте фильтрацию на уровне Alertmanager или самого скрипта.
- Не забывайте про логирование ошибок отправки — чтобы потом не было сюрпризов.
С тех пор, как я настроила уведомления в Telegram через webhook, моя тревожность сильно снизилась. Я наконец-то сплю спокойно, зная, что если с VPS что-то случится — мне прилетит пуш в Telegram через alertmanager webhook или grafana telegram alert. А уж проверить состояние по ссылке — дело пары секунд. Надеюсь, этот гайд поможет и вам организовать надёжную систему алертов и сэкономить время (и нервы).
Ценим тех, кто надолго
При оплате на год мы добавим ещё месяц.