Введение При достаточно большой и распределенной инфраструктуре, использующей 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
Теги: #ИТ-инфраструктура #Системное администрирование #мониторинг #zabbix #DFSRstrReplicationGroup=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
-
Преимущества Исследований В Интернете
19 Oct, 24 -
Медиаплеер С Начинкой
19 Oct, 24 -
Сканворд На Каждый День
19 Oct, 24 -
Как Изучить Abap?
19 Oct, 24 -
Умный Дом. Опыт Разработки И Внедрения
19 Oct, 24 -
Зам-С - Выпуск №14
19 Oct, 24 -
Квадратная Мышка Из Фетра
19 Oct, 24