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.
- Como instalar o Nagios 4.0.1 no RHEL/CentOS 6.x/5.xe Fedora 19/18/17
- Adicionar host Linux ao servidor de monitoramento Nagios
Para monitorar Máquinas Windows você precisará seguir vários passos e são eles:
- Instale o complemento NSClient++ na máquina Windows.
- Configure o servidor Nagios para monitorar a máquina Windows.
- Adicione novas definições de host e serviço para monitoramento de máquinas Windows.
- 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.
- 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.
- 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.
- 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.