Архитектура мониторинга Windows-инфраструктуры компании Hostkey

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Авторы: Никита Зубарев - DevOps Team Leader компании Hostkey, Айрат Сягитов - специалист отдела DevOps компании Hostkey 

Ранее мы рассказали о том, как выполняется мониторинг Linux-систем. Теперь рассмотрим, как настроить Windows Server.

В одной из прошлых статей мы говорили об интеграции FreeIPA с Active Directory. В процессе разработки решения, описанного в этой статье, у нас возникла потребность снимать метрики с серверов Windows-инфраструктуры. В данной статье мы рассмотрим, как можно наладить мониторинг для серверов с ОС Windows, используя существующую систему, построенную на связке Prometheus + Grafana + Alertmanager. Собирать будем общие системные метрики: cpu, ram, hdd. 

Экспортер WMI также можно использовать для мониторинга сайтов и приложений IIS, сетевых интерфейсов, служб и даже локальной температуры.

Установка Windows Exporter для мониторинга служб Windows

Для установки Windows Exporter необходимо выполнить несколько действий:

1. Скачать последнюю версию Windows Exporter с GitHub, выбрав архив .zip или .tar.gz.

2. Создать папку с именем "Prometheus" на диске C или в другом месте. 

3. Распаковать скачанный архив Windows Exporter. В нем находится файл windows_exporter.exe.

4. Скопировать windows_exporter.exe в папку “Prometheus”.

Затем необходимо создать конфигурационный файл YAML для Windows Exporter. Он позволит указать службы, которые необходимо поставить на мониторинг.

В нашем примере это сервис LicenseManager.

Windows Exporter можно запустить двумя способами: вручную и в качестве службы Windows.

1. Для запуска вручную необходимо:

  • Открыть командную строку от имени администратора.

  • Перейти в папку с windows_exporter.exe, например: cd C:\Prometheus.

  • Запустить Windows Exporter с указанием конфигурационного файла с помощью команды: .\windows_exporter.exe --config.windowsconfig="kms.yml".

  • Теперь Windows Exporter будет работать в режиме мониторинга в текущей сессии.

2. Для настройки как службы Windows необходимо:

  • Открыть командную строку от имени администратора.

  • Создать службу Windows Exporter командой:

 sc create WindowsExporter binPath= "C:\Prometheus\windows_exporter.exe --config.windowsconfig=C:\Prometheus\kms.yml" start= auto.
  • Запустить службу командой sc start WindowsExporter:

A:\Windows\system32>sc create WindowsExporter binpath= "C:\Prometheus\windows_exporter.exe --config.windowsconfig=C:\Prometheus\windows_exporter.yml"=auto
[SC] CreateService: success

A:\Windows\system32>sc start WindowsExporter

Подробную информацию о средстве экспорта WMI можно посмотреть на GitHub.

После установки необходимого экспортера следует перейти в панель «Службы Windows» (достаточно просто ввести «Службы» в меню поиска Windows) и найти в списке запись WMI exporter. Далее необходимо проверить, что сервис работает правильно.

Если экспортер запущен, он должен начать предоставлять метрики на http://localhost:9182/metrics, по аналогии с Node Exporter. Остается подключить сбор метрик в Prometheus, добавить дашборд и настроить алертинг:

Добавить в prometheus.yml:

  - job_name: 'Windows_Infra'
    static_configs:
      - targets: ['”localhost”:9182'] 

Добавить Grafana dashboard, который отслеживает отображение информационной панели, подключает и оптимизирует вывод подробной сводки ресурсов. В результате получаем визуальную панель по каждому хосту:

Осталось описать rule_files, добавив необходимые метрики:

groups:
- name: Windows_Infra
  rules:
  - alert: InstanceDown
    expr: up{job="Windows_Infra"} == 0
    for: 5m
    labels:
      severity: page
    annotations:
      summary: "Instance {{ .instance }} down"
      description: "{{ .instance }} of job {{ .job }} has been down for more than 5 minutes."

  - alert: DiskSpaceUsage
    expr: 100.0 - 100 * (windows_logical_disk_free_bytes{job="Windows_Infra"} / windows_logical_disk_size_bytes{job="Windows_Infra"}) > 90
    for: 10m
    labels:
      severity: high
    annotations:
      summary: "Disk Space Usage (instance {{ $labels.instance }})"
      description: "Disk Space on Drive is used more than 90%\n  VALUE = {{ $value }}\n  LABELS: {{ $labels }}"

Аналогичным образом добавляем другие необходимые параметры. При настроенном Alertmanager сообщения нотификаций автоматически будут приходить в подключенные системы.

Как видите, мониторинг серверов Windows можно легко выполнить с помощью Prometheus и Grafana. Это решение значительно упрощает процесс управления большим парком машин и позволяет оперативно решать проблемы, возникающие при администрировании серверного оборудования в нашей компании.В следующих статьях рассмотрим задачу подключения служб Windows.


Арендуйте выделенные и виртуальные серверы с моментальным деплоем в надежных дата-центрах класса TIER III в Москве и Нидерландах. Принимаем оплату за услуги HOSTKEY в Нидерландах в рублях на счет российской компании. Оплата с помощью банковских карт, в том числе и картой МИР, банковского перевода и электронных денег.

Источник: https://habr.com/ru/companies/hostkey/articles/767104/


Интересные статьи

Интересные статьи

Почему важно следить за сертификатами: сертификаты – это канал доверия между вашими системами и пользователями. Если канал обрушится, доверие пропадает. И это может привести к невиданным техническим и...
Postgres - один из крупнейших open source проектов. Он создавался многие года. Кодовая база накопилась огромная. Мне, как программисту, всегда было интересно как он работает под капотом. Но не про SQL...
Разработка сервера для real-time онлайн игры - дело неочевидное, но очень интересное. В данной статье я постараюсь провести вас от банальной теории и базовых вещей до динамического автомасштабиро...
"С вас — крутая инновационная идея, с нас — финансирование, поиск инвесторов, обучение проектному менеджменту и помощь в выпуске конечного продукта”, —представьте, что это говорит вам директор компани...
Любой CTO прекрасно знает, насколько сложно найти или вырастить хорошего тимлида. Ведь этот человек должен сочетать высокие технологические знания, понимание продукта и п...