Доброго времени суток. Скажу сразу я новичок в использовании Zabbexa. Но вот тут возникла необходимость мониторить на работе состояние почтовика на доступность баз данных и очереди. Покопался в интернете все советовали использовать Zabbix. Нашел сайтик с описанием для настройки мониторинга почты, поднял убунту, поднял Zabbix, добрался до веб интерфейса и начал делать по мануалу с сайта(не буду указывать дабы не реклама). Для проверки настроил Zabbix агент ICMP(который работает). Что начал делать:
1)Создал скрипт в powershell:
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
$dbs = Get-MailboxDatabaseCopyStatus -Identity *
$nok = $NULL
foreach ($db in $dbs)
{
$status = $db.status
$name = $db.DatabaseName
$queue = $db.CopyQueueLength
$index = $db.ContentIndexState
if ($status -ne "Healthy" -and $status -ne "Mounted")
{
$nok += "not ok "+ $name + "; "
}
if ($queue -gt 100)
{
$nok += "queue "+ $name + "; "
}
if ($index -ne "Healthy")
{
$nok += "index "+ $name + "; "
}
}
if ($nok -ne $NULL)
{
Write-Host $nok
}
else
{
Write-Host "OK"
}
2) добавил в конфигурационный файл агента:
UserParameter=DB_status,PowerShell.exe -NoProfile -ExecutionPolicy Bypass -File "%Programfiles%\Zabbix\Script_exchange.ps1"
Перезапустил службу агента.
3) Настроил элемент данных с ключом DB_status и интервалом 120s, добавил триггер: Имя: DB problem; Выражение: {мой_почтовик: DB_status.str(OK)}<>1; описание: Last value: {ITEM.LASTVALUE1}. Все согласно статье.
Полез проверять в Элементы данных, а там состояние: Не поддерживается, Инфо: Timeout while executing a shell script.
Ну полез в гугл, там во всех статьях добавьте на windows хосте в конф. файле Timeout=30. Добавил,перезапустил службу, таже ошибка. Может кто посоветует как решить данную проблемку или куда копать(если можно то и чем копать)) )
1)Создал скрипт в powershell:
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
$dbs = Get-MailboxDatabaseCopyStatus -Identity *
$nok = $NULL
foreach ($db in $dbs)
{
$status = $db.status
$name = $db.DatabaseName
$queue = $db.CopyQueueLength
$index = $db.ContentIndexState
if ($status -ne "Healthy" -and $status -ne "Mounted")
{
$nok += "not ok "+ $name + "; "
}
if ($queue -gt 100)
{
$nok += "queue "+ $name + "; "
}
if ($index -ne "Healthy")
{
$nok += "index "+ $name + "; "
}
}
if ($nok -ne $NULL)
{
Write-Host $nok
}
else
{
Write-Host "OK"
}
2) добавил в конфигурационный файл агента:
UserParameter=DB_status,PowerShell.exe -NoProfile -ExecutionPolicy Bypass -File "%Programfiles%\Zabbix\Script_exchange.ps1"
Перезапустил службу агента.
3) Настроил элемент данных с ключом DB_status и интервалом 120s, добавил триггер: Имя: DB problem; Выражение: {мой_почтовик: DB_status.str(OK)}<>1; описание: Last value: {ITEM.LASTVALUE1}. Все согласно статье.
Полез проверять в Элементы данных, а там состояние: Не поддерживается, Инфо: Timeout while executing a shell script.
Ну полез в гугл, там во всех статьях добавьте на windows хосте в конф. файле Timeout=30. Добавил,перезапустил службу, таже ошибка. Может кто посоветует как решить данную проблемку или куда копать(если можно то и чем копать)) )
Comment