Uptime Kuma: власний моніторинг доступності сайтів і серверів

Uptime Kuma — безкоштовний сервіс моніторингу доступності з відкритим кодом. Він регулярно перевіряє ваші сайти й сервери, надсилає сповіщення, коли щось перестало відповідати, і показує історію у вигляді наочних графіків. По суті, це власна заміна UptimeRobot без обмежень на кількість перевірок.
Що вміє Uptime Kuma
- перевірки HTTP(S), TCP-портів, ping, DNS-записів, баз даних і контейнерів Docker;
- пошук ключового слова на сторінці та перевірка коду відповіді;
- контроль терміну дії SSL-сертифікатів;
- сповіщення більш ніж у 90 сервісів, зокрема Telegram, пошту, Slack і Discord;
- публічні сторінки статусу на власному домені;
- планові вікна обслуговування, під час яких сповіщення не надсилаються.
Де розміщувати моніторинг
Моніторинг не повинен працювати на тому самому сервері, за яким він стежить: якщо сервер впаде, сповіщення надіслати буде нікому. Розмістіть Uptime Kuma на окремому невеликому VPS, бажано в іншому дата-центрі. Сервісу достатньо 1 ГБ пам’яті.
Встановлення
Знадобляться Docker і Docker Compose — див. інструкцію зі встановлення.
mkdir -p ~/uptime-kuma && cd ~/uptime-kuma
Створіть файл docker-compose.yml:
services:
uptime-kuma:
image: louislam/uptime-kuma:2
container_name: uptime-kuma
restart: unless-stopped
volumes:
- ./data:/app/data
ports:
- "127.0.0.1:3001:3001"
docker compose up -d
Порт опубліковано лише на локальній адресі. Щоб відкрити сервіс за доменом із HTTPS, налаштуйте зворотний проксі: у Nginx Proxy Manager створіть проксі-хост з увімкненою підтримкою WebSocket або використайте шаблон зворотного проксі для Nginx — у ньому вже є потрібні заголовки.
Перший запуск
Відкрийте адресу сервісу в браузері. Майстер налаштування запропонує:
- обрати базу даних. Для особистого використання підійде SQLite; для сотень моніторів оберіть вбудовану MariaDB;
- створити обліковий запис адміністратора.
Одразу після входу ввімкніть двофакторну автентифікацію: Налаштування → Безпека.
Додавання монітора
Натисніть Додати новий монітор і заповніть основні поля.
- Тип монітора.
HTTP(s)— для сайтів,TCP Port— для служб на кшталт SSH або пошти,Ping— для перевірки доступності сервера. - Зрозуміла назва — як монітор називатиметься в списку.
- URL або адреса й порт.
- Інтервал перевірки. 60 секунд — розумне типове значення.
- Повторні спроби. Вкажіть 2–3: сповіщення надійде лише після кількох невдач поспіль, і короткочасні збої мережі не спричинятимуть хибних спрацювань.
Для сайтів корисно ввімкнути перевірку терміну дії сертифіката — Uptime Kuma попередить за кілька днів до його закінчення.
Перевірка за ключовим словом
Сайт може відповідати кодом 200 і водночас показувати помилку бази даних. Тип монітора HTTP(s) — ключове слово перевіряє, що на сторінці є заданий текст — наприклад, фраза з підвалу сайту.
Моніторинг контейнерів Docker
Щоб стежити за станом контейнерів, передайте в Uptime Kuma сокет Docker. Додайте в docker-compose.yml:
volumes:
- ./data:/app/data
- /var/run/docker.sock:/var/run/docker.sock:ro
Потім у Налаштування → Docker-хости додайте хост із типом підключення Socket і створіть монітор типу Docker-контейнер.
Push-монітори
Тип Push працює навпаки: Uptime Kuma чекає на звернення за спеціальною адресою. Якщо запит не надійшов вчасно, монітор вважається таким, що впав. Так зручно контролювати завдання cron — наприклад, резервне копіювання:
0 3 * * * /usr/local/bin/backup.sh && curl -fsS https://status.example.com/api/push/XXXXXXXX > /dev/null
Сповіщення в Telegram
- Створіть бота в @BotFather командою
/newbotі скопіюйте токен. - Напишіть своєму боту будь-яке повідомлення.
- В Uptime Kuma відкрийте Налаштування → Сповіщення → Налаштувати сповіщення й оберіть тип Telegram.
- Вставте токен, натисніть Автоотримання поруч із полем ID чату і потім Тест.
- Увімкніть параметр Застосувати до всіх наявних моніторів і збережіть.
Сторінка статусу
Публічна сторінка показує клієнтам або колегам стан сервісів без входу в панель.
- Відкрийте Сторінки статусу → Нова сторінка статусу.
- Задайте назву й адресу сторінки.
- Додайте групи й перетягніть у них потрібні монітори.
- За потреби вкажіть власний домен — він має вказувати на сервер з Uptime Kuma.
На сторінці можна публікувати повідомлення про інциденти та планові роботи.
Обслуговування
Якщо ви плануєте роботи на сервері, створіть вікно в розділі Обслуговування: на цей час сповіщення за обраними моніторами вимкнуться, а на сторінці статусу з’явиться попередження.
Оновлення
cd ~/uptime-kuma
docker compose pull
docker compose up -d
Перехід із версії 1
Друга версія використовує новий формат бази даних. Перед оновленням:
- зупиніть контейнер і зробіть копію каталогу з даними;
- замініть тег образу на
louislam/uptime-kuma:2і запустіть контейнер.
Перенесення даних виконується автоматично під час першого запуску й за великої історії може тривати помітний час — не переривайте процес. Повернутися на першу версію після перенесення можна лише з резервної копії.
Резервні копії
Усі налаштування, монітори й історія містяться в каталозі data. Достатньо регулярно копіювати його за межі сервера, наприклад за допомогою rsync.
Чого Uptime Kuma не замінює
Сервіс відповідає на запитання «доступно чи ні», але не показує, чому сервер гальмує. Для метрик процесора, пам’яті й дисків використовуйте Grafana і Prometheus або Zabbix — вони добре доповнюють одне одного.
Відеоінструкція
Відео знято для першої версії: інтерфейс оновився, принцип роботи залишився той самий.



