Uptime Kuma — алертинг без заморочек для админа, который ценит время

Uptime Kuma: установка, настройка мониторинга сайта

1. Введение: «упал сайт — узнали от клиента» — классика жанра

Вы когда-нибудь получали сообщение в духе: «Слушай, у тебя сайт не работает уже два часа» — и в этот момент чувствовали, как медленно умирает ваша репутация? Поздравляю, вы в клубе. Членский взнос — один инцидент без мониторинга.

Это не шутка и не исключение из правил. Это повседневная реальность для сотен тысяч сайтов, API и сервисов, которые работают без какого-либо мониторинга доступности. Сервер упал в 3:47 ночи, поднялся в 5:20 после перезагрузки по крон-расписанию — и никто ничего не заметил. Кроме клиента, который пытался оформить заказ. И написал в поддержку. И в Google-отзывы заодно.

Казалось бы, решение очевидно: поставь мониторинг сайта. Но тут начинается второй круг ада.

Чем плохи громоздкие мониторинговые системы

Опытный коллега советует Zabbix. Вы открываете документацию — 400 страниц. Настраиваете агентов, SNMP, шаблоны, триггеры, медиа-типы. Три дня спустя у вас есть работающий мониторинг, зато нет волос и здравого рассудка. Это нормально, если у вас 500 серверов. Ненормально, если у вас 5 сайтов и один VPS.

Prometheus + Grafana — это прекрасный стек для тех, кто хочет метрики нагрузки, графики CPU/RAM и оркестрацию в Kubernetes. Но если вы хотите просто знать, что сайт живой или мёртвый — это как ехать за хлебом на Ferrari.

Облачные сервисы типа UptimeRobot удобны, но у них есть минусы: ваши URL и данные мониторинга хранятся на чужих серверах, бесплатный тариф ограничен, а кастомизация статус-страницы оставляет желать лучшего.

Когда нужен лёгкий self-hosted мониторинг

Self-hosted мониторинг нужен тогда, когда вы хотите полный контроль, приватность данных и минимум головной боли при развёртывании. Именно здесь появляется наш пациент — Uptime Kuma.

Этот гайд создан для:

  • Фриланс-администраторов, которые обслуживают 10–50 клиентских сайтов и хотят один дашборд для всего.
  • Малого и среднего бизнеса, которому нужен мониторинг без enterprise-бюджета.
  • DevOps-инженеров на старте, которые ещё не готовы к полноценному стеку Prometheus/Alertmanager, но уже хотят алерты.
  • Разработчиков, которые деплоят свои pet-проекты и хотят спать спокойно.

После прочтения этой статьи вы получите работающий open source мониторинг, настроенные Telegram-алерты и публичную статус-страницу для клиентов — и всё это за один вечер, а не за три дня страданий.


2. Что такое Uptime Kuma простыми словами

Uptime Kuma — это бесплатный open-source инструмент для мониторинга доступности сервисов с красивым веб-интерфейсом. Если совсем просто: это ваш личный UptimeRobot, который живёт у вас на сервере и никому не рассказывает о ваших URL.

Проект создал разработчик Louis Lam, и с тех пор репозиторий набрал более 60 000 звёзд на GitHub — что само по себе говорит об уровне доверия сообщества.

Что умеет Uptime Kuma

Типы мониторинга:

  • HTTP / HTTPS — проверка доступности по URL с контролем статус-кода.
  • TCP Port — проверка открытости порта (например, 3306 для MySQL).
  • Ping (ICMP) — классический пинг по IP или домену.
  • DNS Record — проверка DNS-записей.
  • Docker Container — мониторинг статуса контейнера через Docker API.
  • Push-мониторинг — ваш сервис сам пингует Uptime Kuma, идеально для cron-задач.
  • HTTP(S) Keyword — проверка наличия ключевого слова или JSON-поля в ответе.
  • Steam Game Server, Minecraft, Gamedig — да, даже игровые серверы.
  • gRPC(S) — для современных микросервисных архитектур.

Уведомления — кому угодно, куда угодно:

  • Telegram
  • Slack
  • Email (SMTP)
  • Discord
  • Webhook
  • PagerDuty
  • Pushover, Gotify, Ntfy
  • И ещё более 90 интеграций

Статус-страницы — красивые публичные страницы с историей инцидентов, которые можно показывать клиентам. Аналог statuspage.io, только бесплатно и у вас на сервере.

Uptime Kuma хранит всю историю проверок локально в SQLite. Никаких сторонних облаков, никаких подписок, никакого vendor lock-in. Ваши данные — ваша крепость.


3. Почему Uptime Kuma — «без заморочек»: сравнение с конкурентами

Давайте поставим рядом инструменты и честно сравним.

Таблица сравнения систем мониторинга

Критерий Uptime Kuma Zabbix Prometheus + Grafana UptimeRobot
Время установки 2–5 минут 1–3 часа 2–4 часа 0 (SaaS)
Self-hosted Да Да Да Нет
Open Source Да (MIT) Да (GPL) Да (Apache) Нет
Порог вхождения Низкий Высокий Очень высокий Очень низкий
Метрики CPU/RAM Нет Да Да Нет
Мониторинг Docker Да Через агент Да (cAdvisor) Нет
Статус-страница Встроена Нет Через плагин Да (платно)
Telegram-алерты Нативно Настройка Alertmanager Да
Потребление RAM ~50–100 MB ~300–500 MB ~500 MB+ 0 (SaaS)
Конфиденциальность Полная Полная Полная Данные в облаке
Цена Бесплатно Бесплатно Бесплатно От $7/мес

Вывод простой: если вам нужна проверка «живой / мёртвый» с алертами и красивой статус-страницей — Uptime Kuma закрывает 80% потребностей SMB и фриланса. Zabbix и Prometheus нужны тогда, когда вы уже выросли из этих штанов.

Главные плюсы Uptime Kuma

  • Разворачивается за 2 минуты — одна команда Docker и вы в деле.
  • Веб-интерфейс без боли — современный, реактивный (Vue.js), понятен без документации.
  • Не требует базы знаний на 300 страниц — серьёзно, интуитивно.
  • Работает в Docker — переносится, бэкапится, обновляется одной строкой.
  • Минимальные требования к серверу — хватит самого дешёвого VPS с 512 MB RAM.

Рецепт из IT-Аптеки: Uptime Kuma — это парацетамол мира мониторинга. Не лечит всё подряд, но при головной боли снимает симптомы быстро, без рецепта и без побочек.


4. Установка Uptime Kuma: пошаговая инструкция

Предполагаем, что у вас есть VPS с Ubuntu 20.04/22.04 или любым другим Linux. Если Docker ещё не установлен — вот быстрый способ:

curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker

Вариант 1: Docker (рекомендуется)

Самый быстрый способ. Одна команда — и мониторинг работает:

docker run -d \
  --restart=always \
  -p 3001:3001 \
  -v uptime-kuma:/app/data \
  --name uptime-kuma \
  louislam/uptime-kuma

Разбор флагов:

  • -d — запуск в фоне (detached).
  • --restart=alwaysконтейнер поднимется автоматически после перезагрузки сервера.
  • -p 3001:3001 — пробрасываем порт. После запуска откройте http://ВАШ-IP:3001.
  • -v uptime-kuma:/app/data — именованный том Docker для хранения данных. Удалите контейнер — данные останутся.

Через 20–30 секунд открывайте браузер: http://ВАШ-IP:3001. Вас встретит форма регистрации первого администратора.

Вариант 2: Docker Compose (для тех, кто любит порядок)

Создайте директорию и файл docker-compose.yml:

mkdir -p /opt/uptime-kuma && cd /opt/uptime-kuma
nano docker-compose.yml

Содержимое файла:

version: "3"
services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime-kuma
    restart: always
    ports:
      - "3001:3001"
    volumes:
      - ./data:/app/data

Запускаем:

docker compose up -d

Преимущество этого варианта: папка ./data находится рядом с compose-файлом. Бэкапить проще — просто копируете всю директорию /opt/uptime-kuma.

Вариант 3: Без Docker (Node.js)

Если Docker по каким-то причинам недоступен — можно установить напрямую. Требуется Node.js 18+:

# Установка Node.js 18
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs

# Клонирование репозитория
git clone https://github.com/louislam/uptime-kuma.git
cd uptime-kuma
npm run setup

# Запуск для теста
node server/server.js

# Для продакшена — через PM2
npm install pm2 -g
pm2 start server/server.js --name uptime-kuma
pm2 save
pm2 startup

Важно: Docker-вариант надёжнее и рекомендуется для продакшена. Node.js вариант используйте только если знаете, что делаете.

Первый вход и начальная настройка

После открытия http://ВАШ-IP:3001:

  1. Создайте учётную запись администратора (логин + пароль).
  2. Вы попадёте в пустой дашборд. Нажмите «Add New Monitor».
  3. Настройте первую проверку — например, HTTP(S) для вашего сайта.

5. Настройка мониторинга на практике: 5 реальных примеров

Переходим к самому вкусному. Ниже — конкретные примеры для задач, которые встречаются в реальной работе.

Пример 1: Мониторинг WordPress-сайта

Базовая задача: знать, что сайт отвечает HTTP 200.

  • Monitor Type: HTTP(S)
  • Friendly Name: WordPress — client-site.ru
  • URL: https://client-site.ru
  • Heartbeat Interval: 60 секунд
  • Retries: 3 (три подряд ошибки перед алертом)
  • Accepted Status Codes: 200–299

Лайфхак: включите проверку SSL-сертификата и получайте алерт за 30 дней до истечения. Поле называется «Certificate Expiry Notification». Это спасёт вас от звонков «у нас сайт с замочком, но браузер ругается».

Пример 2: Мониторинг MikroTik (Ping + Port 8291)

Нужно контролировать доступность роутера и порт Winbox.

Монитор 1 — Ping:

  • Monitor Type: Ping
  • Friendly Name: MikroTik — офис
  • Hostname: 192.168.1.1 (или внешний IP)
  • Heartbeat Interval: 30 секунд

Монитор 2 — Winbox Port:

  • Monitor Type: TCP Port
  • Friendly Name: MikroTik Winbox Port
  • Hostname: 192.168.1.1
  • Port: 8291

Важно: если Uptime Kuma и MikroTik находятся в одной сети или связаны через VPN — ping-мониторинг работает корректно. Для внешних IP убедитесь, что ICMP не заблокирован файерволом.

Пример 3: Контроль Docker-контейнера

Хотите знать, что ваш nginx-контейнер не упал? Uptime Kuma умеет подключаться к Docker API.

  • Monitor Type: Docker Container
  • Friendly Name: Nginx Container
  • Docker Container: nginx (имя контейнера)
  • Docker Host: нужно предварительно добавить Docker Host в настройках

Для подключения к локальному Docker добавьте в docker-compose.yml маппинг сокета:

volumes:
  - ./data:/app/data
  - /var/run/docker.sock:/var/run/docker.sock:ro

Внимание: монтирование Docker-сокета даёт Uptime Kuma права на чтение состояния контейнеров. Это read-only (:ro), но всё равно держите это в уме при оценке безопасности.

Пример 4: Мониторинг API (ожидание JSON-ответа)

Ваш API должен возвращать {"status": "ok"}. Не просто 200, а именно это значение.

  • Monitor Type: HTTP(S) — Keyword
  • URL: https://api.your-service.ru/health
  • Keyword: "status":"ok" (или просто ok)
  • Keyword Type: Text (или JSON Query для точного парсинга)

Если слово или JSON-поле не найдено в ответе — монитор считается упавшим. Это отличный способ отловить ситуацию, когда сервер отвечает 200, но приложение внутри сломалось.

Пример 5: Push-мониторинг для cron-задач

Классическая боль: cron-задача выполняется, но вы не знаете, выполняется ли она на самом деле. Push-мониторинг решает это элегантно.

Принцип работы: Uptime Kuma генерирует уникальный URL. Ваш скрипт или cron-задача пингует этот URL после успешного выполнения. Если пинга нет в течение заданного времени — алерт.

  • Monitor Type: Push
  • Friendly Name: Backup DB cron
  • Heartbeat Interval: 86400 секунд (24 часа)

Uptime Kuma выдаст вам URL вида: https://kuma.your-domain.ru/api/push/abc123xyz

Добавьте в ваш bash-скрипт бэкапа последней строкой:

#!/bin/bash
# ... ваш скрипт бэкапа ...

# Пинг после успешного выполнения
curl -fsS "https://kuma.your-domain.ru/api/push/abc123xyz?status=up&msg=OK" > /dev/null

Если скрипт упал с ошибкой до этой строки — Uptime Kuma не получит пинг и через 24 часа поднимет алерт. Простой и надёжный способ мониторинга «живости» cron-задач без агентов.


6. Настройка уведомлений: Telegram, Email, Slack

Мониторинг без алертов — это просто красивый дашборд. Давайте сделаем так, чтобы он кричал когда нужно.

Telegram-алертинг: пошаговая инструкция

Telegram — самый удобный канал для алертов: работает везде, мгновенные уведомления, бесплатно.

Шаг 1: Создайте Telegram-бота

  1. Откройте Telegram и найдите @BotFather.
  2. Отправьте команду /newbot.
  3. Введите имя бота (например: MyMonitoringBot).
  4. Введите username бота (должен заканчиваться на bot, например: my_monitoring_bot).
  5. Получите Bot Token в формате: 1234567890:ABCdefGHIjklMNOpqrSTUvwxyz. Сохраните его.

Шаг 2: Получите Chat ID

  1. Напишите вашему боту любое сообщение (например: /start).
  2. Откройте в браузере URL: https://api.telegram.org/botВАШ_ТОКЕН/getUpdates
  3. В ответе найдите поле "chat":{"id": XXXXXXXX} — это ваш Chat ID.

Для групповых чатов или каналов: добавьте бота в группу, напишите сообщение, и chat_id будет отрицательным числом (например: -1001234567890).

Шаг 3: Подключите в Uptime Kuma

  1. Перейдите в Settings → Notifications → Add Notification.
  2. Выберите тип: Telegram.
  3. Введите Bot Token и Chat ID.
  4. Нажмите «Test» — должно прийти тестовое сообщение.
  5. Сохраните и назначьте уведомление на нужные мониторы.

Настройка Email-уведомлений (SMTP)

В разделе Notifications выберите тип Email (SMTP):

  • SMTP Host: smtp.gmail.com (или ваш SMTP-сервер)
  • SMTP Port: 587 (TLS) или 465 (SSL)
  • Username: ваш email
  • Password: пароль приложения (для Gmail — создайте в настройках аккаунта Google)
  • From Email / To Email: адреса отправителя и получателя

Webhook для Slack, Teams и любых систем

Выберите тип Slack (или Microsoft Teams, или просто Webhook) и вставьте Incoming Webhook URL из настроек вашего рабочего пространства. Uptime Kuma отправит JSON-уведомление при каждом изменении статуса.

Практический пример: алерт при 3 подряд ошибках

Один сбой — не повод будить в 3 ночи. Настройте Retries на уровне монитора:

  • Retries: 3 — три подряд неудачных проверки перед алертом.
  • Retry Interval: 20 секунд — пауза между повторами.

Итого: алерт придёт через 60 секунд после начала реального падения, но не на каждый кратковременный тайм-аут сети. Разумный баланс между скоростью реакции и количеством ложных срабатываний.

Совет: настройте два канала уведомлений — Telegram (быстро) и Email (резерв). Если Telegram-бота заблокировали или упал сам сервер уведомлений — email придёт в любом случае.


7. Публичная статус-страница: ваш профессиональный щит перед клиентами

Статус-страница — это то, что отличает серьёзного подрядчика от «у нас всё хорошо, честно». Это публичный URL, где ваши клиенты могут видеть состояние всех сервисов в реальном времени.

Как включить статус-страницу

  1. В боковом меню выберите «Status Page».
  2. Нажмите «New Status Page».
  3. Задайте slug (часть URL), например: status — страница будет доступна по адресу http://kuma.your-domain.ru/status/status.
  4. Добавьте мониторы, которые хотите показать.
  5. Сохраните и откройте ссылку.

Кастомизация статус-страницы

Uptime Kuma позволяет:

  • Задать заголовок и описание страницы.
  • Загрузить логотип или иконку.
  • Включить или отключить отображение истории за 90 дней.
  • Добавить кастомный CSS для брендирования под клиента.
  • Настроить собственный домен: status.client-site.ru через reverse proxy.

Использование для клиентов и B2B

Реальный кейс: вы обслуживаете интернет-магазин клиента. Ночью лежал сервер 40 минут. Утром приходит злой клиент. Вместо оправданий вы отправляете ссылку на статус-страницу, где видно: инцидент зафиксирован в 03:47, сервис восстановлен в 04:28, общее время простоя — 41 минута.

Это называется прозрачность. Клиенты ценят её больше, чем идеальный аптайм. Потому что идеального аптайма не бывает, а честность — редкость.

Для B2B: создайте отдельную статус-страницу для каждого крупного клиента, показывайте только его сервисы. Это добавляет ценность к вашим услугам и снижает количество панических звонков. Uptime мониторинг для клиентов из инструмента превращается в услугу.

Внешний вид страницы чистый, современный, адаптивный. Без регистрации, без рекламы, без «powered by» — если хотите, конечно.


8. Безопасность и best practices

Uptime Kuma знает адреса всех ваших серверов, порты, токены уведомлений. Открывать его напрямую в интернет по HTTP на порту 3001 — плохая идея.

Reverse Proxy через Nginx (обязательно для продакшена)

Установите Nginx и certbot:

sudo apt install nginx certbot python3-certbot-nginx -y

Создайте файл конфигурации:

sudo nano /etc/nginx/sites-available/uptime-kuma

Содержимое (HTTP → HTTPS с WebSocket-поддержкой):

server {
    listen 80;
    server_name kuma.your-domain.ru;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name kuma.your-domain.ru;

    ssl_certificate /etc/letsencrypt/live/kuma.your-domain.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/kuma.your-domain.ru/privkey.pem;

    location / {
        proxy_pass         http://localhost:3001;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection "upgrade";
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Активируем и получаем сертификат:

sudo ln -s /etc/nginx/sites-available/uptime-kuma /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
sudo certbot --nginx -d kuma.your-domain.ru

Теперь Uptime Kuma доступна по https://kuma.your-domain.ru с валидным SSL-сертификатом от Let’s Encrypt.

Basic Auth как дополнительный слой защиты

Если хотите добавить Basic Auth поверх встроенной авторизации Uptime Kuma:

sudo apt install apache2-utils -y
sudo htpasswd -c /etc/nginx/.htpasswd admin

Добавьте в секцию location / в конфиге Nginx:

auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;

Доступ только через VPN

Самый параноидальный и правильный способ: Uptime Kuma вообще не открывается наружу. Доступ только через WireGuard или OpenVPN.

# Ограничение в Nginx: разрешаем только VPN-подсеть
location / {
    allow 10.0.0.0/8;    # ваша VPN-подсеть
    deny all;
    proxy_pass http://localhost:3001;
    # ... остальные параметры ...
}

Бэкап данных Uptime Kuma

Все данные хранятся в одной папке — это главное преимущество SQLite. Для Docker-варианта с именованным томом:

# Бэкап именованного тома
docker run --rm \
  -v uptime-kuma:/data \
  -v $(pwd):/backup \
  alpine tar czf /backup/kuma-backup-$(date +%Y%m%d).tar.gz /data

# Бэкап для docker-compose варианта (папка ./data)
tar czf kuma-backup-$(date +%Y%m%d).tar.gz /opt/uptime-kuma/data

Поставьте этот скрипт в cron. И — вот кстати отличный повод — настройте push-мониторинг в самой же Uptime Kuma для контроля выполнения этого бэкапа.

Обновление Uptime Kuma

docker pull louislam/uptime-kuma:1
docker stop uptime-kuma
docker rm uptime-kuma
docker run -d \
  --restart=always \
  -p 3001:3001 \
  -v uptime-kuma:/app/data \
  --name uptime-kuma \
  louislam/uptime-kuma:1

Данные сохранятся в именованном томе и никуда не денутся. Весь процесс обновления занимает 2–3 минуты.


9. Типовые ошибки новичков (и как их не совершить)

За годы работы с мониторингом накопился список граблей. Делимся, чтобы вы прошли мимо.

Ошибка 1: Слишком маленький интервал проверки

Симптом: поставили интервал 10 секунд для 50 мониторов. Нагрузка на сервер выросла, сами мониторы начали давать ложные тайм-ауты из-за перегрузки самой Uptime Kuma.

Лечение: для большинства задач достаточно 60 секунд. Для критичных сервисов — 30 секунд. Интервал в 10 секунд оправдан только для production API с жёстким SLA и малым числом мониторов.

Ошибка 2: Отсутствие Retries

Симптом: приходит алерт в 3 ночи — сайт упал! Вы просыпаетесь в холодном поту. Заходите проверить — всё работает. Это был один сетевой тайм-аут длительностью 2 секунды.

Лечение: всегда устанавливайте Retries: 2–3. Три подряд ошибки — это реальная проблема. Одна — скорее всего, сетевой шум или кратковременная перегрузка.

Ошибка 3: Нет тестового алерта

Симптом: настроили Telegram-уведомление, думаете что всё работает. Сервер падает — тишина. Оказывается, токен бота устарел, или chat_id неверный, или бот заблокирован в канале.

Лечение: всегда нажимайте кнопку «Test» при настройке уведомления. И периодически делайте это снова. Раз в месяц — нормальная практика.

Ошибка 4: Один канал уведомлений

Симптом: вся команда получает алерты только в один Telegram-чат. Мессенджер заблокирован у сотрудника, нет интернета, телефон разряжен — алерт пропущен.

Лечение: настройте минимум два канала: Telegram + Email. Для критичных сервисов добавьте PagerDuty или Pushover — они умеют будить даже при включённом режиме «Не беспокоить» на iPhone/Android.

Ошибка 5: Мониторинг только главной страницы

Симптом: главная страница отвечает 200 — всё в порядке. Но корзина, оплата и API не работают уже два часа. Клиенты уходят, а вы не знаете.

Лечение: добавьте мониторинг ключевых эндпоинтов: страница оформления заказа, API health-check, страница входа в личный кабинет. Используйте Keyword-тип для проверки наличия нужного контента в ответе.


10. Когда Uptime Kuma не подойдёт

Честный разговор. Uptime Kuma — не серебряная пуля. Есть ситуации, где нужно что-то другое.

Нужен сложный триггерный анализ

Uptime Kuma отвечает на вопрос «живой или мёртвый». Если вам нужны триггеры вида «CPU выше 90% в течение 5 минут» или «количество ошибок в логах превысило 100 в час» — это уже территория Zabbix, Prometheus + Alertmanager или Grafana Alerting.

Нужна масштабируемость enterprise-уровня

500+ мониторов, мультитенантность, ролевой доступ (RBAC), интеграция с LDAP/Active Directory, audit log — всё это Uptime Kuma пока не умеет или умеет ограниченно. Здесь ваш выбор — Grafana Enterprise, Datadog, New Relic или full-stack Prometheus.

Нужны метрики нагрузки (CPU/RAM/Disk графики)

Uptime Kuma не собирает системные метрики. Он не знает, сколько оперативки ест ваш PostgreSQL и как нагружен процессор. Для этого нужны Prometheus + Node Exporter + Grafana, или Netdata, или Zabbix с агентами.

Вывод: Uptime Kuma — это пластырь и жаропонижающее, а не хирургический робот. Для 80% задач малого и среднего бизнеса — идеально. Для enterprise с серьёзными SLA — стартовая точка или дополнение к более мощным системам.


11. Вывод: что мы получили

Мы прошли путь от нулевого мониторинга до работающей системы алертинга с публичной статус-страницей. Давайте зафиксируем результат:

  • Uptime Kuma установлена в Docker за 2 минуты.
  • Мониторинг настроен для сайтов, API, Docker-контейнеров и cron-задач.
  • Telegram-алерты работают — следующее падение вы узнаете первым, а не от клиента.
  • Публичная статус-страница — ваши клиенты видят инциденты без лишних звонков вам.
  • Nginx reverse proxy + SSL — Uptime Kuma доступна по HTTPS с нормальным доменом.
  • Бэкап настроен — данные в безопасности.

Всё это заняло один вечер, не потребовало DevOps-команды и работает на VPS за 300–500 рублей в месяц. Self-hosted мониторинг перестал быть привилегией крупных компаний — теперь это доступно каждому.

Если хотите двигаться дальше — изучите интеграцию Uptime Kuma с Grafana через Simple JSON Datasource, или поднимите Prometheus + Node Exporter рядом для метрик нагрузки. Но это уже другой гайд.

Пишите в комментарии, если возникли вопросы или нашли нестандартный кейс применения — разберём вместе.

Подпишитесь на наш Telegram-канал — там выходят новые рецепты из IT-Аптеки, готовые скрипты и разборы реальных инцидентов. Без воды, только по делу.


12. FAQ: часто задаваемые вопросы про Uptime Kuma

Бесплатен ли Uptime Kuma?

Да, полностью. Uptime Kuma распространяется по лицензии MIT. Никаких платных планов, никаких ограничений по количеству мониторов или уведомлений. Единственные расходы — аренда VPS, на котором он работает.

Сколько ресурсов потребляет Uptime Kuma?

Очень мало. В среднем при 50–100 мониторах — около 100–150 MB RAM и практически нулевая нагрузка на CPU в режиме ожидания. Работает на самом дешёвом VPS с 512 MB памяти без каких-либо проблем.

Можно ли мониторить внутренние сервисы (не доступные из интернета)?

Да, именно для этого и нужен self-hosted подход. Uptime Kuma работает из вашей сети и может мониторить адреса 192.168.x.x, внутренние базы данных, роутеры — всё, что доступно с сервера, где запущена Uptime Kuma. Через VPN-туннель тоже работает отлично.

Как обновить Uptime Kuma до новой версии?

Для Docker-варианта: остановите контейнер, удалите его, скачайте новый образ командой docker pull louislam/uptime-kuma:1 и запустите заново с теми же параметрами. Данные сохранятся в именованном томе. Весь процесс занимает 2–3 минуты и не требует настройки с нуля.

Поддерживает ли Uptime Kuma мониторинг SSL-сертификатов?

Да. При создании HTTP(S)-монитора включите опцию «Certificate Expiry Notification». Можно настроить предупреждение за 30, 14 и 7 дней до истечения сертификата — это спасёт вас от внезапных блокировок сайта из-за просроченного SSL.

Можно ли запустить несколько экземпляров Uptime Kuma для разных клиентов?

Да. Запустите несколько контейнеров на разных портах (3001, 3002, 3003…) с разными томами данных. Каждый работает полностью независимо. Разграничение доступа по клиентам — через Nginx с разными поддоменами.

Есть ли мобильное приложение?

Нативного мобильного приложения нет. Но веб-интерфейс полностью адаптивный и корректно работает в мобильном браузере. Для уведомлений лучше всего подходят Telegram или Pushover — они отлично работают на мобильных устройствах и поддерживают приоритетные уведомления.


Таблица сценариев использования Uptime Kuma

Сценарий Тип монитора Интервал Алерт-канал
Интернет-магазин (главная + оплата) HTTP(S) Keyword 60 сек Telegram + Email
REST API сервис HTTP(S) JSON Query 30 сек Slack
Офисный роутер MikroTik Ping + TCP Port 60 сек Telegram
MySQL / PostgreSQL порт TCP Port 60 сек PagerDuty
Docker-контейнер приложения Docker Container 30 сек Telegram
Ночной бэкап (cron) Push 24 часа Email
Игровой сервер Gamedig 60 сек Discord
SSL-сертификат HTTP(S) + Cert Check 24 часа Telegram
DNS-запись домена DNS Record 300 сек Email
Внутренний корпоративный портал HTTP(S) 60 сек Telegram + Slack
over_dude
Author: over_dude

Поделитесь:

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх