Мониторинг Active Directory с помощью Proto Observability
На этой странице:
Сбор метрик Active Directory
Интеграция active_directory собирает метрики контроллера домена Microsoft
Active Directory из счётчиков производительности Windows (Performance Data
Helper, PDH) — тех же, что показывает perfmon. Агент не подключается к
каталогу по LDAP и не читает объекты каталога: он опрашивает счётчики служб
каталога на самом сервере.
Проверка работает только на Windows и настраивается на каждом контроллере домена, который нужно контролировать. Набор опрашиваемых объектов производительности определяется автоматически по установленным на сервере службам:
| Объект производительности | Когда собирается | Что содержит |
|---|---|---|
NTDS | Всегда | LDAP-операции, потоки службы каталогов, репликация (DRA) |
Netlogon | Если на сервере есть служба Netlogon | Очередь аутентификации (семафор Netlogon) |
Security System-Wide Statistics | Если на сервере есть служба Netlogon | Число аутентификаций Kerberos и NTLM |
DHCP Server | Если установлена роль DHCP Server (служба DHCPServer) | Обмен с партнёром по отказоустойчивости DHCP |
DFS Replicated Folders | Если установлена служба DFSR | Конфликты, промежуточная область и повторы репликации DFS |
Интеграция входит в состав ProtoOBP агента для Windows, отдельная установка не требуется.
Дашборды
Готовых дашбордов для Active Directory в ProtoOBP нет. Метрики доступны в Metrics Explorer и в PromQL-запросах — из них можно построить пользовательский дашборд и правила алертинга (см. ключевые метрики).Требования
- Windows Server с ролью Active Directory Domain Services (контроллер домена).
- ProtoOBP агент для Windows, установленный на контроллер домена (см. Установка агента на Windows).
- Служебная учётная запись агента должна иметь право читать счётчики
производительности — входить во встроенную группу
Performance Monitor Users.
На контроллере домена нет локальных учётных записей и локальных групп:
встроенные группы (контейнер Builtin) общие для всех контроллеров домена,
а служба агента работает под доменной учётной записью или под GMSA
(<ВАШ_ДОМЕН>\ProtoobpGMSA$, см. раздел GMSA).
Добавить учётную запись в группу можно в Active Directory Users and Computers
(Builtin → Performance Monitor Users) или через PowerShell от имени
администратора домена:
Add-ADGroupMember -Identity "Performance Monitor Users" -Members "ProtoobpGMSA$"
После изменения членства в группах перезапустите службу агента; для GMSA
дополнительно очистите Kerberos-тикеты (klist purge), чтобы новое членство
вступило в силу.
Конфигурация ProtoOBP агента
Создайте файл конфигурации проверки:
Платформа Путь и имя файла Windows %ProgramData%\Protoobp\conf.d\active_directory.d\conf.yamlМинимальная конфигурация собирает все метрики с локального контроллера домена:
init_config: instances: - min_collection_interval: 15 # tags: # - ad_site:moscow # - env:prodПерезапустите службу агента (PowerShell от имени администратора):
Restart-Service protoobp-agent
Основные параметры элемента instances:
| Параметр | Тип | Назначение |
|---|---|---|
min_collection_interval | number | Интервал сбора в секундах. По умолчанию 15. |
tags | list | Статические теги, добавляемые ко всем метрикам экземпляра. |
server | string | Имя удалённого сервера для опроса счётчиков. По умолчанию — локальная машина. |
username / password | string | Учётные данные для подключения к удалённому server. |
server_tag | string | Имя лейбла, в который записывается опрашиваемый сервер. По умолчанию server. |
enable_health_service_check | boolean | Отправлять проверку доступности счётчиков active_directory.windows.perf.health. По умолчанию true. |
extra_metrics | mapping | Дополнительные объекты и счётчики производительности (см. ниже). |
Параметр use_localized_counters: true в секции init_config включает
обращение к счётчикам по локализованным именам. По умолчанию используются
английские имена счётчиков.
Дополнительные счётчики (extra_metrics)
Объект NTDS содержит больше счётчиков, чем собирается по умолчанию. Список
доступных счётчиков можно получить командой:
(Get-Counter -ListSet NTDS).Counter
Пример: доля операций записи, пришедших по LDAP, и число новых LDAP-подключений в секунду:
init_config:
instances:
- extra_metrics:
NTDS:
name: ds
counters:
- 'DS % Writes from LDAP': writes_from_ldap
- 'LDAP New Connections/sec': new_connections_persec
Имя метрики складывается из префикса active_directory, значения name
объекта и имени из списка counters: в примере это
active_directory_ds_writes_from_ldap и
active_directory_ds_new_connections_persec. Тип по умолчанию — gauge;
другой тип задаётся формой '<счётчик>': {name: <имя>, type: rate}.
Удалённый сбор
Счётчики можно читать с другого контроллера домена, не устанавливая на него
агент. Учётная запись из username должна иметь право читать счётчики
производительности на удалённом сервере, а на самом удалённом сервере должна
работать служба Remote Registry.
init_config:
instances:
- server: dc02.example.local
username: EXAMPLE\monitoring_user
password: <PASSWORD>
tags:
- ad_site:moscow
Предпочтительный вариант — агент на каждом контроллере домена: так метрики
получают правильный лейбл host и не зависят от доступности соседнего сервера.
Проверка
Запустите проверку однократно и убедитесь, что метрики собираются:
& "C:\Program Files\Protoobp\Protoobp Agent\bin\agent.exe" check active_directory
В выводе status проверка active_directory должна иметь статус [OK] и
ненулевое число Metric Samples:
& "C:\Program Files\Protoobp\Protoobp Agent\bin\agent.exe" status
Если проверка сообщает об ошибке доступа к счётчикам, проверьте членство
служебной учётной записи агента в группе Performance Monitor Users (см.
Требования). Наличие счётчиков на сервере можно проверить
командой Get-Counter -ListSet NTDS.
Собираемые метрики
Все метрики отправляются как gauge — мгновенное значение счётчика на момент
сбора; значения метрик с суффиксом persec Windows уже пересчитывает «в
секунду». Исключение — active_directory_netlogon_semaphore_acquires и
active_directory_netlogon_semaphore_timeouts: это кумулятивные счётчики,
агент отправляет их как count (прирост между сборами).
В ProtoOBP backend имена метрик хранятся в Prometheus-стиле — точки заменены
на подчёркивания (active_directory_ldap_bind_time,
active_directory_dra_inbound_bytes_total и т.д.). Именно в таком виде они
приведены ниже.
Лейблы
| Лейбл | Значение |
|---|---|
host | Хост, на котором работает агент |
server | Опрашиваемый сервер (имя лейбла меняется параметром server_tag) |
instance | Экземпляр объекта производительности — только у метрик многоэкземплярных объектов Netlogon и DFS Replicated Folders. Экземпляр _Total по умолчанию не собирается |
service, env | Теги service и env, если они заданы в конфигурации агента или в tags |
LDAP и служба каталогов (NTDS)
| Имя метрики | Единица | Описание |
|---|---|---|
active_directory_ldap_bind_time | миллисекунды | Время последнего успешного LDAP bind |
active_directory_ldap_client_sessions | сессии | Число подключённых LDAP-клиентов |
active_directory_ldap_successful_binds_persec | операций/с | Успешные LDAP bind |
active_directory_ds_client_binds_persec | операций/с | Все LDAP bind клиентов, включая неуспешные |
active_directory_ldap_searches_persec | операций/с | LDAP-поиски |
active_directory_ldap_writes_persec | операций/с | LDAP-операции записи |
active_directory_ldap_active_threads | потоки | Потоки подсистемы LDAP, занятые обработкой запросов |
active_directory_ds_threads_in_use | потоки | Потоки службы каталогов, обслуживающие вызовы клиентов |
Репликация (NTDS, DRA)
Счётчики агента репликации каталога (Directory Replication Agent, DRA). Сжатые данные — репликация между сайтами, несжатые — внутри сайта.
| Имя метрики | Единица | Описание |
|---|---|---|
active_directory_dra_replication_pending_synchronizations | синхронизации | Синхронизации в очереди сервера, ещё не обработанные (отставание репликации) |
active_directory_dra_sync_requests_made | запросы | Запросы синхронизации к партнёрам с момента перезагрузки |
active_directory_dra_inbound_objects_remaining | объекты | Объекты, оставшиеся до завершения полной синхронизации |
active_directory_dra_inbound_objects_remaining_in_packet | объекты | Изменения объектов из текущего пакета, ещё не применённые |
active_directory_dra_inbound_bytes_total | байт/с | Все входящие байты репликации |
active_directory_dra_inbound_bytes_not_compressed | байт/с | Входящие байты внутри сайта (без сжатия) |
active_directory_dra_inbound_bytes_before_compression | байт/с | Входящие байты между сайтами до сжатия |
active_directory_dra_inbound_bytes_after_compression | байт/с | Входящие байты между сайтами после сжатия |
active_directory_dra_inbound_objects_persec | объектов/с | Объекты, полученные от партнёров |
active_directory_dra_inbound_objects_applied_persec | объектов/с | Полученные и применённые объекты |
active_directory_dra_inbound_objects_filtered_persec | объектов/с | Полученные объекты, не содержащие изменений для применения |
active_directory_dra_inbound_properties_total_persec | изменений/с | Все полученные изменения свойств объектов |
active_directory_dra_inbound_properties_applied_persec | изменений/с | Применённые изменения свойств |
active_directory_dra_inbound_properties_filtered_persec | изменений/с | Полученные изменения свойств, уже внесённые ранее |
active_directory_dra_inbound_values_total_persec | значений/с | Все полученные значения свойств |
active_directory_dra_inbound_values_dns_persec | значений/с | Полученные значения свойств-ссылок (DN) |
active_directory_dra_outbound_bytes_total | байт/с | Все исходящие байты репликации |
active_directory_dra_outbound_bytes_not_compressed | байт/с | Исходящие байты внутри сайта (без сжатия) |
active_directory_dra_outbound_bytes_before_compression | байт/с | Исходящие байты между сайтами до сжатия |
active_directory_dra_outbound_bytes_after_compression | байт/с | Исходящие байты между сайтами после сжатия |
active_directory_dra_outbound_objects_persec | объектов/с | Объекты, отправленные партнёрам |
active_directory_dra_outbound_objects_filtered_persec | объектов/с | Объекты, подтверждённые партнёрами как не требующие изменений |
active_directory_dra_outbound_properties_persec | свойств/с | Отправленные свойства |
active_directory_dra_outbound_values_total_persec | значений/с | Все отправленные значения свойств |
active_directory_dra_outbound_values_dns_persec | значений/с | Отправленные значения свойств-ссылок (DN) |
Аутентификация (Netlogon, Security)
| Имя метрики | Тип | Единица | Описание |
|---|---|---|---|
active_directory_netlogon_semaphore_waiters | gauge | потоки | Потоки, ожидающие семафор Netlogon; рост означает очередь на аутентификацию |
active_directory_netlogon_semaphore_holders | gauge | потоки | Потоки, удерживающие семафор Netlogon |
active_directory_netlogon_semaphore_hold_time | gauge | секунды | Среднее время удержания семафора — длительность обработки запроса аутентификации |
active_directory_netlogon_semaphore_acquires | count | события | Число захватов семафора |
active_directory_netlogon_semaphore_timeouts | count | события | Число таймаутов ожидания семафора |
active_directory_security_kerberos_authentications | gauge | операций/с | Аутентификации Kerberos |
active_directory_security_ntlm_authentications | gauge | операций/с | Аутентификации NTLM |
DHCP Server
Собираются, если на сервере установлена роль DHCP Server.
| Имя метрики | Единица | Описание |
|---|---|---|
active_directory_dhcp_failover_binding_updates_pending | сообщения | Сообщения обновления привязок в исходящей очереди к партнёру |
active_directory_dhcp_failover_binding_updates_dropped | сообщения | Отброшенные сообщения обновления привязок |
active_directory_dhcp_failover_binding_updates_sent | сообщений/с | Сообщения обновления, отправленные партнёру |
active_directory_dhcp_failover_binding_updates_received | сообщений/с | Сообщения обновления, полученные от партнёра |
DFS Replication
Собираются, если на сервере установлена служба DFSR (в том числе для
репликации SYSVOL). Метрики несут лейбл instance с именем реплицируемой
папки.
| Имя метрики | Единица | Описание |
|---|---|---|
active_directory_dfsr_staging_space_in_use | байты | Текущий размер промежуточной (staging) области |
active_directory_dfsr_conflict_space_in_use | байты | Размер файлов конфликтов репликации |
active_directory_dfsr_deleted_space_in_use | байты | Размер удалённых файлов, ещё хранящихся в промежуточной области |
active_directory_dfsr_file_installs_retried | события | Установки файлов, потребовавшие повтора |
Ключевые метрики для дашбордов и алертов
Доступность
- Отсутствие свежих серий
active_directory_*с контроллера домена — агент остановлен или потерял доступ к счётчикам. - Состояние служб
NTDS,Netlogon,KDC,DNS— см. Контроль служб Active Directory.
LDAP
active_directory_ldap_bind_time— рост означает медленные ответы контроллера домена (нагрузка на CPU или диск базыntds.dit).active_directory_ds_client_binds_persecзаметно вышеactive_directory_ldap_successful_binds_persec— много неуспешных bind: неверные учётные данные в приложениях или перебор паролей.active_directory_ldap_searches_persec— основной показатель нагрузки на чтение; резкий рост без роста числа клиентов указывает на неэффективные запросы приложений.active_directory_ldap_client_sessions— сравнивайте с обычным уровнем для конкретного контроллера домена; всплеск — массовое переподключение клиентов.active_directory_ds_threads_in_useиactive_directory_ldap_active_threadsстабильно высокие — служба каталогов не успевает обрабатывать запросы.
Репликация
active_directory_dra_replication_pending_synchronizations— главный показатель отставания репликации; алерт, если значение больше нуля держится дольше нескольких интервалов репликации.active_directory_dra_inbound_objects_remaining_in_packetстабильно больше нуля — изменения приходят, но применяются медленно.active_directory_dra_inbound_objects_remainingбольше нуля вне запланированной полной синхронизации — контроллер домена догоняет партнёров.active_directory_dra_inbound_bytes_totalиactive_directory_dra_outbound_bytes_total— объём репликационного трафика; всплеск означает массовые изменения в каталоге.
Аутентификация
active_directory_netlogon_semaphore_waitersбольше нуля и ростactive_directory_netlogon_semaphore_hold_time— очередь на аутентификацию (NTLM, RADIUS, системы контроля сетевого доступа).- Прирост
active_directory_netlogon_semaphore_timeouts— запросы аутентификации отклоняются по таймауту; алерт. - Соотношение
active_directory_security_ntlm_authenticationsиactive_directory_security_kerberos_authentications— рост доли NTLM указывает на приложения, которые не используют Kerberos.
DHCP и DFS
active_directory_dhcp_failover_binding_updates_pendingрастёт — партнёр по отказоустойчивости DHCP недоступен.- Рост
active_directory_dfsr_conflict_space_in_useилиactive_directory_dfsr_file_installs_retried— проблемы репликацииSYSVOLили других папок DFS.
Контроль служб Active Directory
Счётчики производительности не показывают, запущены ли сами службы. Для
контроля их состояния используйте проверку windows_service — файл
%ProgramData%\Protoobp\conf.d\windows_service.d\conf.yaml:
init_config:
instances:
- services:
- ntds
- netlogon
- kdc
- dns
- dfsr
- adws
# - dhcpserver # если установлена роль DHCP Server
Служебной учётной записи агента может не хватать прав на чтение состояния
отдельных служб (например, NTDS) — в этом случае выдайте ей право чтения
состояния службы или проверьте вывод agent.exe check windows_service.