Инструменты мониторинга серверов: Grafana, Prometheus и Netdata
Настройка стека Prometheus + Grafana, Netdata, node_exporter, правила оповещений, создание дашбордов и мониторинг метрик сервера.
Установка Nginx Proxy Manager через Docker, автоматическое обновление SSL-сертификатов, настройка proxy host, списки доступа, редиректы, потоки и пользовательские locations.
Nginx Proxy Manager (NPM) — это инструмент с открытым исходным кодом, позволяющий управлять Nginx reverse proxy через удобный веб-интерфейс. Управление SSL-сертификатами, настройка proxy host и контроль доступа доступны без командной строки.
Основные возможности:
# docker-compose.yml
version: '3.8'
services:
npm:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- npm_data:/data
- npm_letsencrypt:/etc/letsencrypt
environment:
- TZ=Europe/Moscow
volumes:
npm_data:
npm_letsencrypt:
docker compose up -d
docker ps | grep nginx-proxy-manager
http://IP_СЕРВЕРА:81
Учётные данные по умолчанию:
Email: admin@example.com
Пароль: changeme
При первом входе вам будет предложено сменить пароль и email.
app.example.comhttp192.168.1.103000version: '3.8'
services:
npm:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- npm_data:/data
- npm_letsencrypt:/etc/letsencrypt
networks:
- proxy_network
webapp:
image: your-webapp:latest
container_name: webapp
expose:
- "3000"
networks:
- proxy_network
networks:
proxy_network:
driver: bridge
volumes:
npm_data:
npm_letsencrypt:
Только админВо вкладке Access:
Allow: 192.168.1.0/24
Deny: all
Во вкладке Authorization:
Имя пользователя: admin
Пароль: НадёжныйПароль123!
old.example.comnew.example.com30125565192.168.1.5025565proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 100M;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
*.example.com# Резервное копирование данных NPM
docker exec nginx-proxy-manager tar -czf /tmp/npm-backup.tar.gz /data /etc/letsencrypt
docker cp nginx-proxy-manager:/tmp/npm-backup.tar.gz ./npm-backup-$(date +%Y%m%d).tar.gz
# Восстановление
docker cp ./npm-backup.tar.gz nginx-proxy-manager:/tmp/
docker exec nginx-proxy-manager tar -xzf /tmp/npm-backup.tar.gz -C /
docker restart nginx-proxy-manager
docker compose pull
docker compose up -d
docker image prune -f
ports:
- '80:80'
- '443:443'
- '127.0.0.1:81:81'
# Доступ через SSH-туннель
ssh -L 81:localhost:81 user@server-ip
С Nginx Proxy Manager на серверах REXE вы можете управлять всеми веб-приложениями из одной точки, автоматически получать и обновлять SSL-сертификаты. Веб-интерфейс позволяет настроить профессиональный reverse proxy без работы с конфигурационными файлами Nginx.
Проверьте, что порт 81 открыт в файрволе: 'ufw allow 81/tcp'. Убедитесь, что контейнер работает: 'docker ps | grep nginx-proxy-manager'. Проверьте логи Docker: 'docker logs nginx-proxy-manager'. При конфликте портов измените порт администратора в docker-compose.yml.
Проверьте, что DNS-запись домена указывает на IP сервера. Убедитесь, что порт 80 доступен извне (необходим для HTTP-01 challenge Let's Encrypt). При использовании Cloudflare временно отключите прокси (DNS Only). Для wildcard-сертификатов используйте DNS Challenge.
Проверьте, что backend-сервис работает и слушает на указанном порту. Docker-контейнеры должны быть в одной сети. Если используете имя контейнера как Forward Hostname, убедитесь, что оба контейнера подключены к одной Docker-сети.
Включите 'Websockets Support' в настройках proxy host. Добавьте во вкладке Advanced: 'proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";'.
Добавьте 'client_max_body_size 100M;' во вкладке Advanced proxy host. Убедитесь, что backend-приложение также разрешает загрузку больших файлов. Увеличьте значения таймаутов: 'proxy_read_timeout 300;'.
Настройки должны сохраняться при правильной конфигурации Docker volumes. Проверьте, что volumes определены в docker-compose.yml. Всегда делайте резервную копию перед обновлением.
Настройка стека Prometheus + Grafana, Netdata, node_exporter, правила оповещений, создание дашбордов и мониторинг метрик сервера.
Squid forward proxy, HAProxy балансировщик нагрузки, SSL-терминация, правила ACL, кэширование, проверки состояния и высокая доступность.
Установка CrowdSec, настройка bouncer, обнаружение атак, блокировка IP, дашборд, управление коллекциями и сценариями.