Как настроить мониторинг доступности API-сервисов с помощью связки Uptime Kuma и оповещений в Telegram?
Uptime Kuma — это мощный self-hosted инструмент мониторинга с удобным веб-интерфейсом, который позволяет отслеживать доступность API-сервисов, сайтов и других эндпоинтов в реальном времени. В связке с Telegram-ботом он обеспечивает мгновенные оповещения при падении сервиса.
## Шаг 1: Установка Uptime Kuma
Наиболее простой способ — запуск через Docker:
docker run -d —restart=always -p 3001:3001 -v uptime-kuma:/app/data —name uptime-kuma louislam/uptime-kuma:1
После запуска откройте браузер и перейдите по адресу `http://ваш-сервер:3001`. Создайте учётную запись администратора.
## Шаг 2: Создание Telegram-бота
1. Откройте Telegram и найдите `@BotFather`.
2. Отправьте команду `/newbot` и задайте имя и username для бота.
3. Скопируйте полученный **API Token** — он понадобится для настройки.
4. Узнайте свой **Chat ID**: напишите боту `@userinfobot` или воспользуйтесь методом `getUpdates` через API Telegram после отправки любого сообщения своему боту.
## Шаг 3: Настройка уведомлений в Uptime Kuma
1. В интерфейсе Uptime Kuma перейдите в **Settings → Notifications**.
2. Нажмите **Add Notification**.
3. В поле **Notification Type** выберите **Telegram**.
4. Введите **Bot Token** и **Chat ID**, полученные на предыдущем шаге.
5. Нажмите **Test** — вы должны получить тестовое сообщение в Telegram.
6. Сохраните настройку.
## Шаг 4: Добавление монитора для API
1. На главной странице нажмите **Add New Monitor**.
2. Выберите тип монитора:
— **HTTP(s)** — для проверки доступности эндпоинта по статус-коду.
— **HTTP(s) — Keyword** — если нужно проверять наличие определённого слова в ответе.
3. Укажите **URL** вашего API, например: `https://api.example.com/health`.
4. Настройте **Heartbeat Interval** (интервал проверки, например, 60 секунд).
5. Установите **Retries** (количество повторных попыток перед отправкой алерта).
6. В разделе **Notifications** привяжите созданный Telegram-канал.
7. Дополнительно можно настроить **Expected Status Code** (например, 200) и проверку SSL-сертификата.
## Шаг 5: Расширенные настройки
— **Группировка мониторов** — объединяйте связанные API в группы для удобства.
— **Status Page** — создайте публичную страницу статуса для клиентов.
— **Авторизация** — для защищённых API добавьте заголовки авторизации в разделе **Headers**.
— **Тело запроса** — для POST-эндпоинтов укажите тело запроса в формате JSON.
## Итог
Связка Uptime Kuma + Telegram даёт простой, надёжный и бесплатный инструмент мониторинга API без зависимости от облачных сервисов. Вы получаете мгновенные уведомления о падениях, историю аптайма и удобный дашборд — всё в одном решении.
