В предыдущих статья я описывал как установить Nagios, как мониторить Linux сервера, в данной же статье будет описано каким образом мониторить машины под управлением Windows.
I. Обзор
II. 4 шага для установки Nagios на удаленном windows хосте
- Устанавливаем NSClient++ в Windows
- Изменяем сервисNSClient++
- Изменяем NSC.ini
- Запускаем сервис NSClient+
III. 6 шагов конфигурации на сервере Nagios
- Проверяем команду check_nt command и шаблон windows-server
- Раскоментируем windows.cfg в /usr/local/nagios/etc/nagios.cfg
- Изменяем/usr/local/nagios/etc/objects/windows.cfg
- Определяем сервисы Windows, которые будут мониториться
- Разрешаем Password Protection
- Проверяем конфигурацию и перезапускаем Nagios.
I. Обзор
Во время мониторинга Nagios сервисов на Windows машине происходят следующие действия ( в примере мы наблюдаем за использованием дискового пространства).
- Nagios выполняет команду check_nt command и запрашиваем использование дискового пространства на виндовс сервере.
- Команда check_nt на сервере Nagios взаимодействует с сервисом NSClient++ на клиенте и запрашиваем результат команды USEDDISKSPACE.
- Результат команды 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) . Запустите установщик и выполните полную установку, которая интуитивно понятна и не должна вызвать проблем.
2. Изменяем сервисNSClient++
Перейдите в Control Panel -> Administrative Tools -> Services. Нажмите на сервис “NSClientpp (Nagios) 0.3.1.14 2008-03-12 w32″ и отметьте пункт “Allow service to interact with desktop” как показано на скрине ниже.
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.
Проверяем статус различных сервисов:
Постовой
Нет времени писать реферат или курсовую? Тут вы можете заказать реферат, диплом, курсовую.
В любом бизнесе происходит момент, когда для успешного ведения дел нужно автоматизировать бизнес-процессы. Уже довольно давно лучшей платформой для это является 1С Предприятие. Существуют специально разработанные конфигурации практически под все цели.
4 комментов оставлено (Add 1 more)