Páginas

sexta-feira, 22 de maio de 2009

Nagios – Monitorando máquinas windows

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



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
Basicamente é isso, se ficou alguma dúvida envie um e-mail para:

10 comentários:

  1. Romerio, por favor entre em contato com o e-mail victor [ at ] sartori [dot] eti [dot] br

    ResponderExcluir
  2. Amigo, o que fazer quando o comando check_nt acusa não existir, sendo que, no commands.cfg ele está consigurado certinho e sem retornar erro

    ResponderExcluir
  3. Amigo. Quando rodo co comando check_nt ... ele da uma mensagem dizendo que o comando nao existe, mais verifiquei no /usr/lib/nagios/plugins e comando esta la.

    ResponderExcluir
  4. NARRIMAN
    passei pelo mesmo problema , voce entra pasta onde esta o comando e digite ./ e o comando que voce quer

    ResponderExcluir
  5. Não faço ideia, mas deve ser algo como Nagios Send Client

    ResponderExcluir
  6. Este comentário foi removido pelo autor.

    ResponderExcluir
  7. Boa tarde!
    Minha aplicação roda em windows , consigo ate monitora com o plugin check_nt mais só dar para monitora se esta up ou down , mais não consigo identificar o momento que á aplicação trava ou seja o momento Warning ; como posso fazer para monitora isso qual parâmetro devo usar do check_nt ou se exite outro plugin para que possa saber em tempo real qual o status da aplicação " se ok, Warning ou Critical "

    ResponderExcluir
  8. minha aplicação roda em windows usei o check_nt para monitora funcionou mais só me dar os parâmetros de up e down , mais não me avisa quando esta Warning existe algum parâmetro d check _nt ou algum outro plugin que resolva esse meu problema " a aplicação é um executável "
    RESPONDER


    ResponderExcluir