Language: bg
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 е безплатен инструмент с отворен код за самостоятелно хостване. Таблото и историята на проверките се съхраняват на вашия собствен сървър.
Той може да наблюдава HTTP(S), TCP портове, ping, DNS, WebSocket, текст и JSON в отговорите, push сигнали и Docker контейнери. Минималният интервал за проверка е 20 секунди. Налични са и десетки канали за известия, двуфакторна автентикация, графики на латентността, проверки на TLS сертификати и няколко страници за статус.
Как да открием грешка, скрита зад 200 OK
Обикновената HTTP проверка вижда само кода на отговора. Уеб сървърът обаче може да покаже празна страница или екран с грешка на приложението и пак да върне успешен статус.
За по-точен мониторинг използвайте:
- Keyword — търси очаквана фраза, например името на сайта или текста „Табло на акаунта“;
- 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 и защитната стена
Създайте 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. HTTPS reverse proxy ще публикува таблото отвън.
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 и задайте канала на мониторите. За критични услуги добавете втори канал, например имейл.
Как да създадем страница за статус
В Status Pages можете да групирате мониторите, да показвате текущия статус и историята на достъпността, да зададете домейн и да обявявате планирана работа чрез Maintenance. Не публикувайте вътрешни IP адреси или технически URL адреси: на клиентите им трябват само компоненти като „Сайт“, „API“, „Табло на акаунта“ и „Плащания“.
Актуализиране и архивиране на 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 ви позволяват бързо да стартирате таблото, а ресурсите могат да се увеличават с нарастването на броя проверки.
Ако продукционната среда вече работи в същата инфраструктура, изберете друг възел или добавете външен мониторинг. Разделянето на зоните на отказ е по-полезно от добавянето на още едно 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 задача.
За надеждна конфигурация хоствайте мониторинга отделно от продукцията, затворете порт 3001, активирайте HTTPS и 2FA и настройте два канала за известия. След това организирайте външно резервно копие на директорията с данни и независима проверка на самия Uptime Kuma.
FAQ
Безплатен ли е 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 и диска?
Не като пълноценна система за сървърни метрики. За мониторинг на ресурсите допълнете Uptime Kuma с Prometheus, Netdata, Zabbix или друг специализиран инструмент.
