Files
santaspeen.ru-blog/blog/monitoring-pc-club/index.md
T
Artur Akmalov 264392c24a add keywords
2023-11-10 20:38:34 +05:00

9.1 KiB

slug, title, description, image, tags, keywords, date
slug title description image tags keywords date
monitoring-pc-club Мониторинг для компьютерного клуба Система мониторинга в компьютерном клубе ./monitoring-pc-club.png
docker
monitoring
monitoring
docker
linux
prometheus
grafana
monitoring
2023-05-28

Система мониторинга дает возможность отслеживать и оперативно узнавать об ошибках в работе и общей нагрузке на оборудование.

Releases update info

Зачем мониторинг?

Благодаря мониторингу можно увидеть полноценную картину использования и работоспособности оборудования.

Позволяет многие технические проблемы решать до их проявления и улучшать качество обслуживания пользователей.

Что мониторить?

  • CPU (нагрузка на процессор, температура)
  • GPU (нагрузка на видеокарту, температура)
  • RAM (нагрузка на оперативную память)
  • SSD, HDD (состояние дисков, свободный объем)
  • Любая другая полезная информация, которую необходимо вывести

Как мониторить?

Основная связка Prometheus + Grafana

Это самые популярные сервисы для мониторинга, быстрые и удобные

Prometheus

Собирает и хранит все метрики. Сам ходит к каждому компьютеры и собирает нужную информацию

Grafana

Берет данные с Prometheus и позволяет красиво все отобразить. Главная панель мониторинга

Exporters

Экспортер - представляет собой службу, которая собирает информацию о системе и подготавливает ее в формате понятным для Prometheus. На каждом компьютере с которого нужная информация, должен быть запущен exporter

monitoring

Подготовка сервера

Сервер или виртуалка с 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

grafana data source

Для того чтобы убедиться что все работает корректно, можно скачать и добавить готовые dashboard в графана

Dashboard -> Import -> JSON file

Windows exporter dashboard

Windows exporter dashboard

Nvidia GPU exporter dashboard

Nvidia GPU exporter dashboard

Создание собственной панели мониторинга

Теперь осталась создать свой dashboard и собрать в удобном виде все необходимые метрики

Для себя выбрал следующий тип отображения (в одну линию все необходимые данные)

grafana pc dashboard

Итоги

Prometheus и Grafana дают возможность настроить удобный монитиринг для компьютерного клуба. Легко установить, использовать, обслуживать.

Для большого числа компьютеров удобнее использовать Ansible для автоматической установки экспортеров и подготовки конфигурационного файла с помощью шаблонизатора.

Так же экспортеры можно встроить в установку с операционной системой, в таком случаи все новые компьютеры автоматически будут попопадть в систему мониторинга.