четверг, 3 марта 2011 г.

Проверка очереди сообщений в MDaemon с помощью Nagios.

Вообщем после очередной неудачной рассылки прайсов/накладных и т.п. через MDaemon вокникла супер-идея мониторить количество сообщений и в случае ЧП пропихивать их вручную. Как проверять? Дык есть же Nagios!
Теперь по делу. Поскольку MDaemon не имеет возможности отдавать по snmp данные о своей загрузке, пришлось писать скрипт на powershell, который будет мониторить каждые 5 минут папку Remoteq (Remote Queue) и, если их число превысит какое-то значение, то информировать заинтересованных лиц.
Собственно последовательность действий:
1. Написать скрипт и поднастроить powershell (Set-ExecutionPolicy RemoteSigned)
$MAX_WARN=50
$MAX_CRIT=200
$DIR="d:\Program Files\MDaemon\Remoteq\"
$FILTER="*msg"

$X = (get-childitem $DIR -include $FILTER -recurse ).count

if (( $X -gt $MAX_WARN ) -and ( $X -lt $MAX_CRIT )) {
Write-host "In RemoteQueue there are: "$X " message(s)."
exit 1
}
elseif ( $X -gt $MAX_CRIT ){
Write-host "In RemoteQueue there are: "$X " message(s)."
exit 2
}
else {
Write-host "In RemoteQueue there are: "$X " message(s)."
exit 0
}

2. Установить/настроить конфигурационный файл nsclient++ - прописать в nsc.ini что-то типа такого:

[NRPE Handlers]
check_mdqueue=cmd /c echo d:\mdqueue.ps1 ; exit $LastExitCode | powershell -command -

3. Запустить/перезапустить nsclient++
4. Открыть порт 5666 на windows firewall для хоста(ов) мониторинга.
5. Настроить nagios, добавить в список проверяемых сервисов.
define service{
use local-service
host_name khonsu
service_description MDaemon remote queues
check_command check_nrpe!check_mdqueue
}
6. Проверка с хоста nagios
/usr/local/nagios/libexec/check_nrpe -H khonsu -c check_mdqueue
In RemoteQueue there are: 3 message(s).

Комментариев нет:

Отправить комментарий