Ads 468x60px

четверг, 28 февраля 2013 г.

Nagios мониторинг журналов windows.

Задача: автоматически следить за различными параметрами серверов предприятия.
Используемые средства: система для развертывания сервера Nagios - Debian wheezy.(IP - 192.168.30.19)
Основной плагин мониторинга - NRPE.
Программное обеспечение на стороне windows: NSClient++ (Важно: версия 0.3 для 0.4 настройка будет отличаться)
Настройка windows клиента.
1. Скачиваем с сайта nsclient и устанавливаем. В процессе установки указываем IP адрес сервера nagios и выбираем опцию включения NSClient сервера:
2. Редактируем файл настроек NSC.ini, для данной задачи необходимо обратить внимание на следующие пункты:
[modules]
NRPEListener.dll
CheckEventLog.dll

[Settings]
;
;# USE THIS FILE
;  Use the INI file as opposed to the registry if this is 0 and the use_reg in the registry is set to 1 
;  the registry will be used instead.
use_file=1
allowed_hosts=192.168.30.19

[NRPE]
;# COMMAND ARGUMENT PROCESSING
;  позволяет использовать аргументы в команде на стороне nagios
allow_arguments=1
;
;# COMMAND ALLOW NASTY META CHARS
;  позволяет использовать "неприятные" символы (такие как in |`&><'"\[]{}) в аргументах
allow_nasty_meta_chars=1
3. Запускаем службу NSClient++.
Настройка сервера nagios.
Проверяем, что запрос к windows машине работает:
$ /usr/lib/nagios/plugins/check_nrpe -H winServer -c CheckEventLog -a file=System MaxWarn=1 MaxCrit=5 "filter=generated > -2d And type IN ('critical','warrning','error') AND id NOT IN (100) " unique descriptions "syntax=%type%: %id%: %message%" truncate=800 | iconv -c -f WINDOWS-1251 -t UTF-8
В файл /etc/nagios-plugins/config/check_nrpe.cfg добавляем описание команды:
    
# check windows log with NSClient
define command {
    command_name    check_nrpe_log
    command_line    /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c CheckEventLog -a file=$ARG1$ MaxWarn=$ARG2$ MaxCrit=$ARG3$ "filter=generated > $ARG4$ AND type IN ($ARG5$) and id NOT IN (7036,0) " unique descriptions "syntax=%type%: %id%: %message%" truncate=800
}
, где в ARG1 - это имя журнала (Application, Security или System)
- ARG2 = количество сообщений, которое Nagios принимает как предупреждение
- ARG3 = количество сообщений, которое Nagios принимает как критическая ситуация
- ARG4 = период за который необходимо просматривать журнал (-2d = последние два дня и т.п.)
Для описания периода можно использовать так же: m, s, h, d, w
- ARG5 = тип событий которые нужно просматривать (error, warning, info, auditSuccess, auditFailure)
- and id NOT IN (-2500,0) = код события на которые не надо реагировать
- "syntax=%type%: %id%: %message%" = синтаксис сообщения для Nagios(для формирования строки сообщения допускаються следующие варианты: %source%, %generated%, %written%, %type%, %severity%, %strings%, %id% and %message%
Более расширенную информацию синтаксиса команды можно почитать тут: check_eventlog.
В файл описания сервера добавляем службу:
 define service{
        use                     generic-service
# значение указанное в пункте host_name из  Описания сервера
    host_name       winServer
# описание отображения контролируемого пункта
        service_description     LOGsystem
# команда которая выполняет проверку,
      check_command           check_nrpe_log!System!1!5!-2d!'critical','warrning','error'
        }
Все готово к работе, но возникла проблема с отображением русских символов из текста сообщения, для веб интерфейса побороть данную проблема у меня быстро не получилось, а для email рассылки изменил команду в /etc/nagios3/commands.cfg:
    
# 'notify-service-by-email' command definition
define command{
    command_name    notify-service-by-email
    command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | iconv -c -f WINDOWS-1251 -t UTF-8 | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
    }
добавил перекодировку iconv -c -f WINDOWS-1251 -t UTF-8 перед /usr/bin/mail
Теперь осталось только перезагрузить nagios:
$ sudo service nagios3 restart

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