DEMO LIVE https://demo.kuma.pet/start-demo
#Стандартный шаблок настройки VM
#Смена IP при необходимости
nano /etc/netplan/01-network-manager-all.yaml
#Обновление системы
sudo apt update && sudo apt upgrade -y
#Установка пакетов
sudo apt install ufw open-vm-tools net-tools curl mc nano wget
#Установка базового фаерволла
sudo ufw deny all
sudo ufw allow http #при необходимости
sudo ufw allow https #при необходимости
sudo ufw allow ssh
sudo ufw allow from 192.168.0.206 #ansible host
sudo ufw allow 3001 UptimeKuma
sudo ufw enable
sudo ufw allow 8043
adduser ansible
usermod -aG sudo ansible
su ansible
echo "$(whoami) ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/$(whoami)
Установка UptimeKuma
#2 – Установка NodeJS 20 LTS
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt update && sudo apt upgrade -y
sudo apt-get install -y nodejs
Проверяем версию NodeJs
node -v
3 – Клонируем Kuma Project через Git
#Установливаем Git
sudo apt install git -y
git clone https://github.com/louislam/uptime-kuma.git
cd uptime-kuma
npm run setup
и видим что пакет установился без проблем
Ставим рекомендованный пакет
npm install -g npm@10.8.1
Запуск сервиса через pm2
npm install pm2 -g && pm2 install pm2-logrotate
# Запуск сервиса
pm2 start server/server.js --name uptime-kuma
Заходим на сервис по адресу http://192.168.0.229:3001 для продолжения установки (настройки сервиса и использования)
# Вводим данные по логину и паролю (создаем своего пользователя и его пароли) и нажимаем создать
Сервис развернут и готов к работе
На этом все! Далее в системе ставятся сервисы на мониторинг, переводится сервис на работу https и т.п.
Установливаем NGinx
sudo apt update && sudo apt upgrade -y
sudo apt install nginx
Проверим факта запуска Nginx:
systemctl status nginx
После чего заходим на сайт и смотрим что все в порядке
netstat -ltupn | grep nginx
Проверки NGINX
Проверяем конфигурацию Nginx:
nginx -t
Если ошибок нет, то перезагружаем конфигурацию Nginx:
nginx -s reload
В Ubuntu используется система инициализации systemd и поэтому лимиты на максимальное количество открытых файлов нужно настроить для systemd, для этого выплняем:
mkdir -p /lib/systemd/system/nginx.service.d
echo "[Service]" >/lib/systemd/system/nginx.service.d/limit.conf
echo "LimitNOFILE=10000" >>/lib/systemd/system/nginx.service.d/limit.conf
systemctl daemon-reload
systemctl restart nginx
Теперь проверим лимиты, для этого смотрим строку «Max open files» в выводе:
# cat /proc/$(cat /var/run/nginx.pid)/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 3542 3542 processes
Max open files 10000 10000 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 3542 3542 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
Все отлично!
Установливаем на Nginx сертификат Let’s Encrypt on Ubuntu 22.04
sudo apt update && sudo apt upgrade -y
sudo apt install certbot python3-certbot-nginx y
sudo nano /etc/nginx/sites-available/uptime.kalyuzhnyy.ru.conf
Without SSL:
server {
listen 80;
# Remove '#' in the next line to enable IPv6
# listen [::]:80;
server_name uptime.kalyuzhnyy.ru;
location / {
proxy_pass http://localhost:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}
или с SSL
server {
listen 443 ssl http2;
# Remove '#' in the next line to enable IPv6
# listen [::]:443 ssl http2;
server_name uptime.kalyuzhnyy.ru;
ssl_certificate /path/to/ssl/cert/crt;
ssl_certificate_key /path/to/ssl/key/key;
# *See "With SSL (Certbot)" below for details on automating ssl certificates
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://localhost:3001/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
sudo ln -s /etc/nginx/sites-available/uptime.kalyuzhnyy.ru /etc/nginx/sites-enabled/uptime.kalyuzhnyy.ru
nginx -t
Если ошибок нет, то перезагружаем конфигурацию Nginx:
nginx -s reload
Запускаем процесс получения сертификата
sudo certbot --nginx -d uptime.kalyuzhnyy.ru -d uptime.kalyuzhnyy.ru