Fala pessoal…
Continuando com os posts sobre nagios, hoje vou explicar (ou tentar ) como se configura o NSClient.
O NSClient é um cliente de monitoramento remoto (assim como o nrpe) para máquinas windows. Com ele é possível monitorar uso de cpu, memória, uso de discos, processos…
Sua instalação é super simples (eu achei que seria um pouco mais cabulosa hehe)
Mãos na massa….
Meu Ambiente:
Windows 2003 server std rc2, com os updates em dia.
Instalando / Configurando
Baixar o nsclient: http://sourceforge.net/projects/nscplus
Dica 1: baixe de acordo com a sua arquitetura do SO, ele tem suporte para sistemas de 64 bits.
Dica 2: Baixe a versão em zip, assim temos mais controle de onde os arquivos são colocados.
Após ter baixado, descompacte o arquivo no C:\ no diretório NSClient++
Depois disso, edite o arquivo c:\NSClient++\NSC.ini
Nesse arquivo, na seção [modules], descomente ( o comantário nele é o ; ) todas MENOS:CheckWMI.dll, RemoteConfiguration.dll e LuaScript.dll
O segundo passo é definir uma senha de acesso ao nsclient, para isso na seção [Settings], defina a senha com a seguinte linha:
password=SUASENHA
Após definir a senha, na mesma seção, defina quem pode acessar o nsclient. A opção allowed_hosts deve ser usada, insira o ip do servidor do nagios separado por “,” (sem espaço entre a virgula e o endereço ip/mascara em bits). exemplo:
allowed_hosts=127.0.0.1/32,172.16.54.10/32
Outro ponto importante é definir a porta que o nsclient irá escutar… na seção [NSClient], remova o comentário da diretiva port ficando:
port=12489
Dica: essa é a porta padrão (tcp), sinta-se a vontade a muda-la, mais não se esqueça de alterar o parametro -p do comando check_nt no arquivo commands.cfg do nagios.
Com o arquivo NSC.ini configurado, agora já podemos instalar o serviço. Para isso é necessário utilizar o prompt de comando
cd \NSClient++nsclient++ /install
O serviço foi instalado, uma mensagem é exibida informando que está ok. Para ter certeza, verifique mesmo se o serviço está na lista de serviços a ser executados na inicialização, vá até o menu executar e digite:
services.msc /s
E procure pelo serviço NSClientpp, se ele apareceu por lá, está ok!
Porém o serviço não está iniciado. Existe duas formas de se fazer isso, pelo prompt de comando, no diretório NSClient++ com o comando:
cd \NSClient++nsclient++ /start
Ou pelo Gerenciador de Serviços que abrimos a pouco, se clicar com o botão direito em seguida na opção Iniciar.
Um processo chamado NSClient++ fica executando e consome +- 10 mb de memória.
Pronto! o agente está instalado na máquina windows… vamos aos testes no servidor do nagios
Testando e Monitorando os serviços
1º Na máquina com o nagios, teste se o plugin check_nt consegue se conectar no windows e obter alguma informação.
check_nt -H 192.168.0.70 -p 12489 -s senha -v CLIENTVERSION
RESPOSTA: NSClient++ 0.3.5.2 2008-09-24
Opções:
-H = HOST, nome ou ip
-p = Porta (definida no arquivo NSC.INI)
-s = Senha (definida no arquivo NSC.ini)
-v = Variavel (o que pode ser checado)
Após conseguir a resposta, vamos setar a senha no template do comando check_nt para que ele consiga obter as respostas…
Com isso em mãos vamos configurar o comando do nagios.
Edite o arquivo /etc/nagios/objects/commands.cfg e procure pela linha
define command{ command_name check_nt command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$ }
E a altere para:
define command{ command_name check_nt command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s SENHA DEFINIDA NO NSC.INI -v $ARG1$ $ARG2$ }
Dica: lembre-se o argumento -p é a porta e o -s é a senha, essa senha foi definida no arquivo NSC.ini na máquina windows.
Feito isso é so declarar a checagem de servicos.
Segue alguns exemplos (os que eu mais uso)
Carga da CPU
define service{ use generic-service host_name windows-server service_description Carga da CPU check_command check_nt!CPULOAD!-l 5,80,90 }
Uso de memória
define service{ use generic-service host_name windows-server service_description Uso da memoria check_command check_nt!MEMUSE!-w 80 -c 90 }
Uso do disco
define service{ use generic-service host_name winserver service_description C:\ Uso do disco check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90 }
Dica: Note que a opção -l c representa a unidade C:, se existir uma unidade E: o comando ficaria -l e