Мониторинг сервера

Дата настройки: 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 контейнеров
  • Доступность веб-сайтов

Настроенные алерты

Критические алерты

  1. Высокое использование CPU (>80% в течение 5 минут)
  2. Критическое использование CPU (>95% в течение 2 минут)
  3. Недостаток памяти (<10% доступно)
  4. Критический недостаток дискового пространства (<5% на /)
  5. Недостаток дискового пространства на /D (<15%)
  6. Недоступность Node Exporter
  7. Недоступность 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:

  1. Импорт готовых дашбордов:
  2. Node Exporter Full: ID 1860
  3. Node Exporter for Prometheus: ID 11074
  4. Linux Hosts Metrics: ID 10180

  5. Создание кастомных дашбордов:

  6. Используйте PromQL запросы для создания графиков
  7. Настройте алерты через UI Grafana

Настройка уведомлений (будущее)

Email уведомления

Настройте отправку уведомлений при критических событиях:
- Недостаток дискового пространства
- Недоступность сервисов
- Высокая нагрузка на систему

Рекомендация: Использовать Alertmanager для централизованного управления алертами.

Заметки

  • Порты: Prometheus использует 9091 (вместо 9090, так как 9090 занят Cockpit)
  • Хранение данных: Prometheus хранит метрики 30 дней
  • Автозапуск: Контейнеры настроены на автозапуск (--restart unless-stopped)
  • Безопасность: Порты открыты в UFW для локального доступа