Мониторинг Windows серверов с помощью Nagios

Nagios NSClientВ статье nagios 3 – установка, настройка и эксплуатация я не касался темы про детальную настройку мониторинга серверов под управлением Windows. Под детальной настройкой я имею ввиду мониторинг ресурсов памяти, процессора, свободного места на дисках, работу сервисов и процессов на сервере.
Чтобы мониторить эти компоненты windows систем нам понадобиться установить на windows машинах специальную программу – NSClient++, которая и будет взаимодействовать с Nagios.

Установка клиента NSClient++

Качаем NSClient с официального сайта. Имеются версии для 32 и 64bit систем.
При установке клиента я рекомендую включать все компоненты программы, т.к. в компонентах имеется и исключения для брандмауэра windows, чтобы потом не конфигурировать это вручную.

При установке NSClient++отмечаем все компоненты

При установке NSClient++отмечаем все компоненты

Для доступа к машине задаем ip сервера, где у нас стоит Nagios, а также рекомендую задать специальный пароль. Пароль следует задавать один и тот-же для всех машин, где ставится NSClient.

Задаем опции NSClient++

Задаем опции NSClient++

В завершение установки клиента ставим галочку, Start Service и можно переходить к настройке Nagios.

После завершения установки стартуем сервис NSClient++

После завершения установки стартуем сервис NSClient++

Все настройки 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 не запущен и мне сразу свалилось оповещение об этом 🙂

Отображение сервисов в Nagios3

Отображение сервисов в Nagios3

Запись опубликована в рубрике Monitoring, Nagios с метками . Добавьте в закладки постоянную ссылку.

6 комментариев Мониторинг Windows серверов с помощью Nagios

  1. Angel_ok говорит:

    Спасибо большое! По вашей статье настроил. Все работает нормально.
    Подскажите как добавить мониторинг HTTP, SSH и других сервисов не описанных в инструкции.
    Спасибо.

    • mik говорит:

      для мониторинга HTTP и SSH есть команды check_http, check_ssh. Эти две команды работают без всяких параметров.
      Если сервис на специфическом порту, то создаете свою команду в файле commands.cfg (смотрите на пример команды check_squid в 1й части статьи)

  2. Alex говорит:

    Огромное Вам человеческое спасибо =) Давно были задумки научить систему мониторить сервисы и процессы.

  3. Omirzhan говорит:

    #========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
    }
    #===========================================

    на какой файл записать эти конфигурации?

    • mik говорит:

      все в тот же файл windows_nsclient.cfg
      в принципе можно создать и отдельный cfg, только прописать его в основном конфиге нужно.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *