Небольшой скрипт для системы проверки состояния баз Exchange. Он проверяет состояние баз, и записывает данные в файл. При наличии отмонтированных баз, баз с ошибкой синхронизации или любых проблем в файл выводится информация о текущем состоянии всех баз Exchange в организации. Так же сработает при любых проблемах с базами в DAG (ошибки синхронизации и прочее).
Используется совместно с Zabbix. Агент Zabbix производит проверку файла – если размер файла больше “0”, то срабатывает триггер и сигнализирует об ошибке баз.
Скрипт запускается через планировщик каждую минуту.
Сам скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
cls add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010 Sleep 5 $my_Path_File_StatusCheck = "C:\Script\Exch_DB_Status\dbStatus.txt" $myVar_Error = 0 $Array1 = Get-MailboxDatabase -Status | Get-MailboxDatabaseCopyStatus ForEach ($Entry in $Array1) { Write-host “База: “$Entry.name " ___ " "Статус: " $Entry.status If (($Entry.Status -eq "Mounted") -or ($Entry.Status -eq "Healthy")){ Write-host “OK“ } Else { Write-host “PROBLEM“ $myVar_Error = 1 } } if ($myVar_Error -ne "0") { $Array1 | Select-Object name, status | export-csv $my_Path_File_StatusCheck -Delimiter "," -encoding utf8 -NoTypeInformation Write-host “-----“ Write-host “ERROR“ } if ($myVar_Error -eq "0") { clear-content $my_Path_File_StatusCheck Write-host “----“ Write-host “NOT PROBLEM“ } |