Мониторинг сервера
Дата настройки: 2026-01-15
Развернутая система мониторинга
Prometheus + Grafana + Node Exporter
Статус: ✅ Развернуто и работает
Компоненты:
- Prometheus - сбор и хранение метрик (порт 9091)
- Grafana - визуализация метрик (порт 3000)
- Node Exporter - системные метрики хоста (порт 9100)
Доступ:
- Prometheus: http://localhost:9091 (или http://192.168.1.112:9091)
- Grafana: http://localhost:3000 (или http://192.168.1.112:3000)
- Логин: admin
- Пароль: см. /home/cdto/DENKART/monitoring/.env
- Node Exporter: http://localhost:9100/metrics
Управление:
# Запуск всех сервисов мониторинга
sudo /home/cdto/DENKART/scripts/start-monitoring.sh
# Проверка статуса
sudo docker ps --filter "name=prometheus|grafana|node-exporter"
# Остановка
sudo docker stop prometheus grafana node-exporter
# Просмотр логов
sudo docker logs prometheus
sudo docker logs grafana
sudo docker logs node-exporter
Метрики для мониторинга
Системные метрики (Node Exporter)
- Использование CPU (по ядрам и общее)
- Использование RAM (доступная, используемая, кэш)
- Использование диска (по разделам: /, /D)
- Сетевая активность (входящий/исходящий трафик)
- Нагрузка системы (load average 1, 5, 15 минут)
- Количество процессов
- Файловые дескрипторы
Сервисы
- Статус Nginx (через blackbox exporter - опционально)
- Статус PostgreSQL (через postgres_exporter - опционально)
- Статус LXD контейнеров
- Доступность веб-сайтов
Настроенные алерты
Критические алерты
- Высокое использование CPU (>80% в течение 5 минут)
- Критическое использование CPU (>95% в течение 2 минут)
- Недостаток памяти (<10% доступно)
- Критический недостаток дискового пространства (<5% на /)
- Недостаток дискового пространства на /D (<15%)
- Недоступность Node Exporter
- Недоступность Prometheus
Предупреждения
- Высокая нагрузка системы (load average > 1.5)
- Недостаток дискового пространства (<10% на /)
Конфигурация алертов: /home/cdto/DENKART/monitoring/prometheus/alerts.yml
Структура мониторинга
/home/cdto/DENKART/monitoring/
├── docker-compose.yml # Конфигурация Docker Compose
├── .env # Переменные окружения (пароль Grafana)
├── prometheus/
│ ├── prometheus.yml # Конфигурация Prometheus
│ └── alerts.yml # Правила алертов
└── grafana/
└── provisioning/
├── datasources/
│ └── prometheus.yml # Автоматическая настройка Prometheus в Grafana
└── dashboards/
└── default.yml # Настройка дашбордов
Встроенные инструменты
htop - интерактивный мониторинг процессов
sudo apt install htop -y
htop
iotop - мониторинг I/O
sudo apt install iotop -y
sudo iotop
netstat/ss - мониторинг сети
ss -tulpn
netstat -tulpn
Логирование
# Просмотр системных логов
sudo journalctl -f
sudo journalctl -u nginx
sudo journalctl --since "1 hour ago"
# Логи мониторинга
sudo docker logs prometheus -f
sudo docker logs grafana -f
sudo docker logs node-exporter -f
Настройка дашбордов в Grafana
После первого входа в Grafana:
- Импорт готовых дашбордов:
- Node Exporter Full: ID 1860
- Node Exporter for Prometheus: ID 11074
-
Linux Hosts Metrics: ID 10180
-
Создание кастомных дашбордов:
- Используйте PromQL запросы для создания графиков
- Настройте алерты через UI Grafana
Настройка уведомлений (будущее)
Email уведомления
Настройте отправку уведомлений при критических событиях:
- Недостаток дискового пространства
- Недоступность сервисов
- Высокая нагрузка на систему
Рекомендация: Использовать Alertmanager для централизованного управления алертами.
Заметки
- Порты: Prometheus использует 9091 (вместо 9090, так как 9090 занят Cockpit)
- Хранение данных: Prometheus хранит метрики 30 дней
- Автозапуск: Контейнеры настроены на автозапуск (
--restart unless-stopped) - Безопасность: Порты открыты в UFW для локального доступа