Uptime Kuma: налаштування власного моніторингу сайтів на VPS
Сайт може зламатися, продовжуючи повертати 200 OK. Резервне копіювання може припинитися без очевидної помилки. Uptime Kuma виявляє обидва випадки: перевіряє сайти, API, порти та фонові завдання, а потім надсилає сповіщення, коли щось іде не так.
Розглянемо, де розмістити систему моніторингу, який VPS їй потрібен, як встановити Uptime Kuma 2, увімкнути HTTPS, підключити Telegram і створити сторінку статусу.
Uptime Kuma у семи кроках
- Виділіть невеликий VPS окремо від проєктів, які моніторяться.
- Спрямуйте на нього піддомен, наприклад
monitor.example.com. - Встановіть Docker і запустіть Uptime Kuma 2.
- Закрийте внутрішній порт
3001і ввімкніть HTTPS. - Створіть HTTP-, DNS-, TCP- або push-монітори.
- Налаштуйте Telegram і, за потреби, сторінку статусу.
- Налаштуйте оновлення та зовнішню резервну копію каталогу даних.
Що таке Uptime Kuma?
Uptime Kuma — безкоштовний інструмент із відкритим кодом для self-hosted розгортання. Його панель і історія перевірок зберігаються на вашому сервері.
Він може моніторити HTTP(S), TCP-порти, ping, DNS, WebSocket, текст і JSON у відповідях, push-сигнали та Docker-контейнери. Мінімальний інтервал перевірки — 20 секунд. Також доступні десятки каналів сповіщень, 2FA, графіки затримки, моніторинг TLS-сертифікатів і кілька сторінок статусу.
Як виявити помилку, приховану за 200 OK
Базова HTTP-перевірка бачить лише код відповіді. Однак вебсервер може показувати порожню сторінку або екран помилки застосунку й водночас повертати успішний статус.
Для точнішого моніторингу використовуйте:
- Keyword — шукає очікувану фразу, наприклад назву сайту або текст «Account dashboard»;
- JSON Query — перевіряє значення у відповіді API, наприклад
status: healthy.
Так монітор підтверджує не лише доступність порту, а й те, що застосунок показує хоча б одну очікувану ознаку коректної роботи.
Push-монітор для резервних копій і cron-завдань
Push-монітор не опитує сервіс. Натомість він чекає регулярного сигналу від цього сервісу. Скрипт резервного копіювання або cron-завдання викликає унікальний URL після успішного завершення. Якщо сигнал не надійшов вчасно, Uptime Kuma повідомляє про помилку.
Це допомагає виявити «тиху» проблему: сайт працює, але щоденна резервна копія не створювалася кілька днів.
Чого Uptime Kuma не замінює?
Uptime Kuma передусім відстежує доступність і час відповіді. Для CPU, RAM, диска, журналів і метрик контейнерів доповніть його Prometheus, Netdata, Zabbix або іншою системою моніторингу: Kuma помічає проблему ззовні, а метрики допомагають визначити причину.
Чому моніторинг має працювати на окремому VPS?
Якщо Uptime Kuma встановлено поруч із сайтом, збій VPS, мережі або дата-центру може вивести з ладу і проєкт, і систему моніторингу. Сповіщення може взагалі не бути надіслано.
Розмістіть панель на окремому VPS, а для важливих проєктів — в іншій локації або в іншого провайдера. Також корисно моніторити сам Kuma зовнішнім сервісом: систему моніторингу теж хтось має контролювати.
Вимоги Uptime Kuma до сервера
Проєкт не визначає суворого офіційного мінімуму CPU і RAM. Практична стартова конфігурація для невеликої інсталяції:
- 1 vCPU;
- 1 GB RAM;
- 10 GB SSD;
- Ubuntu 24.04 LTS;
- IPv4;
- домен або піддомен для HTTPS.
Цієї конфігурації зазвичай достатньо для кількох десятків простих перевірок. Для сотень моніторів, тривалого зберігання історії або браузерних перевірок виберіть 2 GB RAM чи більше.
Як встановити Uptime Kuma на VPS
У прикладі використано Ubuntu 24.04 і піддомен monitor.example.com.
1. Налаштуйте DNS і firewall
Створіть DNS-запис A, що вказує на IPv4-адресу VPS. Підключіться через SSH і відкрийте потрібні порти:
ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw --force enableНе закривайте поточну SSH-сесію, доки не перевірите нове підключення.
2. Встановіть Docker і Docker Compose
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
docker compose version3. Запустіть Uptime Kuma 2
mkdir -p /opt/uptime-kuma
cd /opt/uptime-kuma
cat > compose.yaml <<'EOF'
services:
uptime-kuma:
image: louislam/uptime-kuma:2
restart: unless-stopped
ports:
- "127.0.0.1:3001:3001"
volumes:
- ./data:/app/data
EOF
docker compose up -d
docker compose psВикористовуйте тег :2: latest досі призначений для застарілої гілки v1. Каталог /app/data має зберігатися на локальному диску або у звичайному Docker volume. NFS і сховища без належного блокування файлів можуть пошкодити базу даних.
Порт 3001 доступний лише через 127.0.0.1. Reverse proxy з HTTPS опублікує панель назовні.
4. Увімкніть HTTPS за допомогою Caddy
apt install -y caddy
cat > /etc/caddy/Caddyfile <<'EOF'
monitor.example.com {
reverse_proxy 127.0.0.1:3001
}
EOF
caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddyЯкщо DNS вказує на VPS, Caddy автоматично запросить TLS-сертифікат і проксуватиме WebSocket-з'єднання. Розміщуйте панель у корені домену або піддомену: адреса на кшталт example.com/kuma не підтримується.
5. Створіть обліковий запис адміністратора
Відкрийте https://monitor.example.com, створіть обліковий запис із довгим унікальним паролем і ввімкніть двофакторну автентифікацію.
Як додати перший монітор
Натисніть Add New Monitor і виберіть HTTP(s):
- Введіть назву та повний URL.
- Встановіть інтервал, наприклад 60 секунд.
- Додайте дві повторні спроби для випадкових мережевих збоїв.
- Виберіть канал сповіщень.
- Збережіть монітор і переконайтеся, що з'являються успішні перевірки.
Для основного сайту корисні HTTP- і Keyword-перевірки. Для API використовуйте health endpoint і JSON Query. Не відкривайте бази даних або адміністративні порти в інтернет лише заради моніторингу; використовуйте довірену мережу або VPN.
Приклад Push-монітора для резервної копії
Після створення монітора Push додайте його унікальний URL у кінець скрипта:
backup-command && \
curl -fsS "https://monitor.example.com/api/push/SECRET_TOKEN?status=up&msg=backup-ok"Запит виконується лише після успішного резервного копіювання. Ставтеся до push-токена як до пароля: кожен, хто знає URL, може надіслати хибний сигнал.
Як підключити Telegram?
Створіть бота через @BotFather, надішліть йому повідомлення, а потім відкрийте Settings → Notifications → Telegram. Введіть Bot Token і Chat ID, натисніть Test і призначте канал моніторам. Для критичних сервісів додайте другий канал, наприклад email.
Як створити сторінку статусу?
У Status Pages можна групувати монітори, показувати поточний статус та історію доступності, призначати домен і повідомляти про планові роботи через Maintenance. Не публікуйте внутрішні IP-адреси або технічні URL: клієнтам потрібні лише компоненти на кшталт «Website», «API», «Account dashboard» і «Payments».
Оновлення та резервне копіювання Uptime Kuma
Перед великим оновленням зупиніть контейнер і збережіть каталог даних:
cd /opt/uptime-kuma
docker compose down
tar -czf /root/uptime-kuma-$(date +%F).tar.gz \
data compose.yaml
docker compose up -dПеремістіть архів на інший пристрій або зовнішнє сховище. Копія на тому самому VPS не захищає від видалення сервера чи відмови диска.
Для регулярного оновлення:
cd /opt/uptime-kuma
docker compose pull
docker compose up -d --force-recreateПісля запуску перевірте docker compose ps, відкрийте панель і надішліть тестове сповіщення.
Який VPS вибрати для Uptime Kuma?
Невеликій інсталяції потрібен лише Linux VPS із 1 vCPU і 1 GB RAM. Незалежність важливіша за сиру продуктивність: монітор має працювати, коли основний проєкт недоступний.
Uptime Kuma можна розмістити на VPS від tropic.host, якщо контрольовані сервіси працюють на іншій платформі або незалежному вузлі. Ubuntu, Docker і статична IP-адреса дають змогу швидко запустити панель, а ресурси можна збільшувати разом із кількістю перевірок.
Якщо production уже працює в тій самій інфраструктурі, виберіть інший вузол або додайте зовнішній резервний монітор. Розділення доменів відмови корисніше за додаткове ядро CPU.
Поширені помилки
| Помилка | Чому це проблема | Кращий підхід |
|---|---|---|
| Моніторинг працює поруч із проєктом | Спільний збій виводить з ладу сервіс і сповіщення | Використовуйте окремий VPS або локацію |
Порт 3001 відкритий публічно | Панель доступна без reverse proxy або HTTPS | Прив'яжіть порт до 127.0.0.1 |
Перевіряється лише код 200 | Помилка застосунку може виглядати як успіх | Додайте Keyword або JSON Query |
Використовується тег latest | Він вказує на застарілу гілку v1 | Використовуйте louislam/uptime-kuma:2 |
| Резервна копія зберігається на тому самому VPS | Вона зникне разом із сервером | Копіюйте каталог data в інше місце |
Підсумок
Uptime Kuma перетворює невеликий VPS на власний центр моніторингу сайтів, API, DNS, портів, сертифікатів і фонових завдань. Keyword допомагає виявити зламану сторінку, JSON Query — неправильну відповідь API, а Push показує зупинку резервного копіювання або cron-завдання.
Для надійної конфігурації розмістіть систему моніторингу окремо від production, закрийте порт 3001, увімкніть HTTPS і 2FA та налаштуйте два канали сповіщень. Потім створіть зовнішню резервну копію каталогу даних і незалежну перевірку самого Uptime Kuma.
Поширені запитання
Uptime Kuma безкоштовний?
Так. Проєкт має відкритий код і поширюється за ліцензією MIT. Ви платите лише за інфраструктуру, домен і зовнішні резервні копії.
Скільки RAM потрібно Uptime Kuma?
Для невеликої інсталяції 1 GB RAM — розумна відправна точка. Для сотень перевірок, тривалого зберігання історії або Browser Engine виділіть 2 GB чи більше.
Чи можна встановити Uptime Kuma без Docker?
Так, за допомогою Node.js і PM2. Однак Docker Compose зазвичай спрощує оновлення, міграцію та відновлення на VPS.
Чи можна використовувати Uptime Kuma без домену?
Технічно так — через IP-адресу або SSH-тунель. Для постійного доступу з інтернету безпечніший піддомен із HTTPS.
Чи показує Uptime Kuma використання CPU, RAM і диска?
Не як повноцінна система серверних метрик. Для моніторингу ресурсів сервера доповніть його Prometheus, Netdata, Zabbix або іншим спеціалізованим інструментом.
