Чем больше становится систем, с которыми ты работаешь, тем сильнее беспокоишься о том, чтобы нигде и ничего не сломалось. А если и сломалось, то реакция мангуста и очумелые ручки должны успеть всё оперативно исправить. Недавно я задумался о поиске удобной и простой системы мониторинга. Большинство существующих решений слишком громоздкие и требуют значительных временных затрат на изучение. Сегодня мы с вами рассмотрим очень простую и легкую в освоении систему мониторинга доступности сайтов и серверов под названием Uptime Kuma.
Что нужно для работы?
- Сервер с root-доступом.
- Доменное имя (подойдёт бесплатный поддомен).
- Установленные Docker и Docker-Compose.
- Настроенный Nginx Proxy Manager (или другой прокси).
- 10–20 минут свободного времени.
О системе Uptime Kuma
Основные преимущества:
- Открытый код (Open Source): всё бесплатно 🙂
- Простота интерфейса: настройка проверки ресурсов через ping, HTTP-запросы, или TCP/UDP (например, SSH).
- Графическое отображение данных: результат мониторинга представлен в удобных графиках с временными метками.
- Уведомления: 28 способов оповещения, включая Telegram, email, Discord и другие.
Дополнительные функции:
- Доступ к сервису с возможностью подключить 2FA из «коробки»
- Возможность создать публичную страницу мониторинга.
- Гибкая настройка уведомлений для разных событий.
Подготовка к установке
Создаём директории для хранения данных:
sudo mkdir -p /app/uptime-kuma/data
sudo chown -R $USER:$USER /app/uptime-kuma
Настройка Docker-Compose
Переходим в папку:
cd /app/uptime-kuma
Создаём файл docker-compose.yml
:
nano docker-compose.yml
Добавляем в него следующий конфиг:
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
restart: unless-stopped
ports:
- 3001:3001
volumes:
- ./data:/app/data
- /var/run/docker.sock:/var/run/docker.sock
security_opt:
- no-new-privileges:true
Если вы используете Nginx Proxy Manager и не хотите светить порты наружу.
Добавьте директиву networks в конфиг и закомментируйте порты. Подробней в статье про NPM.
#Добавьте в docker-compose.yml
networks:
default:
external: true
name: venom
Запускаем контейнер:
sudo docker compose up -d
Переходим в браузер и видим, что наш сервис Uptime Kuma запустился и работает!
Он попросит нас создать первого пользователя.
На момент написания статьи доступен образ
louislam/uptime-kuma:1
первой версии.
Но уже вышла Uptime KUMA beta v.2 которая скоро перекочует в стабильную.
После ввода данных заходим и смотрим, что у нас получилось:
Если вы, как и я, решили выбрать русский язык, то увидите прекрасно русифицированный понятный web-интерфейс.
Использование домена/поддомена
Для удобства можно прикрепить домен с SSL-сертификатом (например, от Let’s Encrypt), что бы понять как это сделать, не светя порты наружу, прочитайте мою статью для настройки Nginx Proxy Manager.
Настройка мониторинга через веб-интерфейс
- Открываем браузер и переходим по адресу
http://<IP-адрес>:3001
или если вы настроили домен, прокси и добавили SSL-сертификат переходим наhttps://example.com
- Создаём учётную запись администратора.
- Добавляем ресурсы для мониторинга:
- Тип мониторинга: HTTP(S), ping, TCP/UDP.
- Интервал проверки: задаётся в секундах (например, 600 секунд для проверки каждые 10 минут).
- Уведомления: настройка алертов для Telegram, email или других каналов.
Мониторинг Docker-контейнеров
Настройка:
- Проверьте в вашем
docker-compose.yml
наличие мапинга томов:volumes:
- /var/run/docker.sock:/var/run/docker.sock
- Если его нет — добавьте и перезапустите контейнер:
sudo docker compose down && sudo docker compose up -d
- В Uptime KUMA нажмите Новый монитор и выберите тип монитора Docker контейнер
В той же вкладке, нажмите + в разделе Хост Docker и добавьте наш локальный Docker Hosts и настройте мониторинг какого-то контейнера.
Итог
Uptime Kuma — это лёгкое и удобное решение для мониторинга с гибкими настройками и множеством функций. Благодаря простоте настройки, системе уведомлений и интуитивному интерфейсу, эта система отлично подойдёт как для профессионалов, так и для новичков.
Полезные ссылки: