bolt Valebyte VPS від $4/міс — NVMe, запуск за 60 секунд.

Отримати VPS arrow_forward
eco Початковий Туторіал

Встановлення та налаштування U

calendar_month May 26, 2026 schedule 10 хв. читання visibility 976 переглядів
Установка и настройка Uptime Kuma на VPS: мониторинг доступности и уведомления в Telegram
info

Потрібен сервер для цього гайду? Ми пропонуємо виділені сервери та VPS у 50+ країнах з миттєвим налаштуванням.

Потрібен сервер для цього гайду?

Розгорніть VPS або виділений сервер за хвилини.

Встановлення та налаштування Uptime Kuma на VPS: моніторинг доступності та сповіщення в Telegram

TL;DR

У цьому посібнику ми розберемо процес розгортання Uptime Kuma — потужного open-source інструменту для моніторингу інфраструктури — на віртуальному сервері (VPS). Ми налаштуємо автоматичну перевірку доступності сайтів, сервісів та портів, забезпечимо безпеку через реверс-проксі з SSL-шифруванням та інтегруємо систему миттєвих сповіщень у Telegram. До кінця туторіалу у вас буде власна професійна панель моніторингу, що працює в ізольованому Docker-контейнері з автоматичним оновленням та резервним копіюванням.

  • Стек технологій: Docker, Docker Compose, Nginx/Caddy, Ubuntu 26.04 LTS.
  • Час налаштування: 30–40 хвилин.
  • Результат: Моніторинг 24/7 з точністю до секунди та нульовою вартістю ліцензій.
  • Ключова особливість: Повний контроль над даними та необмежена кількість моніторів.
  • Безпека: Налаштування Firewall (UFW) та автоматичних SSL-сертифікатів Let's Encrypt.

1. Що ми налаштовуємо і навіщо: філософія Self-Hosted моніторингу

Схема: 1. Что мы настраиваем и зачем: философия Self-Hosted мониторинга
Схема: 1. Що ми налаштовуємо і навіщо: філософія Self-Hosted моніторингу

Для будь-якого власника онлайн-проєкту, чи то лендинг, SaaS-платформа, ігровий сервер або криптовалютна нода, простій — це прямі збитки. Традиційно ринок моніторингу ділиться на два табори: дорогі Enterprise-рішення (DataDog, New Relic) та обмежені безкоштовні тарифи хмарних сервісів (UptimeRobot, StatusCake).

Uptime Kuma — це "золота середина", яка здійснила революцію в self-hosted сегменті. Це open-source рішення з сучасним інтерфейсом, яке за функціоналом не поступається платним аналогам. Встановлюючи його на власний VPS, ви отримуєте:

  • Конфіденційність: Дані про вашу інфраструктуру не передаються третім особам.
  • Відсутність лімітів: Ви можете моніторити 10, 50 або 500 сервісів без доплати за кожен новий "монітор".
  • Гнучкість: Можливість перевіряти сервіси всередині вашої локальної мережі або VPN, які недоступні зовнішнім хмарним сканерам.
  • Багатофункціональність: Підтримка HTTP(s), Ping, TCP Port, DNS-записів, Docker-контейнерів і навіть ігрових сервісів.

У 2026 році моніторинг став ще більш критичним через ускладнення мережевих маршрутів та почастішання DDoS-атак. Наявність власного інструменту, який миттєво повідомить у Telegram про падіння бази даних або закінчення терміну дії SSL-сертифіката, — це стандарт гігієни для будь-якого системного адміністратора чи розробника.

2. Який VPS-конфіг потрібен для цього завдання

Схема: 2. Какой VPS-конфиг нужен под эту задачу
Схема: 2. Який VPS-конфіг потрібен для цього завдання

Uptime Kuma написана на Node.js і використовує SQLite як базу даних. Це робить її вкрай невибагливою до ресурсів. Однак, варто враховувати, що моніторинг має бути "найстабільнішою ланкою" у вашій інфраструктурі. Якщо сервер моніторингу впаде разом з основним проєктом, ви про це не дізнаєтеся.

Ресурс Мінімальні вимоги Рекомендовані (для 100+ моніторів)
CPU 1 ядро (Shared) 2 ядра (Dedicated)
RAM 1 ГБ 2-4 ГБ
Диск (SSD/NVMe) 10 ГБ 20 ГБ+ (для довгої історії логів)
ОС Ubuntu 24.04 / 26.04 LTS Ubuntu 26.04 LTS

Для стабільної роботи системи моніторингу ідеально підійде VPS із зазначеними характеристиками. Важливо вибирати локацію сервера, відмінну від локації ваших основних сервісів. Наприклад, якщо ваш сайт хоститься в Німеччині, сервер моніторингу краще розмістити в Нідерландах або Фінляндії. Це дозволить виключити хибнопозитивні спрацьовування при локальних збоях у конкретному дата-центрі або у магістрального провайдера регіону.

Коли варто вибрати Dedicated сервер? Якщо ви плануєте використовувати Uptime Kuma як частину величезної системи моніторингу разом з Prometheus, Grafana та ELK-стеком, що споживає значні ресурси дискового введення-виведення (IOPS). Для однієї лише Kuma віртуального сервера (VPS) більш ніж достатньо.

3. Підготовка сервера: базова безпека та системні утиліти

Схема: 3. Подготовка сервера: базовая безопасность и системные утилиты
Схема: 3. Підготовка сервера: базова безпека та системні утиліти

Перш ніж встановлювати сам застосунок, необхідно підготувати "фундамент" — операційну систему. Ми будемо використовувати Ubuntu 26.04 LTS, оскільки вона забезпечує довгострокову підтримку та свіжі пакети безпеки.

Насамперед оновимо індекси пакетів та саму систему:


sudo apt update && sudo apt upgrade -y

Встановимо базовий набір утиліт, які знадобляться нам для роботи (curl, git, htop, ufw):


sudo apt install -y curl git wget htop software-properties-common apt-transport-https ca-certificates gnupg lsb-release

Налаштування Firewall (UFW): Безпека сервера моніторингу критична. Нам потрібно відкрити лише SSH (стандартно 22), HTTP (80) та HTTPS (443).


sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
Примітка: Якщо ви використовуєте нестандартний порт для SSH, обов'язково дозвольте його перед увімкненням UFW, інакше ви втратите доступ до сервера.

Також рекомендується створити окремого користувача з правами sudo, щоб не працювати під root:


adduser monitor-admin
usermod -aG sudo monitor-admin
# Перемикаємося на нового користувача
su - monitor-admin

4. Встановлення Docker та Docker Compose (актуальні версії 2026)

Схема: 4. Установка Docker и Docker Compose (актуальные версии 2026)
Схема: 4. Встановлення Docker та Docker Compose (актуальні версії 2026)

У 2026 році використання Docker є стандартом де-факто для розгортання self-hosted застосунків. Це ізолює залежності Uptime Kuma (Node.js, бібліотеки) від основної ОС, спрощуючи оновлення та міграцію.

Додамо офіційний GPG-ключ Docker:


sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

Підключимо репозиторій:


echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Встановимо Docker Engine та Docker Compose Plugin:


sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Перевіримо коректність встановлення:


docker --version && docker compose version

Додамо нашого користувача до групи docker, щоб запускати контейнери без sudo:


sudo usermod -aG docker $USER
# Щоб зміни набули чинності, перелогіньтеся або виконайте:
newgrp docker

5. Розгортання Uptime Kuma: покрокова інструкція

Схема: 5. Развертывание Uptime Kuma: пошаговая инструкция
Схема: 5. Розгортання Uptime Kuma: покрокова інструкція

Ми будемо використовувати метод Docker Compose, оскільки він дозволяє легко описувати конфігурацію в YAML-файлі та керувати томами даних.

Створимо робочу директорію для проєкту:


mkdir -p ~/uptime-kuma && cd ~/uptime-kuma

Створимо файл docker-compose.yml:


nano docker-compose.yml

Вставте наступний вміст у файл:


services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime-kuma
    restart: always
    volumes:
      - ./data:/app/data
      - /var/run/docker.sock:/var/run/docker.sock # Опціонально: для моніторингу інших контейнерів
    ports:
      - "127.0.0.1:3001:3001" # Прив'язуємо до localhost для безпеки (будемо використовувати проксі)
    environment:
      - TZ=Europe/Moscow # Вкажіть ваш часовий пояс

Розбір конфігурації:

  • image: louislam/uptime-kuma:1 — використовуємо стабільну версію образу.
  • restart: always — контейнер буде автоматично запускатися при старті сервера або після збою.
  • ./data:/app/data — монтуємо локальну теку для зберігання бази даних SQLite. Це гарантує, що ваші налаштування не зникнуть при оновленні контейнера.
  • 127.0.0.1:3001:3001 — ми прокидаємо порт 3001 лише на локальний інтерфейс. Це важливий крок безпеки: панель керування не буде доступна ззовні напряму за IP, тільки через захищений проксі-сервер.

Запустимо сервіс:


docker compose up -d

Перевіримо статус контейнера:


docker ps

6. Налаштування доступу через домен та SSL (HTTPS)

Схема: 6. Налаштування доступу через домен та SSL (HTTPS)
Схема: 6. Налаштування доступу через домен та SSL (HTTPS)

Доступ до моніторингу за IP-адресою через незашифрований HTTP-протокол — погана практика. Паролі можуть бути перехоплені, а інтерфейс виглядає непрофесійно. Ми налаштуємо Caddy як реверс-проксі. Caddy автоматично отримує та оновлює SSL-сертифікати від Let's Encrypt.

Встановимо Caddy на сервер:


sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1G 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1G 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

Відредагуємо конфігураційний файл Caddy (Caddyfile):


sudo nano /etc/caddy/Caddyfile

Замініть вміст файлу наступним (підставте ваш домен):


status.yourdomain.com {
    reverse_proxy 127.0.0.1:3001
    
    log {
        output file /var/log/caddy/uptime_access.log
    }
}

Застосуйте налаштування:


sudo systemctl restart caddy

Тепер, за умови що ви направили A-запис вашого домену на IP сервера, ваша панель Uptime Kuma доступна за адресою https://status.yourdomain.com з валідним SSL-сертифікатом.

7. Інтеграція з Telegram: створення бота та налаштування сповіщень

Схема: 7. Інтеграція з Telegram: створення бота та налаштування сповіщень
Схема: 7. Інтеграція з Telegram: створення бота та налаштування сповіщень

Моніторинг марний, якщо ви не дізнаєтеся про проблему миттєво. Telegram — найнадійніший і найшвидший спосіб отримання сповіщень.

Крок 1: Створення бота через BotFather

  1. Знайдіть у Telegram бота @BotFather.
  2. Надішліть команду /newbot.
  3. Введіть ім'я бота (наприклад, "My Server Monitor") та унікальний username (наприклад, kuma_alert_123_bot).
  4. Скопіюйте отриманий API Token.

Крок 2: Отримання Chat ID

Щоб бот знав, куди писати, йому потрібен ID чату (вашого особистого або групи):

  1. Напишіть боту будь-яке повідомлення.
  2. Перейдіть за посиланням у браузері: https://api.telegram.org/bot<ВАШ_ТОКЕН>/getUpdates.
  3. Знайдіть у JSON-відповіді об'єкт "chat":{"id":123456789}. Це і є ваш Chat ID.

Крок 3: Налаштування в Uptime Kuma

  1. Зайдіть у панель Uptime Kuma → SettingsNotifications.
  2. Натисніть Setup Notification.
  3. Виберіть тип: Telegram.
  4. Введіть Token та Chat ID.
  5. Натисніть Test. Якщо в Telegram прийшло повідомлення "Test System", натисніть Save.

8. Розширена конфігурація моніторів: HTTP, TCP, DNS, Steam

Схема: 8. Розширена конфігурація моніторів: HTTP, TCP, DNS, Steam
Схема: 8. Розширена конфігурація моніторів: HTTP, TCP, DNS, Steam

Uptime Kuma дозволяє налаштовувати перевірки дуже гнучко. Розглянемо основні типи моніторів, які вам знадобляться.

HTTP(s) Моніторинг

Це основний тип для веб-сайтів. Ви можете перевіряти не лише доступність (код 200), а й наявність конкретного слова на сторінці. Це корисно, якщо сайт віддає 200 OK, але насправді відображає помилку бази даних.

  • URL: Адреса вашого сайту.
  • Heartbeat Interval: 60 секунд (оптимально).
  • Retries: 3 (щоб уникнути хибних сповіщень при короткочасних мережевих затримках).
  • Upside Down Mode: Сповіщати, якщо сервіс СТАВ доступним (корисно для налагодження).

Моніторинг портів (TCP)

Використовується для перевірки сервісів, що не мають веб-інтерфейсу: SSH (22), бази даних (5432, 3306), ігрові сервери. Kuma просто намагається встановити TCP-з'єднання із зазначеним портом.

Перевірка ключових слів

Якщо ваш сайт зламають і замінять контент, стандартний HTTP-монітор може не помітити підступу. Налаштуйте перевірку на присутність вашого бренду або унікального слова у футері. Якщо слово зникне — Kuma підніме тривогу.

Push-моніторинг (Heartbeat)

Це "зворотний" тип моніторингу. Uptime Kuma дає вам унікальне посилання, за яким ваш скрипт (наприклад, скрипт резервного копіювання на сервері) повинен "стукати" після успішного виконання завдання. Якщо Kuma не отримує сигнал протягом години — значить, резервне копіювання не спрацювало.

9. Резервні копії, обслуговування та оновлення системи

Сервер моніторингу сам потребує догляду. Найважливіший файл — це kuma.db у папці data.

Створення резервної копії

Найпростіший спосіб — архівування папки з даними:


tar -cvzf kuma_backup_$(date +%F).tar.gz ~/uptime-kuma/data

Оновлення Uptime Kuma

Завдяки Docker, процес оновлення займає менше хвилини:


cd ~/uptime-kuma
docker compose pull
docker compose up -d
docker image prune -f # Видалення старих образів для економії місця

Очищення історії

З часом база SQLite може зрости до гігабайтів через історію перевірок. У налаштуваннях Uptime Kuma (Settings -> Primary) встановіть Retention Day на 30-60 днів. Це збереже базу компактною без втрати важливої аналітики.

10. Troubleshooting + FAQ: вирішення типових проблем

Чому Uptime Kuma показує "Down", хоча сайт відкривається?

Найчастіше це пов'язано з блокуванням IP-адреси вашого сервера моніторингу на стороні цільового сайту (наприклад, через Cloudflare або локальний Fail2ban). Спробуйте виконати curl -I https://ваш-сайт.com прямо з консолі VPS моніторингу. Якщо отримаєте 403 або 429 — додайте IP моніторингу до білого списку (Allowlist).

Який VPS-конфіг мінімально підійде?

Для запуску 10-20 моніторів достатньо найдешевшого тарифу з 1 ГБ оперативної пам'яті та 1 ядром CPU. Основне споживання ресурсів йде на відображення графіків у браузері, а не на самі перевірки у фоновому режимі. Однак, не економте на диску — SQLite чутлива до швидкості запису.

Що вибрати — VPS чи dedicated для цього завдання?

Для Uptime Kuma VPS є кращим варіантом. Інструмент не вимагає прямої роботи з "залізом", а гнучкість віртуального сервера дозволяє легко масштабувати ресурси або переносити інстанс між локаціями. Dedicated сервер буде надмірним і невиправдано дорогим для цього завдання.

Як моніторити Docker-контейнери на цьому ж сервері?

У нашому docker-compose.yml ми прокинули /var/run/docker.sock. Тепер в інтерфейсі Kuma ви можете додати монітор типу "Docker Container" і просто вибрати ім'я контейнера зі спадного списку. Kuma буде стежити за його статусом (Running/Exited).

Забув пароль від адмінки, що робити?

Ви можете скинути пароль через консоль:


docker exec -it uptime-kuma npm run reset-password

11. Висновки та наступні кроки

Ми успішно розгорнули професійну систему моніторингу на власному VPS. Тепер ви не залежите від обмежень безкоштовних планів сторонніх сервісів і повністю контролюєте свої дані. Ваша система захищена SSL-шифруванням, працює в ізольованому контейнері та миттєво сповіщає про проблеми через Telegram.

Що робити далі?

  • Публічна сторінка статусу: Створіть у меню "Status Pages" красиву публічну сторінку зі списком ваших сервісів. Її можна прив'язати до окремого домену (наприклад, status.mycompany.com) і показувати клієнтам.
  • Моніторинг SSL: Налаштуйте сповіщення за 7-14 днів до закінчення терміну дії сертифікатів, щоб уникнути раптового відключення HTTPS.
  • Експорт у Prometheus: Якщо ваша інфраструктура зросте, ви зможете інтегрувати Kuma з Grafana для побудови ще складніших аналітичних звітів.

Пам'ятайте, що моніторинг — це не одноразове налаштування, а процес. Регулярно перевіряйте актуальність сповіщень і не забувайте оновлювати систему, щоб захистити сервер від нових вразливостей.

Поділитися цим записом:

Встановлення та налаштування Uptime Kuma на VPS: моніторинг доступності та сповіщення у Telegram
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.