A+ A A-

Система Real-time мониторинга репликации AD

  • Обновлено 01.01.2013 20:15
  • Автор: Николай Андрианов (Slayer)

Содержание материала

 

Почему потребовалось 2 скрипта


    Предположим мы добавили в скрипт replic_monitor.bat функцию анализа логов. В 8.58 произошел сбой репликации, мы его устранили в 9.15. В 10.00 скрипт запускается и снова выдает ошибку репликации, хотя ее не будет на самом деле! Произойдет ложное срабатывание механизма анализа, т.к. лог уже содержит сообщение об ошибке в 9.00. Можно перезаписывать лог каждый раз, но тогда мы будем терять статистику. Можно реализовать функцию перемещения логов предыдущего запуска в отдельный файл, но это излишне загрузило бы скрипт.

 

Особенности репликации


    Почему использована двойная диагностика проблем репликации? Пример: Скрипт отработал repadmin /showrepl domain.local и сообщил об ошибке. Мы отправили сервер на перезагрузку либо он сам перезагрузился. Во время перезагрузки происходит очередной запуск скрипта и ошибки репликации уже не будет зафиксировано, а будет указано время последней удачно репликации. Т.е. проблема еще не решена, но скрипт думает, что проблем нет.
    Использование запроса dcdiag /n:domain.local /test:replications и последующий анализ результатов проблемы позволяют установить выпавший сервер из репликации.

 

Добавляем отправку сообщений на Email


    Для реализации данного функционала необходимо использовать бесплатную утилиту Blat (Ее можно загрузить с www.blat.net ). Blat.exe необходимо скопировать в %Systemroot%\System32. Тогда строки с проверкой на ошибки и отправку сообщения примут вид:
for /f "tokens=1-7" %%A in (\\dc01\Scripts\%file_name%_rep_mon.log) do (
if "%%F"=="failed," ((net send Test "Error in Replication!" & net send dc01 "Error in Replication!" & blat -subject "Error in Replication!" -body "Error in Replication!" -t test@domain.local -server dc01.domain.local  -f system@domain.local & goto exit))

if "%%E"=="error" ((net send Test "DCDiag: Error in Replication!" & net send dc01 "CDiag: Error in Replication!" & blat -subject "DCDiag: Error in Replication!" -body " DCDiag: Error in Replication!" -t test@domain.local -server dc01.domain.local  -f system@domain.local & goto exit)))
Подробное руководство по синтаксису Blat Вы найдете в поставляемом с ним руководством.

 

Настраиваем запуск при аутентификации в домен


    Скрипт logon_replic_monitor.bat будет нас информировать только при нашем присутствии в домене. Если мы отсутствовали в домене, то мы не получим сообщений об ошибке. Чтобы сократить время информирования об ошибках до минимума был использован механизм групповых политик и скрипт logon_replic_monitor.bat был назначен на запуск при аутентификации администратора в домен (в том числе и удаленно).
    Запускаем оснастку «Active Directiry Users and Computers»(Active Directory Пользователи и Компьютеры). Путь Start\Programs\Administrative Tools\Active Directiry Users and Computers (Старт\Программы\Администрирование\Active Directory Пользователи и Компьютеры. Перейдите в контейнер, к которому будете применять групповую политику. Нажмите правую кнопку мыши и выберете пункт Properties(Свойства).


Перейдите на вкладку Group Policy (Групповая Политика) и нажмите кнопку Open (Открыть). Или кнопку Create (Создать), если вы запускаете оснастку на контроллере домена, а не на рабочей станции администратора с установленным Adminpak.msi (можно загрузисть с сайта www.Microsoft.com).


Создаем новую политику, присваиваем ей имя. Выделяем политику, нажимаем правую кнопку мыши и выбираем пункт Edit (Редактировать).


Переходим на вкладку Scripts. Путь User Configuration\Windows Settings\Scripts\Logon (Конфигурация Пользователя\Конфигурация Windows\Сценарии\Вход в систему).

 

Нажимаем правую кнопку мыши на logon и выбираем Properties.


Нажимаем кнопку Add (Добавить).


Указываем путь до скрипта и нажимаем ОК.


Нажимаем ОК.

Политика почти готова. Теперь нужно указать, как политика должна взаимодействовать с вышестоящими групповыми политиками. Если это не указать, политика работать не будет.
Путь Computer Configuration\Administrative Templates\System\Group Policy (Конфигурация компьютера\Административные Шаблоны\Система\Групповые Политики).

 


Дважды щелкните пункт User Group Policy Loopback Processing Mode (Режим обработки замыкания пользовательской групповой политики).

 

    Установите значение Enabled и выберите режим Merge (Слияние).
Теперь закройте все оснастки. Создание групповой политики завершено.

 

Заключение


    Использование данного скрипта позволяет значительно упростить жизнь администратора и избавить его от рутинной задачи по выполнению мониторинга репликации.
    Данный комплекс находится в промышленной эксплуатации с момента его написания и проблем с его функционированием не выявлено.
    Подобные функции мониторинга можно реализовать и с использованием утилиты Eventquery и анализа журнала File Replication Service.
В качестве основного источника для написания скрипта использовался ресурс http://www.microsoft.com/technet/ и книга Вильяма Р. Станека «Командная строка Windows. Справочник администратора».

Автор: Андрианов Николай

В качестве бонуса - синтаксис команды FOR. 

 

Комментарии