Pesquisa de site

Como adicionar host do Windows ao servidor de monitoramento Nagios


Este artigo descreve como monitorar serviços “privados” de máquinas Windows, como carga da CPU, uso do disco, Uso de memória, Serviços, etc. Para isso, é necessário instalar um complemento NSClient++ na máquina Windows. O complemento atua como um proxy entre a máquina Windows e o Nagios e monitora os serviços reais comunicando-se com o plugin check_nt. O plugin check_nt já está instalado no Nagios Monitoring Server, se você seguiu nosso guia de instalação do Nagios.

Presumimos que você já instalou e configurou o servidor Nagios de acordo com nossos guias a seguir.

  1. Como instalar o Nagios 4.0.1 no RHEL/CentOS 6.x/5.xe Fedora 19/18/17
  2. Adicionar host Linux ao servidor de monitoramento Nagios

Para monitorar Máquinas Windows você precisará seguir vários passos e são eles:

  1. Instale o complemento NSClient++ na máquina Windows.
  2. Configure o servidor Nagios para monitorar a máquina Windows.
  3. Adicione novas definições de host e serviço para monitoramento de máquinas Windows.
  4. Reinicie o serviço Nagios.

Para tornar este guia simples e fácil, algumas configurações já feitas para você na instalação do Nagios.

  1. Uma definição de comando check_nt já adicionada ao arquivo command.cfg. Este comando de definição é usado pelo plugin check_nt para monitorar os serviços do Windows.
  2. Um modelo de host do servidor Windows já criado no arquivo templates.cfg. Este modelo permite adicionar novas definições de host do Windows.

Os dois arquivos acima “command.cfg” e “templates.cfg” podem ser encontrados em /usr/local/nagios/etc/objects/ diretório. Você pode modificar e adicionar suas próprias definições que atendam às suas necessidades. Porém, recomendo que você siga as instruções descritas neste artigo e você monitorará com sucesso seu host Windows em menos de 20 minutos.

Etapa 1: Instalando o Agente NSClient++ na máquina Windows

Use as instruções abaixo para instalar o Agente NSClient++ no Host remoto do Windows. Primeiro baixe os arquivos de origem do complemento NSClient++ 0.3.1 da versão estável mais recente, que podem ser encontrados no link abaixo.

  1. http://sourceforge.net/projects/nscplus/

Depois de baixar a versão estável mais recente, descompacte os arquivos NSClient++ em um novo diretório C:\NSClient++.

Agora abra um prompt de comando do MS-DOS na tela inicial –> Executar –> digite 'cmd' e pressione Enter e mude para o diretório C:\NSClient++.

C:\NSClient++

Em seguida, registre o serviço NSClient++ no sistema com o seguinte comando.

nsclient++ /install

Por fim, instale a bandeja do sistema NSClient++ com o seguinte comando.

nsclient++ SysTray

Abra o Gerenciador de Serviços do Windows e clique com o botão direito em NSClient vá para Propriedades e depois na aba 'Log On' e clique a caixa de seleção que diz “Permitir que o serviço interaja com a área de trabalho“. Se ainda não for permitido, marque a caixa para permitir.

Abra o arquivo NSC.INI localizado no diretório C:\NSClient++ e remova o comentário de todos os módulos definidos na seção “módulos”, exceto CheckWMI.dll e RemoteConfiguration.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

Remova o comentário de “allowed_hosts” na seção “Configurações” e defina o endereço IP do seu Nagios Monitoring Server ou deixe em branco para permitir que qualquer host se conecte.

[Settings]
;# 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=172.16.27.41

Remova o comentário de “porta” na seção “NSClient” e defina a porta padrão ‘12489‘. Certifique-se de abrir a porta ‘12489‘ no Firewall do Windows.

[NSClient]
;# NSCLIENT PORT NUMBER
;  This is the port the NSClientListener.dll will listen to.
port=12489

Por fim, inicie o serviço NSClient++ com o seguinte comando.

nsclient++ /start

Se estiver instalado e configurado corretamente, você deverá ver um novo ícone na bandeja do sistema em um círculo amarelo com um ‘M‘ preto dentro.

Etapa 2: configurar o servidor Nagios e adicionar hosts Windows

Agora faça login no Servidor Nagios e adicione algumas definições de objetos nos arquivos de configuração do Nagios para monitorar a nova máquina Windows. Abra o arquivo windows.cfg para edição com o editor Vi.

[root@tecmint]# vi /usr/local/nagios/etc/objects/windows.cfg

Uma amostra de definição de host do Windows já definida para a máquina Windows, você pode simplesmente alterar a definição de host como os campos host_name, alias e address para os campos apropriados valores da sua máquina Windows.

###############################################################################
###############################################################################
#
HOST DEFINITIONS
#
###############################################################################
###############################################################################

Define a host for the Windows machine we'll be monitoring
Change the host_name, alias, and address to fit your situation

define host{
        use             windows-server  ; Inherit default values from a template
        host_name       winserver       ; The name we're giving to this host
        alias           My Windows Server       ; A longer name associated with the host
        address         172.31.41.53    ; IP address of the host
        }

Os seguintes serviços já foram adicionados e habilitados no arquivo windows.cfg. Se desejar adicionar mais algumas definições de serviço que precisam ser monitoradas, você pode simplesmente adicionar essas definições ao mesmo arquivo de configuração. Certifique-se de alterar o host_name para todos esses serviços com host_name definido na etapa acima.

define service{
	use			generic-service
	host_name		winserver
	service_description	NSClient++ Version
	check_command		check_nt!CLIENTVERSION
	}

Add the following service definition to monitor the uptime of the Windows server.

define service{
	use			generic-service
	host_name		winserver
	service_description	Uptime
	check_command		check_nt!UPTIME
	}

Add the following service definition to monitor the CPU utilization on the Windows server and generate a CRITICAL alert if the 5-minute CPU load is 90% or more or a WARNING alert if the 5-minute load is 80% or greater.

define service{
	use			generic-service
	host_name		winserver
	service_description	CPU Load
	check_command		check_nt!CPULOAD!-l 5,80,90
	}

Add the following service definition to monitor memory usage on the Windows server and generate a CRITICAL alert if memory usage is 90% or more or a WARNING alert if memory usage is 80% or greater.

define service{
	use			generic-service
	host_name		winserver
	service_description	Memory Usage
	check_command		check_nt!MEMUSE!-w 80 -c 90
	}

Add the following service definition to monitor usage of the C:\ drive on the Windows server and generate a CRITICAL alert if disk usage is 90% or more or a WARNING alert if disk usage is 80% or greater.

define service{
	use			generic-service
	host_name		winserver
	service_description	C:\ Drive Space
	check_command		check_nt!USEDDISKSPACE!-l c -w 80 -c 90
	}

Add the following service definition to monitor the W3SVC service state on the Windows machine and generate a CRITICAL alert if the service is stopped.

define service{
	use			generic-service
	host_name		winserver
	service_description	W3SVC
	check_command		check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
	}

Add the following service definition to monitor the Explorer.exe process on the Windows machine and generate a CRITICAL alert if the process is not running.

define service{
	use			generic-service
	host_name		winserver
	service_description	Explorer
	check_command		check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
	}

Por fim, remova o comentário do arquivo windows.cfg em /usr/local/nagios/etc/nagios.cfg.

[root@tecmint]# vi /usr/local/nagios/etc/nagios.cfg
Definitions for monitoring a Windows machine
cfg_file=/usr/local/nagios/etc/objects/windows.cfg

Finalmente, verifique se há erros nos arquivos de configuração do Nagios.

[root@tecmint]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

Se o processo de verificação gerar alguma mensagem de erro, corrija esses erros até que o processo de verificação seja concluído sem nenhuma mensagem de erro. Depois de corrigir esses erros, reinicie o serviço Nagios.

[root@tecmint]# service nagios restart

Running configuration check...done.
Stopping nagios: done.
Starting nagios: done.

É isso. Agora vá para a interface da Web do Nagios Monitoring em “http://Your-server-IP-address/nagios” ou “http://FQDN/nagios” e forneça o nome de usuário “nagiosadmin” e senha. Verifique se o Host remoto do Windows foi adicionado e está sendo monitorado.

É isso! por enquanto, em meu próximo artigo mostrarei como adicionar Impressora e Switches ao Nagios Monitoring Server. Se você estiver tendo alguma dificuldade ao adicionar o host Windows ao Nagios. Por favor, comente suas dúvidas através da seção de comentários, até então fique ligado em linux-console.net para mais artigos valiosos desse tipo.