Мониторить Windows сервера будем с помощью агента NSClient++, у которого есть модуль NRPEListener.dll nrpe:
Часть проверок мы будем собирать через модуль Nagios check_nt часть через модуль check_nrpe.
1. Установим агент NSClient++ на Windows сервер
32x битная версия 0.3.9
64x битная версия 0.3.9
2. Настраиваем NSClient++
Конфигурационный файл C:\Program Files\NSClient++\NSC.ini
При установке мы уже активировали часть необходимых параметров для работы агента, осталось активировать следующие параметры в разделе [NRPE] и сохранить изменения:
port=5666 allow_arguments=1
3. Заходим в Services и устанавливаем галочку в закладке Log On (Allow service to interact with desktop) и запускаем сервис NSClient++
Необходимые действия на стороне Windows сервера завершены. Переходим к Nagios серверу.
1. Определяем проверки в файле commands.cfg
Проверка с помощью плагина check_nt -s Password Пароль который мы указывали при установке
define command{ command_name check_nt command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s Password -v $ARG1$ $ARG2$ }
Проверка памяти с помощью плагина check_nrpe и CheckMem
type=physical The amount of physical memory currently available, in bytes. This is the amount of physical memory that can be immediately reused without having to write its contents to disk first. It is the sum of the size of the standby, free, and zero lists.
define command{
command_name check_memory_physical
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -p 5666 -c CheckMEM -a MaxWarn=$ARG1$% MaxCrit=$ARG2$% ShowAll=long type=physical
}
type=page The maximum amount of memory the current process can commit, in bytes. This value is equal to or smaller than the system-wide available commit value.
define command{
command_name check_memory_page
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -p 5666 -c CheckMEM -a MaxWarn=$ARG1$% MaxCrit=$ARG2$% ShowAll=long type=page
}
type=virtual Number of pages of swap currently in use (note – it does NOT = (physical + swap) as on *nix boxes) According to M$ this is: Size of unreserved and uncommitted memory in the user mode portion of the virtual address space of the calling process, in bytes.
define command{
command_name check_memory_virtual
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -p 5666 -c CheckMEM -a MaxWarn=$ARG1$% MaxCrit=$ARG2$% ShowAll=long type=virtual
}
2. Определяем Host Definition и Service definition в файле /etc/nagios/hosts/Windows1.cfg
# Host Definition define host{ # Name of host template to use use generic-host host_name Windows1 address 192.168.1.105 check_command check-host-alive contact_groups admins max_check_attempts 10 notification_interval 120 notification_period 24x7 notification_options d,u,r }
# Service definition define service{ # Name of service template to use use generic-service host_name Windows1 service_description PING is_volatile 0 check_period 24x7 max_check_attempts 3 normal_check_interval 1 retry_check_interval 1 contact_groups admins notification_interval 120 notification_period 24x7 notification_options c,r check_command check_ping!250.0,20%!500.0,60% }
define service{ use generic-service host_name Windows1 service_description Uptime is_volatile 0 check_period 24x7 max_check_attempts 3 normal_check_interval 1 retry_check_interval 1 contact_groups admins notification_interval 120 notification_period 24x7 notification_options c,r check_command check_nt!UPTIME }
define service{ use generic-service host_name Windows1 service_description CPU Load is_volatile 0 check_period 24x7 max_check_attempts 3 normal_check_interval 1 retry_check_interval 1 contact_groups admins notification_interval 120 notification_period 24x7 notification_options c,r check_command check_nt!CPULOAD!-l 5,80,90 }
define service{ use generic-service host_name Windows1 service_description SWAP is_volatile 0 check_period 24x7 max_check_attempts 3 normal_check_interval 1 retry_check_interval 1 contact_groups admins notification_interval 120 notification_period 24x7 notification_options c,r check_command check_nt!MEMUSE!-w 80 -c 90 }
define service{ use generic-service host_name Windows1 service_description Memory Physical is_volatile 0 check_period 24x7 max_check_attempts 3 normal_check_interval 1 retry_check_interval 1 contact_groups admins notification_interval 120 notification_period 24x7 notification_options c,r check_command check_memory_physical!80!90! }
define service{ use generic-service host_name Windows1 service_description Memory Page is_volatile 0 check_period 24x7 max_check_attempts 3 normal_check_interval 1 retry_check_interval 1 contact_groups admins notification_interval 120 notification_period 24x7 notification_options c,r check_command check_memory_page!80!90! }
define service{ use generic-service host_name Windows1 service_description Memory Virtual is_volatile 0 check_period 24x7 max_check_attempts 3 normal_check_interval 1 retry_check_interval 1 contact_groups admins notification_interval 120 notification_period 24x7 notification_options c,r check_command check_memory_virtual!80!90! }
3. Добавляем данный файл в nagios.cfg
cfg_file=/etc/nagios/hosts/Windows1.cfg
Проверяем конфигурацию и перезагружаем Nagios
# nagios -v /etc/nagios/nagios.cfg # service nagios restart
4. В результате получаем проверку Windows сервера: