Недавно мне нужно было организовать простой мониторинг нескольких сайтов на разных поддоменах. Потом аппетиты выросли и появилось желание добавить до кучи еще парочку сетевых демонов. Zabbix для таких случаев, думаю, тяжеловат, а вот легковесный контейнер, практически не требующий настройки, — то, что надо!
РЕКОМЕНДУЕМ:
Автоматизация системы мониторинга с помощью Zabbix LLD
Тогда я поискал и нашел альтернативу, причем намного более приятную глазу. Знакомься: Uptime Kuma — простой self-hosted-инструмент для создания страниц, позволяющих отслеживать работоспособность сервисов и мониторинга, когда не нужно детально анализировать системные параметры на наблюдаемых машинах.
Установить можно несколькими способами. Первый и самый простой — с помощью интерактивного установщика:
1 |
curl -o kuma_install.sh http://git.kuma.pet/install.sh && sudo bash kuma_install.sh |
Второй, который использовал я, требует Docker:
1 2 |
docker volume create uptime-kuma docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1 |
Для тех, у кого есть уже установленный Node.js и желание сделать все вручную, есть и третий способ:
1 2 3 4 5 6 7 8 9 |
npm install npm -g git clone https://github.com/louislam/uptime-kuma.git cd uptime-kuma npm run setup # Простой запуск, для проверки node server/server.js # Запуск «на постоянку» # Если нет PM2, установи его с помощью `npm install pm2 -g` pm2 start server/server.js --name uptime-kuma |
Во всех этих случаях есть одна маленькая проблема: если ты используешь реверс‑прокси вроде nginx, как я, — работать Uptime Kuma не будет, потому что требует полноценных веб‑сокетов. Пофиксить это для nginx можно так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
server { listen 443 ssl http2; server_name YOUR_DOMAIN_HERE; ssl_certificate /etc/nginx/certs/upmonitor.crt; ssl_certificate_key /etc/nginx/certs/upmonitor.key; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:3001/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } |
Ну и для тех, чей сервер — это старый Android-смартфон, — способ номер четыре. Нужно скачать актуальный Termux, причем не из Play Маркета, где он уже давно не обновляется, а из F-Droid. Затем запустить и выполнить следующие команды:
1 2 3 4 5 6 7 |
pkg upgrade pkg install clang make python nodejs-lts binutils git npm install npm@6 -g git clone https://github.com/louislam/uptime-kuma.git cd uptime-kuma npm run setup node server/server.js |
Только не забывай, что Android очень любит выгружать запущенные в фоне приложения.