headermask image
Рекомендую: Фриланс-биржа | Кэшбэк-сервис | Интернет-бухгалтерия

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

В предыдущих статья я описывал как установить Nagios, как мониторить Linux сервера, в данной же статье будет описано каким образом мониторить машины под управлением Windows.


I. Обзор
II. 4 шага для установки Nagios на удаленном windows хосте

  1. Устанавливаем NSClient++  в Windows
  2. Изменяем сервисNSClient++
  3. Изменяем NSC.ini
  4. Запускаем сервис NSClient+

III. 6 шагов конфигурации на сервере Nagios

  1. Проверяем команду check_nt command и шаблон windows-server
  2. Раскоментируем windows.cfg в /usr/local/nagios/etc/nagios.cfg
  3. Изменяем/usr/local/nagios/etc/objects/windows.cfg
  4. Определяем сервисы Windows, которые будут мониториться
  5. Разрешаем Password Protection
  6. Проверяем конфигурацию и перезапускаем Nagios.

I. Обзор

Во время мониторинга Nagios сервисов на Windows машине происходят следующие действия ( в примере мы наблюдаем за использованием дискового пространства).

  1. Nagios выполняет команду check_nt command и запрашиваем использование дискового пространства на виндовс сервере.
  2. Команда check_nt на сервере Nagios взаимодействует с сервисом NSClient++ на клиенте и запрашиваем результат команды USEDDISKSPACE.
  3. Результат команды USEDDISKSPACE возвращается демоном NSClient++ на Nagios сервер.

  Подводим итог следующей схемой:

Nagios Server (check_nt) —–> Remote host (NSClient++) —–> USEDDISKSPACE
Nagios Server (check_nt) <—– Remote host (NSClient++) <—– USEDDISKSPACE (возвращает использование диска)

II. 4 шага для установки Nagios на удаленном windows хосте

1. Устанавливаем NSClient++  в Windows

Скачиваем NSCP 0.3.1 (NSClient++-Win32-0.3.1.msi) . Запустите установщик и выполните полную установку, которая интуитивно понятна и не должна вызвать проблем.

nsc-3.jpg

2. Изменяем сервисNSClient++

Перейдите в  Control Panel -> Administrative Tools -> Services. Нажмите на сервис “NSClientpp (Nagios) 0.3.1.14 2008-03-12 w32″ и отметьте пункт “Allow service to interact with desktop” как показано на скрине ниже.

nsclient-service-modification.jpg

3. Изменяем NSC.ini

(1) Изменяем NSC.ini и раскомментируем нужные *.dll: Необходимо отредактировать файл C:\Program Files\NSClient++\NSC.ini и раскомментировать все модули кроме RemoteConfiguration.dll и CheckWMI.dll

[modules]

;# NSCLIENT++ MODULES

;# A list with DLLs to load at startup.

;  You will need to enable some of these for NSClient++ to work.

; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

; *                                                               *

; * N O T I C E ! ! ! - Y O U   H A V E   T O   E D I T   T H I S *

; *                                                               *

; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

FileLogger.dll

CheckSystem.dll

CheckDisk.dll

NSClientListener.dll

NRPEListener.dll

SysTray.dll

CheckEventLog.dll

CheckHelpers.dll

;CheckWMI.dll

;

; RemoteConfiguration IS AN EXTREM EARLY IDEA SO DONT USE FOR PRODUCTION ENVIROMNEMTS!

;RemoteConfiguration.dll

; NSCA Agent is a new beta module use with care!

NSCAAgent.dll

; LUA script module used to write your own “check deamon” (sort of) early beta.

LUAScript.dll

; Script to check external scripts and/or internal aliases, early beta.

CheckExternalScripts.dll

; Check other hosts through NRPE extreme beta and probably a bit dangerous! :)

NRPEClient.dll


(2) Изменяем NSC.ini и указываем разрешенные хосты. Редактируем файл C:\Program Files\NSClient++\NSC.ini file и раскомментируем директиву allowed_host, указав там IP адресс Nagios сервера.

;# ALLOWED HOST ADDRESSES

;  This is a comma-delimited list of IP address of hosts that are allowed to talk to the all daemons.

;  If leave this blank anyone can access the deamon remotly (NSClient still requires a valid password).

;  The syntax is host or ip/mask so 192.168.0.0/24 will allow anyone on that subnet access

allowed_hosts=192.168.1.2/255.255.255.0


(3) Изменяем NSC.ini и указываем портРедактируем файл C:\Program Files\NSClient++\NSC.ini file и раскомментируем директиву port:

;# NSCLIENT PORT NUMBER

;  This is the port the NSClientListener.dll will listen to.

port=12489


(4) Указываем пароль. Вы можете также указать пароль, который будет нужен
Nagios серверу для удаленного доступа к агенту NSClient++.

[Settings]

;# OBFUSCATED PASSWORD

;  This is the same as the password option but here you can store the password in an obfuscated manner.

;  *NOTICE* obfuscation is *NOT* the same as encryption, someone with access to this file can still figure out the

;  password. Its just a bit harder to do it at first glance.

;obfuscated_password=Jw0KAUUdXlAAUwASDAAB

;

;# PASSWORD

;  This is the password (-s) that is required to access NSClient remotely. If you leave this blank everyone will be able to access the daemon remotly.

password=My2Secure$Password

4. Запускаем сервис NSClient++

Запустите сервис NSClient++ из Control Panel -> Administrative tools -> Services -> Выберите“NSClientpp (Nagios) 0.3.1.14 2008-03-12 w32″ и нажмите start (или) нажмите “Start -> All Programs -> NSClient++ -> Start NSClient++ (Win32) .

III. 6 шагов конфигурации на сервере Nagios

1. Проверяем команду check_nt command и шаблон windows-server

Проверяем что команда  check_nt существует в файле  /usr/local/nagios/etc/objects/commands.cfg

# 'check_nt' command definition

define command{

command_name    check_nt

command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$

}


Проверяем существует ли шаблон для Windows сервера в файле /usr/local/nagios/etc/objects/templates.cfg

# Windows host definition template - This is NOT a real host, just a template!

define host{

name                    windows-server  ; The name of this host template

use                     generic-host    ; Inherit default values from the generic-host template

check_period            24x7            ; By default, Windows servers are monitored round the clock

check_interval          5               ; Actively check the server every 5 minutes

retry_interval          1               ; Schedule host check retries at 1 minute intervals

max_check_attempts      10              ; Check each server 10 times (max)

check_command           check-host-alive        ; Default command to check if servers are "alive"

notification_period     24x7            ; Send notification out at any time - day or night

notification_interval   30              ; Resend notifications every 30 minutes

notification_options    d,r             ; Only send notifications for specific host states

contact_groups          admins          ; Notifications get sent to the admins by default

hostgroups              windows-servers ; Host groups that Windows servers should be a member of

register                0               ; DONT REGISTER THIS - ITS JUST A TEMPLATE

}

2. Раскомментируем windows.cfg в /usr/local/nagios/etc/nagios.cfg

# Definitions for monitoring a Windows machine

cfg_file=/usr/local/nagios/etc/objects/windows.cfg

3. Изменяем файл /usr/local/nagios/etc/objects/windows.cfg

По умолчанию виндовс хосты указаны в файле windows.cfg, измените его под ваши нужды.

# Define a host for the Windows machine we'll be monitoring

# Change the host_name, alias, and address to fit your situationdefine host{

use             windows-server              ; Inherit default values from a template

host_name   remote-windows-host      ; The name we're giving to this host

alias            Remote Windows Host     ; A longer name associated with the host

address       192.168.1.4                   ; IP address of the remote windows host

}

4. Определяем сервисы Windows, которые будут мониториться.

Просмотрите сервисы, по умолчанию доступные в файле  windows.cfg. Убедитесь что директива host_name соответствует вашему серверу, указанному выше.

define service{

use                     generic-service

host_name               remote-windows-host

service_description     NSClient++ Version

check_command           check_nt!CLIENTVERSION

}

define service{

use                     generic-service

host_name               remote-windows-host

service_description     Uptime

check_command           check_nt!UPTIME

}

define service{

use                     generic-service

host_name               remote-windows-host

service_description     CPU Load

check_command           check_nt!CPULOAD!-l 5,80,90

}

define service{

use                     generic-service

host_name               remote-windows-host

service_description     Memory Usage

check_command           check_nt!MEMUSE!-w 80 -c 90

}

define service{

use                     generic-service

host_name               remote-windows-host

service_description     C: Drive Space

check_command           check_nt!USEDDISKSPACE!-l c -w 80 -c 90

}

define service{

use                     generic-service

host_name               remote-windows-host

service_description     W3SVC

check_command           check_nt!SERVICESTATE!-d SHOWALL -l W3SVC

}

define service{

use                     generic-service

host_name               remote-windows-host

service_description     Explorer

check_command           check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe

}

5. РазрешаемPassword Protection

Если вы указали пароль в файле NSC.ini в сервисе NSClient++, вам необходимо модифицировать команду check_nt. Измените файл /usr/local/nagios/etc/commands.cfg и добавьте пароль.

define command{

command_name	check_nt

command_line	$USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s My2Secure$Password -v $ARG1$ $ARG2$

}

6. Проверяем конфигурацию и перезапускаем Nagios.

Проверяем конфигурацию Nagios.

[nagios-server]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Total Warnings: 0

Total Errors:   0Things look okay - No serious problems were detected during the pre-flight check


Перезапускаем Nagios.

[nagios-server]# /etc/rc.d/init.d/nagios stop

Stopping nagios: .done.[nagios-server]# /etc/rc.d/init.d/nagios start

Starting nagios: done.


Проверяем статус различных сервисов:

remote-windows-host.jpg

Постовой

Нет времени писать реферат или курсовую? Тут вы можете заказать реферат, диплом, курсовую.

В любом бизнесе происходит момент, когда для успешного ведения дел нужно автоматизировать бизнес-процессы. Уже довольно давно лучшей платформой для это является 1С Предприятие. Существуют специально разработанные конфигурации практически под все цели.

Похожие посты
  • Мониторим удаленный Linux сервер используя Nagios
  • Как мониторить свитчи и их активные порты с помощью Nagios
  • Мониторим активные сессии VPN и температуру с помощью Nagios
  • Установка и настройка Nagios 3.0 в Red Hat Linux
  • Process Monitor – Мониторинг для продвинутых
  • Используем Net_DNSBL и Nagios для проверки, находится ли наш сервер в RBL
  • Решение ошибки аутентификации клиентов при подключении к Remote Desktop Gateway
  • Описание более 350 команд Linux c примерами.
  • Как удаленно выключить Windows XP из под Linux
  • Изучаем Network Monitor. Часть 1.
  • 4 комментов оставлено (Add 1 more)

    1. Подскажите, а как организовано шифрование траффика между NSClient++ и сервером nagios? allowed_hosts и password конечно хорошо, но хотелось бы защититься от перехвата.

      1. Rasputin on March 1st, 2013 at 1:01 pm
    2. Готового решения по мониторингу температуры нет. Только писать свой скрипт, который будет получать системные параметры, а затем передавать их через NRPE.

      2. Артур on July 27th, 2012 at 12:39 pm
    3. Боюсь прослыть слоупоком, но в статье ошибка закралась.

      5. РазрешаемPassword Protection

      Если вы указали пароль в файле NSC.ini в сервисе NSClient++, вам необходимо модифицировать команду check_nt. Измените файл /usr/local/nagios/etc/commands.cfg и добавьте пароль.

      читать как:

      5. РазрешаемPassword Protection

      Если вы указали пароль в файле NSC.ini в сервисе NSClient++, вам необходимо модифицировать команду check_nt. Измените файл /usr/local/nagios/etc/objects/commands.cfg и добавьте пароль.

      3. Gelios on April 20th, 2012 at 6:38 am
    4. Вопрос на засыпку:
      как с помощью Nagios мониторить температуры процессоров серверов под виндой и линухом?
      Сам работоспособного решения пока не нашел.

      4. ubuser on March 5th, 2009 at 7:48 pm