Автор: Senior Devops. Ведущий специалист по инфраструктуре Hostkey Никита Зубарев
Ранее мы рассказали о том, как выполняется мониторинг Linux-систем. Теперь рассмотрим, как настроить Windows Server.
В одной из прошлых статей мы говорили об интеграции FreeIPA с Active Directory. В процессе разработки решения, описанного в этой статье, у нас возникла потребность снимать метрики с серверов Windows-инфраструктуры. В данной статье мы рассмотрим, как можно наладить мониторинг для серверов с ОС Windows, используя существующую систему, построенную на связке Prometheus + Grafana + Alertmanager. Собирать будем общие системные метрики: cpu, ram, hdd.
Экспортер WMI также можно использовать для мониторинга сайтов и приложений IIS, сетевых интерфейсов, служб и даже локальной температуры.
Установка Windows Exporter для мониторинга служб Windows
Для установки Windows Exporter необходимо выполнить несколько действий:
- Скачать последнюю версию Windows Exporter с GitHub, выбрав архив .zip или .tar.gz.
- Создать папку с именем "Prometheus" на диске C или в другом месте.
- Распаковать скачанный архив Windows Exporter. В нем находится файл windows_exporter.exe.
- Скопировать windows_exporter.exe в папку “Prometheus”.
Затем необходимо создать конфигурационный файл YAML для Windows Exporter. Он позволит указать службы, которые необходимо поставить на мониторинг.
В нашем примере это сервис LicenseManager.
Windows Exporter можно запустить двумя способами: вручную и в качестве службы Windows.
-
Для запуска вручную необходимо:
- Открыть командную строку от имени администратора.
- Перейти в папку с windows_exporter.exe, например:
cd C:\Prometheus
. - Запустить Windows Exporter с указанием конфигурационного файла с помощью команды:
.\windows_exporter.exe --config.windowsconfig="kms.yml"
. - Теперь Windows Exporter будет работать в режиме мониторинга в текущей сессии.
-
Для настройки как службы 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.