Установка Uptime Kuma: Self-Hosted мониторинг доступности
Установка Uptime Kuma с Docker, мониторинг HTTP/TCP/DNS/ping, интеграции уведомлений (Telegram, Discord, email), создание страницы статуса и настройка оповещений.
Содержание
Установка Uptime Kuma: Self-Hosted мониторинг доступности
Uptime Kuma — это self-hosted инструмент мониторинга доступности, отслеживающий работоспособность ваших сервисов и веб-сайтов. С красивым веб-интерфейсом, различными типами мониторов и богатыми интеграциями уведомлений он предлагает отличную альтернативу Uptime Robot.
Что такое Uptime Kuma?
Выдающиеся возможности Uptime Kuma:
- Типы мониторов: HTTP(S), TCP, DNS, Ping, Docker Container, Steam Game Server
- Каналы уведомлений: Telegram, Discord, Slack, Email, PagerDuty, Webhook и 90+ интеграций
- Страница статуса: Настраиваемая страница статуса
- Мониторинг SSL: Отслеживание срока действия сертификатов
- Окно обслуживания: Определение плановых окон обслуживания
- Поддержка 2FA: Двухфакторная аутентификация
- Многоязычность: 40+ языков
Установка
Установка с Docker (Рекомендуется)
docker run -d \
--name uptime-kuma \
--restart=always \
-p 3001:3001 \
-v uptime-kuma:/app/data \
louislam/uptime-kuma:latest
После установки:
http://IP_СЕРВЕРА:3001
Установка с Docker Compose
# docker-compose.yml
version: '3.8'
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
restart: unless-stopped
ports:
- "3001:3001"
volumes:
- uptime-kuma:/app/data
security_opt:
- no-new-privileges:true
volumes:
uptime-kuma:
docker compose up -d
HTTPS с Nginx Reverse Proxy
server {
listen 80;
server_name uptime.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name uptime.example.com;
ssl_certificate /etc/letsencrypt/live/uptime.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/uptime.example.com/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_set_header X-Real-IP $remote_addr;
proxy_cache_bypass $http_upgrade;
}
}
Типы мониторов
HTTP(S) монитор
Monitor Type: HTTP(S)
Friendly Name: Главная страница
URL: https://example.com
Heartbeat Interval: 60 секунд
Retries: 3
Accepted Status Codes: 200-299
Расширенные настройки HTTP:
# Мониторинг ключевых слов (поиск текста на странице)
Monitor Type: HTTP(S) - Keyword
Keyword: "Добро пожаловать"
# Мониторинг JSON Query (проверка ответа API)
Monitor Type: HTTP(S) - JSON Query
JSON Path: $.status
Expected Value: ok
TCP Port монитор
Monitor Type: TCP Port
Friendly Name: База данных MySQL
Hostname: db.example.com
Port: 3306
Heartbeat Interval: 120 секунд
DNS монитор
Monitor Type: DNS
Friendly Name: Проверка DNS
Hostname: example.com
Resolver Server: 8.8.8.8
DNS Resolve Type: A
Expected Value: 1.2.3.4
Мониторинг SSL-сертификата
Monitor Type: HTTP(S)
URL: https://example.com
# На вкладке SSL:
Enable SSL Certificate Expiry Notification: ВКЛ
Notify Before (days): 30
Интеграции уведомлений
Уведомление Telegram
# 1. Создайте бота через BotFather
# Получите Bot Token: 1234567890:ABCdefGHIjklMNOpqrSTUvwxYZ
# 2. Получите Chat ID
curl https://api.telegram.org/bot<TOKEN>/getUpdates
# Запишите значение "chat":{"id":123456789}
Notification Type: Telegram
Bot Token: 1234567890:ABCdefGHIjklMNOpqrSTUvwxYZ
Chat ID: 123456789
Уведомление Discord
# Создать Webhook в Discord:
# Настройки сервера → Интеграции → Вебхуки → Новый вебхук
# Скопировать URL вебхука
Notification Type: Discord
Discord Webhook URL: https://discord.com/api/webhooks/...
Username: Uptime Kuma
Уведомление по Email (SMTP)
Notification Type: Email (SMTP)
From Email: alerts@example.com
To Email: admin@example.com
SMTP Host: smtp.gmail.com
SMTP Port: 587
SMTP Username: alerts@example.com
SMTP Password: пароль-приложения
Security: STARTTLS
Создание страницы статуса
Новая страница статуса
- Status Pages → New Status Page
- Установите название и slug страницы:
status.example.com - Добавьте логотип и заголовок
- Добавьте мониторы в группы
- Сохраните с помощью Save
# Настройки страницы статуса:
Title: Статус сервисов
Description: Статус всех наших сервисов в реальном времени
Theme: Auto (Светлая/Тёмная)
Custom Domain: status.example.com
Окно обслуживания
Maintenance → Add Maintenance
Title: Еженедельное обслуживание
Strategy: Recurring
Start Time: Воскресенье 02:00
End Time: Воскресенье 04:00
Timezone: Europe/Moscow
Affected Monitors: Все мониторы
Обновление Uptime Kuma
docker stop uptime-kuma
docker rm uptime-kuma
docker pull louislam/uptime-kuma:latest
docker run -d \
--name uptime-kuma \
--restart=always \
-p 3001:3001 \
-v uptime-kuma:/app/data \
louislam/uptime-kuma:latest
Резервное копирование
# Резервное копирование данных Uptime Kuma
docker exec uptime-kuma tar -czf /tmp/backup.tar.gz /app/data
docker cp uptime-kuma:/tmp/backup.tar.gz ./uptime-kuma-backup-$(date +%Y%m%d).tar.gz
# Восстановление
docker cp ./uptime-kuma-backup.tar.gz uptime-kuma:/tmp/
docker exec uptime-kuma tar -xzf /tmp/backup.tar.gz -C /
Вы можете отслеживать все сервисы, работающие на серверах REXE, с помощью Uptime Kuma. Благодаря уведомлениям в Telegram вы будете мгновенно оповещены о любых сбоях.
Связанные статьи
Установка Coolify: Развёртывание приложений с Self-Hosted PaaS
Установка Coolify, интеграция Docker и Git, развёртывание приложений, управление базами данных, SSL-сертификаты, переменные окружения и self-hosted PaaS как альтернатива Heroku/Netlify.
Установка Nextcloud: Self-Hosted облачное хранилище и совместная работа
Установка Nextcloud с Docker, настройка Apache/Nginx, установка базы данных, SSL-сертификат, синхронизация файлов, магазин приложений и оптимизация производительности.
Управление Docker с Portainer: Веб-интерфейс для контейнеров
Установка Portainer CE, управление Docker и Kubernetes, развёртывание стеков, управление томами/сетями, авторизация пользователей, вебхуки и интеграция GitOps.