Установка простого мониторинга доступности (Uptime Kuma или скрипт в Telegram)
Дата публикации: 24.04.2026

Установка простого мониторинга доступности (Uptime Kuma или скрипт в Telegram)

ccb9a536


Установка простого мониторинга доступности: Uptime Kuma или Telegram-бот

Как узнать о падении сайта раньше клиентов и спать спокойно

Представьте ситуацию: Вы запустили рекламную кампанию, трафик идёт, деньги сгорают — а ваш сайт лежит уже час. Или хуже: арбитражный оффер перестал принимать лиды, но вы об этом даже не подозреваете. Потери? Тысячи рублей, репутация, нервы.

Решение: Настроить мониторинг доступности — систему, которая проверяет, работает ли ваш сайт/сервер, и мгновенно оповещает вас, если что-то пошло не так. Сегодня разберём два варианта:

  1. Uptime Kuma — бесплатный инструмент с веб-интерфейсом (как "панель управления" для мониторинга).
  2. Скрипт на Bash + Telegram — лёгкое решение для тех, кто любит контролировать всё через консоль.

1. Почему мониторинг — это не роскошь, а необходимость

Прежде чем копаться в настройках, давайте разберёмся, что именно мы мониторим и почему это критично:

Что ломается Последствия Как мониторинг помогает
Сайт не отвечает Потеря трафика, деньги на рекламу в трубу Уведомление за 1-2 минуты после падения
База данных зависла Ошибки при оформлении заказов Проверка ответа от MySQL/PostgreSQL
API партнёра недоступен Лиды не уходят, деньги не капают Мониторинг эндпоинтов (например, POST /lead)
Сервер перегружен Медленная загрузка = низкая конверсия Проверка времени ответа (ping)

Аналогия: Мониторинг — как сигнализация в машине. Вы же не оставляете авто без охраны на парковке? Так и с сервером: лучше потратить 10 минут на настройку, чем потом тушить пожар.


2. Вариант 1: Uptime Kuma — мониторинг с красивым интерфейсом

Uptime Kuma — это открытый проект (бесплатно, без ограничений), который:

  • Проверяет сайты, API, порты, базы данных.
  • Отправляет уведомления в Telegram, Discord, Email, Slack.
  • Работает на вашем сервере (не зависит от сторонних сервисов).
  • Имеет дашборд с графиками и историей падений.

2.1 Установка Uptime Kuma на сервер (Linux)

Требования:

Шаги:

  1. Скачайте образ Uptime Kuma:

    docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
    • -p 3001:3001 — порт, по которому будет доступен веб-интерфейс.
    • -v uptime-kuma:/app/data — сохранение данных (чтобы не слетело при перезагрузке).
  2. Откройте веб-интерфейс:

    • Перейдите в браузере по адресу:
      http://[IP_вашего_сервера]:3001
    • При первом запуске вас поприветствует мастер настройки.
  3. Добавьте первый монитор:

    • Нажмите "Add New Monitor".
    • Выберите тип:
      • HTTP(s) — для проверки сайтов.
      • TCP Port — для проверки открытых портов (например, 22 для SSH).
      • MongoDB/MySQL — для баз данных.
    • Укажите URL (например, https://vash-sayt.ru) и интервал проверки (рекомендую 1 минута).
    • Сохраните.
  4. Настройте уведомления в Telegram:

    • Перейдите в "Settings" → "Notification".
    • Выберите "Telegram".
    • Создайте бота в Telegram через @BotFather (инструкция ниже).
    • Вставьте Token бота и ID вашего чата (как получить — см. раздел 3).
    • Сохраните и протестируйте уведомление.

2.2 Пример настройки мониторинга API арбитражного оффера

Допустим, вы сливаете лиды в оффер по API:

POST https://partner-api.com/lead
Headers: { "Authorization": "Bearer YOUR_TOKEN" }
Body: { "name": "Иван", "phone": "+7999..." }

Как настроить проверку в Uptime Kuma:

  1. Выберите тип монитора: HTTP(s).
  2. Укажите URL: https://partner-api.com/lead.
  3. Метод: POST.
  4. Headers:
    Authorization: Bearer YOUR_TOKEN
    Content-Type: application/json
  5. Body (тестовые данные):
    { "name": "Test", "phone": "+70000000000" }
  6. Ожидаемый ответ: выберите "Response Status" = 200 (или другой успешный код).

Если API упадёт или вернёт ошибку — вы получите уведомление.


3. Вариант 2: Мониторинг через Bash-скрипт + Telegram

Если вам не нужен красивый интерфейс, а хочется минималистичное решение, которое работает прямо из консоли — этот способ для вас.

3.1 Создаём Telegram-бота для уведомлений

  1. Откройте чат с @BotFather в Telegram.

  2. Отправьте команду:

    /newbot
  3. Следуйте инструкциям:

    • Придумайте имя бота (например, MyServerAlertBot).
    • Придумайте username (должен оканчиваться на bot, например, MyServerAlertBot_bot).
  4. Сохраните токен бота (пример: 123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ).

  5. Получите ID вашего чата:

    • Отправьте боту любое сообщение (например, /start).
    • Перейдите по ссылке:
      https://api.telegram.org/bot[ВАШ_ТОКЕН]/getUpdates
    • Найдите в ответе поле "chat":{"id":-123456789}. Это и есть ваш chat_id.

3.2 Пишем скрипт для проверки сайта

Создадим скрипт, который:

  1. Проверяет, доступен ли сайт.
  2. Если нет — отправляет сообщение в Telegram.

Шаг 1. Создайте файл monitor.sh:

nano /root/monitor.sh

Шаг 2. Вставьте код (замените переменные):

#!/bin/bash

# Настройки
URL="https://vash-sayt.ru"  # Адрес для проверки
BOT_TOKEN="123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ"  # Токен бота
CHAT_ID="-123456789"       # ID чата
TIMEOUT=10                 # Таймаут проверки (секунды)

# Проверяем доступность сайта
if ! curl -s --max-time $TIMEOUT -I "$URL" | grep -q "HTTP/2 200"; then
    # Если сайт недоступен — отправляем уведомление
    MESSAGE="⚠️ Сайт $URL НЕДОСТУПЕН! $(date)"
    curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \
        -d "chat_id=$CHAT_ID" \
        -d "text=$MESSAGE"
fi

Шаг 3. Сделайте скрипт исполняемым:

chmod +x /root/monitor.sh

Шаг 4. Запустите тест:

/root/monitor.sh

Если сайт доступен — ничего не произойдёт. Если нет — вам придёт сообщение в Telegram.


3.3 Настраиваем автоматический запуск (cron)

Чтобы скрипт работал каждую минуту, добавьте его в cron:

  1. Откройте редактор cron:

    crontab -e
  2. Добавьте строку:

    * * * * * /root/monitor.sh
    • Это означает: "Запускать каждую минуту".
  3. Сохраните и выйдите (Ctrl + X, затем Y).


4. Продвинутые фишки (для опытных)

4.1 Мониторинг времени ответа сервера

Если сайт отвечает слишком медленно, это тоже проблема. Добавим проверку времени ответа в скрипт:

#!/bin/bash

URL="https://vash-sayt.ru"
BOT_TOKEN="..."
CHAT_ID="..."
MAX_TIME=2  # Максимальное время ответа (секунды)

RESPONSE_TIME=$(curl -o /dev/null -s -w '%{time_total}' "$URL")

if (( $(echo "$RESPONSE_TIME > $MAX_TIME" | bc -l) )); then
    MESSAGE="⚠️ Сайт $URL тормозит! Время ответа: $RESPONSE_TIME с"
    curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \
        -d "chat_id=$CHAT_ID" \
        -d "text=$MESSAGE"
fi

4.2 Мониторинг нескольких сайтов

Создайте массив URL и проверяйте их в цикле:

URLS=(
    "https://vash-sayt.ru"
    "https://api.partner.com/lead"
    "https://admin-panel.example.com"
)

for URL in "${URLS[@]}"; do
    if ! curl -s --max-time 10 -I "$URL" | grep -q "HTTP/2 200"; then
        MESSAGE="⚠️ Сайт $URL НЕДОСТУПЕН! $(date)"
        curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \
            -d "chat_id=$CHAT_ID" \
            -d "text=$MESSAGE"
    fi
done

5. Типичные ошибки и как их избежать

Проблема Причина Решение
Uptime Kuma не запускается Порт 3001 занят или Docker не установлен Проверьте docker ps и netstat -tulnp
Telegram-бот не отправляет сообщения Неправильный chat_id или токен Перепроверьте через getUpdates
Скрипт не работает в cron Не указан полный путь к curl Замените curl на /usr/bin/curl
Ложные срабатывания Сайт временно тормозит (например, из-за DDoS) Увеличьте TIMEOUT или добавьте повторные проверки

6. Практика для закрепления

Упражнение 1. Установка Uptime Kuma

  • Установите Uptime Kuma на свой сервер (или локальную машину с Docker).
  • Добавьте мониторинг для:
    • Вашего основного сайта.
    • Порта 22 (SSH).
  • Настройте уведомления в Telegram.
  • Вопрос: Какой интервал проверки вы выбрали и почему?

Упражнение 2. Скрипт для мониторинга API

  • Напишите скрипт, который проверяет доступность API (например, GET https://httpbin.org/get).
  • Если API возвращает ошибку (не 200 OK), отправьте уведомление с кодом ошибки.
  • Подсказка: Используйте curl -I и grep "HTTP".

Упражнение 3. Мониторинг времени ответа

  • Модифицируйте скрипт из раздела 4.1, чтобы он отправлял уведомление, если время ответа превышает 3 секунды.
  • Протестируйте, искусственно замедлив сайт (например, через tc в Linux).

Упражнение 4. Настройка cron

  • Запустите свой скрипт каждые 2 минуты (вместо 1).
  • Вопрос: Какой командой проверить, что задача добавлена в cron?

Упражнение 5. Диагностика проблем

  • Представьте, что Uptime Kuma показывает "Site is down", но сайт открывается в браузере.
  • Вопросы:
    1. Какие возможные причины?
    2. Как проверить, что проблема не на стороне мониторинга?

7. Итоги и дальнейшие шаги

Теперь у вас есть два рабочих инструмента, чтобы никогда не пропустить падение сайта или API:

  1. Uptime Kuma — для тех, кто любит графики и удобный интерфейс.
  2. Bash-скрипт + Telegram — для минималистов и любителей автоматизации.

Что делать дальше?

  • Настройте мониторинг всех критичных сервисов (сайт, база данных, API партнёров).
  • Добавьте повторные проверки, чтобы избежать ложных срабатываний.
  • Изучите продвинутые фичи Uptime Kuma (например, мониторинг SSL-сертификатов).

Помните:

"Если вы не мониторите — вы не управляете. Вы просто надеетесь на лучшее." (Анонимный системный администратор)


Вопросы? Пишите в комментариях — разберём любые сложности! Готовы к практике? Приступайте к упражнениям и делитесь результатами. 🚀


Генератор паролей с длинной 64 символа
Женская одежда с бахромой
Кадастровые работы в Бийске
Как Aptum хостинг помогает малым бизнесам в управлении CRM-системами
Как выбрать планировку сайта для блогов на DreamHost
Как выбрать Vdsina вечный хостинг для своего проекта
Казань окна VEKA - профессионализм и опыт
Курьерская вода
Новостройки Оренбурга: недвижимость с отличной ценой
Онлайн чат-партнерство
Пиломатериалы для возведения бани
Почему VDSina — лучший выбор хостинга
Секреты Вконтакте: тонкости и хитрости
Скидки до 50% на тур в Коста-Рике
Видеочат рулетка бесплатно
рейтинг хостингов 2026 Быстрые VDS серверы