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:
- Создайте учётную запись администратора (логин + пароль).
- Вы попадёте в пустой дашборд. Нажмите «Add New Monitor».
- Настройте первую проверку — например, 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-бота
- Откройте Telegram и найдите @BotFather.
- Отправьте команду
/newbot. - Введите имя бота (например:
MyMonitoringBot). - Введите username бота (должен заканчиваться на
bot, например:my_monitoring_bot). - Получите Bot Token в формате:
1234567890:ABCdefGHIjklMNOpqrSTUvwxyz. Сохраните его.
Шаг 2: Получите Chat ID
- Напишите вашему боту любое сообщение (например:
/start). - Откройте в браузере URL:
https://api.telegram.org/botВАШ_ТОКЕН/getUpdates - В ответе найдите поле
"chat":{"id": XXXXXXXX}— это ваш Chat ID.
Для групповых чатов или каналов: добавьте бота в группу, напишите сообщение, и chat_id будет отрицательным числом (например: -1001234567890).
Шаг 3: Подключите в Uptime Kuma
- Перейдите в Settings → Notifications → Add Notification.
- Выберите тип: Telegram.
- Введите Bot Token и Chat ID.
- Нажмите «Test» — должно прийти тестовое сообщение.
- Сохраните и назначьте уведомление на нужные мониторы.
Настройка 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, где ваши клиенты могут видеть состояние всех сервисов в реальном времени.
Как включить статус-страницу
- В боковом меню выберите «Status Page».
- Нажмите «New Status Page».
- Задайте slug (часть URL), например:
status— страница будет доступна по адресуhttp://kuma.your-domain.ru/status/status. - Добавьте мониторы, которые хотите показать.
- Сохраните и откройте ссылку.
Кастомизация статус-страницы
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 часа | |
| Игровой сервер | Gamedig | 60 сек | Discord |
| SSL-сертификат | HTTP(S) + Cert Check | 24 часа | Telegram |
| DNS-запись домена | DNS Record | 300 сек | |
| Внутренний корпоративный портал | HTTP(S) | 60 сек | Telegram + Slack |


