Мониторить 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 сервера:
