пятница, 22 апреля 2011 г.

Мониторинг скриптовых процессов в Nagios

Мониторить скрипты через стандартный для snmp способ proc process_name
Не удается, поскольку имя процесса у них - это имя исполняемого файла интерпретатора. Но выход есть.
Нам понадобиться плагин check_snmp_extend
Конфигурирование nagios подробно описано на сайте проекта:

define command{
    command_name    check_snmp_extend
    command_line    $USER1$/check_snmp_extend.sh $HOSTADDRESS$ $ARG1$
    }

Далее на целевой машине создаем следующий скрипт и сохраним его в /root/check_script.sh

#!/bin/sh
. /etc/rc.subr
# $1 - script name
# $2 - pidfile
# $3 - interpreter
r=`check_pidfile $1 $2 $3`
if [ ! $r  ]; then
     echo "CRITICAL $1 is not running"
else
     echo "OK $1 is running as pid $r"
fi

Скрипт принимает три агрумента и отвечает OK/CRITICAL в зависимости от возвращаемого значениея функции check_pidfile.
Теперь самое главное: преположим есть скрипт /home/www/something.pl, который пишет пид в /tmp/somthing.pid, а путь к перлу - /usr/local/bin/perl. Тогда добавим в конфиг snmpd такую строку:
extend something /root/check_scrint.sh /home/www/something.pl /tmp/somthing.pid /usr/local/bin/perl
Перезапускаем snmpd и прописываем проверку в нагиос:
define service{
    use            generic-service
    host_name        remote.server
    service_description    SomeService status
    check_command        check_snmp_extend!something
}

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

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