В статье nagios 3 – установка, настройка и эксплуатация я не касался темы про детальную настройку мониторинга серверов под управлением Windows. Под детальной настройкой я имею ввиду мониторинг ресурсов памяти, процессора, свободного места на дисках, работу сервисов и процессов на сервере.
Чтобы мониторить эти компоненты windows систем нам понадобиться установить на windows машинах специальную программу – NSClient++, которая и будет взаимодействовать с Nagios.
Установка клиента NSClient++
Качаем NSClient с официального сайта. Имеются версии для 32 и 64bit систем.
При установке клиента я рекомендую включать все компоненты программы, т.к. в компонентах имеется и исключения для брандмауэра windows, чтобы потом не конфигурировать это вручную.
Для доступа к машине задаем ip сервера, где у нас стоит Nagios, а также рекомендую задать специальный пароль. Пароль следует задавать один и тот-же для всех машин, где ставится NSClient.
В завершение установки клиента ставим галочку, Start Service и можно переходить к настройке Nagios.
Все настройки NSClient++ по умолчанию хранятся в файле C:\Program Files\NSClient++\NSC.ini. После их редактирования в обычном блокноте, требуется перезапускать сервис NSClient++ (Win 32)
Настройка конфигурации Nagios 3
Первым делом вносим изменения в команду проверки check_nt в файле commands.cfg. Дописываем проверку по паролю “-s P@ssw0rd”
# 'check_nt' command definition
define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s P@ssw0rd -v $ARG1$ $ARG2$
}
Далее рекомендую создать отдельный файл, например windows_nsclient.cfg в папке objects, чтобы туда заносить команды мониторинга через NSClient++. Можно файл и не создавать, а сваливать все в какой-нибудь уже созданный файл.
Файл windows_nsclient.cfg не забываем подключить в файле nagios.cfg.
cfg_file=/usr/local/nagios3/etc/objects/windows_nsclient.cfg
Для порядка в Nagios я назначил для каждой группы событий свою сервисную группу, но эта процедура также не является обязательной.
Но кто следит за порядком это сделать рекомендуется. Последующие строки можно включить в файл windows_nsclient.cfg показать
А теперь можно и задавать параметры мониторинга windows хоста. Помимо стандартных сервисов uptime, загрузки процессора, памяти, дисков C и E я для примера мониторю сервис “HASP Loader” и процесс mmc.exe. Также обратите внимание, если вы не задавали сервисных групп, то также не стоит ссылаться на них в описании сервисов.
#========Host Project============================
define service{
use generic_service
host_name Project
service_description Uptime
check_command check_nt!UPTIME
servicegroups UPTIME
}
define service{
use generic_service
host_name Project
service_description CPU Load
check_command check_nt!CPULOAD!-l 5,80,90
servicegroups CPU
}
define service{
use generic_service
host_name Project
service_description Memory Usage
check_command check_nt!MEMUSE!-w 80 -c 90
servicegroups MEMORY
}
define service{
use generic_service
host_name Project
service_description C:\ Drive Space
check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
servicegroups DISK
}
define service{
use generic_service
host_name Project
service_description E:\ Drive Space
check_command check_nt!USEDDISKSPACE!-l e -w 80 -c 90
servicegroups DISK
}
define service{
use generic_service
host_name Project
service_description NetHASP service
check_command check_nt!SERVICESTATE!-d SHOWALL -l "HASP Loader"
servicegroups WIN_SERVICES
}
define service{
use generic_service
host_name Project
service_description mmc.exe process
check_command check_nt!PROCSTATE!-d SHOWALL -l mmc.exe
servicegroups WIN_PROC
}
#===========================================
После всех изменений nagios конфигов не забываем перезапустить сервис. У меня процесс mmc.exe не запущен и мне сразу свалилось оповещение об этом 🙂
Спасибо большое! По вашей статье настроил. Все работает нормально.
Подскажите как добавить мониторинг HTTP, SSH и других сервисов не описанных в инструкции.
Спасибо.
для мониторинга HTTP и SSH есть команды check_http, check_ssh. Эти две команды работают без всяких параметров.
Если сервис на специфическом порту, то создаете свою команду в файле commands.cfg (смотрите на пример команды check_squid в 1й части статьи)
Действительно так. Разобрался. Спасибо.
Огромное Вам человеческое спасибо =) Давно были задумки научить систему мониторить сервисы и процессы.
#========Host Project============================
define service{
use generic_service
host_name Project
service_description Uptime
check_command check_nt!UPTIME
servicegroups UPTIME
}
define service{
use generic_service
host_name Project
service_description CPU Load
check_command check_nt!CPULOAD!-l 5,80,90
servicegroups CPU
}
define service{
use generic_service
host_name Project
service_description Memory Usage
check_command check_nt!MEMUSE!-w 80 -c 90
servicegroups MEMORY
}
define service{
use generic_service
host_name Project
service_description C:\ Drive Space
check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
servicegroups DISK
}
define service{
use generic_service
host_name Project
service_description E:\ Drive Space
check_command check_nt!USEDDISKSPACE!-l e -w 80 -c 90
servicegroups DISK
}
define service{
use generic_service
host_name Project
service_description NetHASP service
check_command check_nt!SERVICESTATE!-d SHOWALL -l “HASP Loader”
servicegroups WIN_SERVICES
}
define service{
use generic_service
host_name Project
service_description mmc.exe process
check_command check_nt!PROCSTATE!-d SHOWALL -l mmc.exe
servicegroups WIN_PROC
}
#===========================================
на какой файл записать эти конфигурации?
все в тот же файл windows_nsclient.cfg
в принципе можно создать и отдельный cfg, только прописать его в основном конфиге нужно.