Простой Мониторинг Репликации Dfs В Zabbix



Введение При достаточно большой и распределенной инфраструктуре, использующей DFS как единую точку доступа к данным и DFSR для репликации данных между дата-центрами и серверами филиалов, возникает вопрос мониторинга состояния этой репликации.

Так совпало, что почти сразу после того, как мы начали использовать DFSR, мы начали внедрять Zabbix с целью заменить существующий зоопарк различных инструментов и привести мониторинг инфраструктуры в более информативный, полный и логичный вид. Мы поговорим об использовании Zabbix для мониторинга репликации DFS. Прежде всего нам необходимо решить, какие данные о репликации DFS необходимо получить для мониторинга ее состояния.

Самый актуальный показатель — отставание.

Он содержит файлы, не синхронизированные с другими членами группы репликации.

Посмотреть его размер можно с помощью утилиты dfsrdiag , установленный с ролью DFSR. В нормальном состоянии репликации размер невыполненной работы должен приближаться к нулю.

Соответственно, большое количество файлов в бэклоге указывает на проблемы с репликацией.

Теперь о практической стороне вопроса.

Для того, чтобы отслеживать размер бэклога через Zabbix Agent, нам понадобится:

  • Скрипт, который будет анализировать вывод dfsrdiag предоставить окончательные значения размера невыполненной работы Zabbix,
  • Скрипт, который определит, сколько групп репликации на сервере, какие папки они реплицируют и какие еще серверы в них входят (мы ведь не хотим вводить все это в Zabbix вручную для каждого сервера, правда?),
  • Добавление этих скриптов в качестве UserParameter в конфигурацию агента Zabbix для последующего вызова с сервера мониторинга,
  • Запуск службы агента Zabbix от имени пользователя, имеющего права на чтение журнала,
  • Шаблон для Zabbix, в котором будет настроено обнаружение групп, обработка полученных данных и выдача по ним оповещений.



Парсер скриптов

Для написания парсера я выбрал VBS как наиболее универсальный язык, присутствующий во всех версиях Windows Server. Логика скрипта проста: он получает имя группы репликации, реплицируемой папки и имена серверов-отправителей и получателей через командную строку.

Эти параметры затем передаются в dfsrdiag , и в зависимости от его вывода выдает: Количество файлов - если получено сообщение о наличии файлов в бэклоге, 0 — если получено сообщение об отсутствии файлов в бэклоге («No Backlog»), -1 — если получено сообщение об ошибке dfsrdiag при выполнении запроса («[ОШИБКА]»).

get-Backlog.vbs

   

strReplicationGroup=WScript.Arguments.Item(0) strReplicatedFolder=WScript.Arguments.Item(1) strSending=WScript.Arguments.Item(2) strReceiving=WScript.Arguments.Item(3) Set WshShell = CreateObject ("Wscript.shell") Set objExec = WSHshell.Exec("dfsrdiag.exe Backlog /RGName:""" & strReplicationGroup & """ /RFName:""" & strReplicatedFolder & """ /SendingMember:" & strSending & " /ReceivingMember:" & strReceiving) strResult = "" Do While Not objExec.StdOut.AtEndOfStream

Теги: #ИТ-инфраструктура #Системное администрирование #мониторинг #zabbix #DFSR
Вместе с данным постом часто просматривают: