Мониторинг для компьютерного клуба
Система мониторинга дает возможность отслеживать и оперативно узнавать об ошибках в работе и общей нагрузке на оборудование.
Зачем мониторинг?
Благодаря мониторингу можно увидеть полноценную картину использования и работоспособности оборудования.
Позволяет многие технические проблемы решать до их проявления и улучшать качество обслуживания пользователей.
Что монитор ить?
- CPU (нагрузка на процессор, температура)
- GPU (нагрузка на видеокарту, температура)
- RAM (нагрузка на оперативную память)
- SSD, HDD (состояние дисков, свободный объем)
- Любая другая полезная информация, которую необходимо вывести
Как мониторить?
Основная связка Prometheus + Grafana
Это самые популярные сервисы для мониторинга, быстрые и удобные
Prometheus
Собирает и хранит все метрики. Сам ходит к каждому компьютеры и собирает нужную информацию
Grafana
Берет данные с Prometheus и позволяет красиво все отобразить. Главная панель мониторинга
Exporters
Экспортер - представляет собой службу, которая собирает информацию о системе и подготавливает ее в формате понятным для Prometheus. На каждом компьютере с которого нужная информация, должен быть запущен exporter
Подготовка сервера
Сервер или виртуалка с Linux (я использовал Ubuntu но для docker разницы нет)
docker-compose
Для удобства обслуживания будет использоваться docker-compose
version: "3.7"
services:
prometheus:
image: prom/prometheus:v2.44.0
container_name: prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/etc/prometheus/console_libraries'
- '--web.console.templates=/etc/prometheus/consoles'
- '--storage.tsdb.retention.time=30d'
- '--web.enable-lifecycle'
- '--web.external-url=https://prom.akmalov.com'
environment:
- TZ="Asia/Yekaterinburg"
ports:
- 9090:9090
volumes:
- ./prometheus/config:/etc/prometheus/
- ./prometheus/data:/prometheus/
restart: unless-stopped
grafana:
image: grafana/grafana:9.5.3-ubuntu
container_name: grafana
depends_on:
- prometheus
ports:
- 3000:3000
volumes:
- ./grafana/data:/var/lib/grafana
- ./grafana/provisioning:/etc/grafana/provisioning
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=12345
- GF_USERS_ALLOW_SIGN_UP=false
- TZ="Asia/Yekaterinburg"
- BROWSER_TZ="Asia/Yekaterinburg"
restart: unless-stopped
Конфигурация prometheus
Создать файл конфига по пути:
./prometheus/config/prometheus.yml
В данном примере добавлены 5 ПК, отдельные job для Windows и GPU экспортеров
global:
scrape_interval: 15s
evaluation_interval: 15s
- job_name: 'GPU'
metrics_path: '/metrics'
scrape_interval: 5s
static_configs:
- targets:
- 192.168.18.11:9835
- 192.168.18.12:9835
- 192.168.18.13:9835
- 192.168.18.14:9835
- 192.168.18.15:9835
labels:
metrics: nvidia
- job_name: 'Windows'
metrics_path: '/metrics'
scrape_interval: 5s
static_configs:
- targets:
- 192.168.18.11:9182
- 192.168.18.12:9182
- 192.168.18.13:9182
- 192.168.18.14:9182
- 192.168.18.15:9182
labels:
metrics: OS
Создание config файла можно сильно упросить и автоматизировать с помощью Ansible
Подготовка компьютеров
В данном случаи понадобиться установить два экспортера:
windows exporter
Windows Exporter - позволяет мониторить состояние операционной системы Windows и собирать метрики для дальнейшей обработки, выводит различные параметры и характеристики Windows, такие как:
- Использование процессора и памяти;
- Загрузка дисков и средств хранения;
- Статистика сетевых интерфейсов;
- Статистика работы служб и сервисов Windows;
- Информация о запущенных процессах и открытых сокетах;
- Информация о состоянии производительности IIS и многие другие параметры.
Использование Windows Exporter позволяет проводить мониторинг и анализ состояния Windows и быстро реагировать на возможные проблемы, такие как ограниченная производительность, низкая доступность ресурсов и другие. Благодаря этому инструменту можно повысить стабильность и надежность работы системы Windows, а также улучшить качество обслуживания пользователей.
nvidia gpu exporter
Nvidia GPU exporter - позволяет получать всю информация о видеокарте
Настройка Grafana
Далее необходимо настроить Grafana (WEB интерфейс доступен по адресу сервера c docker на порту 3000)
Configuration -> Data source -> Add Prometheus
Для того чтобы убедиться что все работает корректно, можно скачать и добавить готовые dashboard в графана
Dashboard -> Import -> JSON file