Nagios + NRPE - solução clientless

Publicado por Egberto Zanon em 08/08/2006

[ Hits: 31.273 ]

 


Nagios + NRPE - solução clientless



Olá a todos, espero que esta dica seja útil àqueles que querem monitorar servidores e estações Windows pelo Nagios.

O nrpe_nt é um plugin que possibilita essa integração do Nagios com o Windows, mas você precisa instalar programas clientes nas estações que deseja monitorar.

A solução apresentada aqui usa scripts em WMI que possibilitam a criação de um "proxy NRPE", centralizando essa solução e minimizando a configuração.

Antes de mais nada:

Estou supondo que você já possui seu Nagios configurado. Caso precise de ajuda para configurá-lo, acesse Melecio.org. Apesar de ser um tutorial para BSD, é muito bom para se entender como o Nagios funciona.

Usei o Fedora Core 5, mais os pacotes:
  • nagios 2.4
  • nrpe-2.3-2.2
  • nt-pure-WMI

Você precisará instalar o NRPE apenas em um servidor, os scripts WMI permitem que você monitore os outros servidores Windows sem a necessidade da instalação do cliente em todas as máquinas.

Configurando o Nagios NRPE_NT no Windows


Fala o download o arquivo nrpe_nt-pure-WMI.zip no link:
Extraia o conteúdo desse arquivo na raiz do sistema (C:\nrpe_nt), acesso o diretório e edite o NRPE.CFG, alterando as seguintes linhas:

#PORTA TCP
server_port=5666
# IP LOCAL DO WINDOWS
#EX: server_address=A.B.C.D

server_address=192.168.1.1
#IP DO SERVIDOR NAGIOS
#EX: server_address=A.B.C.E

allowed_hosts=192.168.1.2

Depos, no Prompt do DOS, execute:

> nrpe_nt -i

Dessa maneira, o NRPE_NT será instalado como um serviço local, e você poderá iniciá-lo a partir do MMC Serviços do Windows.

Pronto! No Windows o serviço foi instalado e configurado, agora, é preciso configurar o seu servidor Nagios para que ele seja capaz de reconhecer esses comandos.

Configurando o NRPE no servidor Nagios


Faça o download do nrpe:
Instale-o.

No servidor Nagis você deverá editar o arquivo check_commands.cfg, adicionando as seguintes linhas (note que o IP descrito em todas as linhas é o IP do servidor Windows com o nrpe_nt instalado:

######## check_commands.cfg #####

#nagios-wmi-cpu check command definition

  define command {
  command_name check_wmi_cpu
  command_line $USER1$/check_nrpe -H 192.168.1.1 -c check_cpu_auth -a $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$
}
#nagios-wmi-disk check command definition
define command {
  command_name check_wmi_disk
  command_line $USER1$/check_nrpe -H 192.168.1.1 -c check_disk_auth -a $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $ARG4$ $USER9$
}
#nagios-wmi-disks check command definition
  define command {
  command_name check_wmi_disks
  command_line $USER1$/check_nrpe -H 192.168.1.1 -c check_disk_auth -a $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$
}
#nagios-wmi-mem check command definition
define command {
  command_name check_wmi_mem
  command_line $USER1$/check_nrpe -H 192.168.1.1 -c check_mem_auth -a $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$
}
#commands check_wmi_printque
define command {
  command_name check_wmi_printque
  command_line $USER1$/check_nrpe -H 192.168.1.1 -c check_printque_auth -a $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$
}
#nagios-wmi-proc check command definition
define command {
  command_name check_wmi_procs
  command_line $USER1$/check_nrpe -H 192.168.1.1 -c check_process_auth -a $HOSTADDRESS$ $ARG1$ $ARG2$ $USER9$
}
#commands check_wmi_swap
define command {
  command_name check_wmi_swap
  command_line $USER1$/check_nrpe -H 192.168.1.1 -c check_swap_auth -a $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$
}
#nagios-wmi-exchange-mailbox-receiveq check command definition
define command {
  command_name check_wmi_exchange_mailbox_receiveq
  command_line $USER1$/check_nrpe -H 192.168.1.1 -c check_exc_mbx_rcvq_auth -a $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$
}
#nagios-wmi-exchange-mailbox-sendq check command definition
define command {
  command_name check_wmi_exchange_mailbox_sendq
  command_line $USER1$/check_nrpe -H 192.168.1.1 -c check_exc_mbx_sendq_auth -a $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$
}
#commands check_wmi_exchange_mta_workq
define command {
  command_name check_wmi_exchange_mta_workq
  command_line $USER1$/check_nrpe -H 192.168.1.1 -c check_exc_mta_workq_auth -a $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$
}
#commands check_wmi_exchange_public_recieveq
define command {
  command_name check_wmi_exchange_public_receiveq
  command_line $USER1$/check_nrpe -H 192.168.1.1 -c check_exc_pub_rcvq_auth -a $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$
}
#commands check_wmi_exchange_public_sendq
define command {
  command_name check_wmi_exchange_public_sendq
  command_line $USER1$/check_nrpe -H 192.168.1.1 -c check_exc_pub_sendq_auth -a $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$
}
#nagios-wmi-mssql-buffer-cache-hit check command definition
define command {
  command_name check_wmi_mssql_buff_cache_hit
  command_line $USER1$/check_nrpe -H 192.168.1.1 -c check_mssql_buf_cache_hit_auth -a $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$
}
#nagios-wmi-mssql-latch-waits check command definition
define command {
  command_name check_wmi_mssql_latch_waits
  command_line $USER1$/check_nrpe -H 192.168.1.1 -c check_mssql_latch_waits_auth -a $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$
}
#nagios-wmi-mssql-lock-wait-time check command definition
define command {
  command_name check_wmi_mssql_lock_wait_time
  command_line $USER1$/check_nrpe -H 192.168.1.1 -c check_mssql_lock_wait_time_auth -a $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$
}
#nagios-wmi-mssql-log-growth check command definition
define command {
  command_name check_wmi_mssql_log_growth
  command_line $USER1$/check_nrpe -H 192.168.1.1 -c check_mssql_log_growth_auth -a $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $ARG4$ $USER9$
}
#nagios-wmi-mssql-log-used check command definition
define command {
  command_name check_wmi_mssql_log_used
  command_line $USER1$/check_nrpe -H 192.168.1.1 -c check_mssql_log_used_auth -a $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $ARG4$ $USER9$
}
#nagios-wmi-mssql-transactions check command definition
define command {
  command_name check_wmi_mssql_transactions
  command_line $USER1$/check_nrpe -H 192.168.1.1 -c check_mssql_transactions_auth -a $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $ARG4$ $USER9$
}
############
### EOF ###
############

Edite o arquivo resources.cfg adicione a linha:

$USER9$=SENHADOADMINISTRADOR

Agora um exemplo de como adicionar essa checagem ao seu checkservices.cfg:

define service {
        use                             generic-service
        host_name                       estacao1
        service_description             CPU
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           5
        retry_check_interval            1
        contact_groups                  administradores
        notification_interval           0
        notification_period             24x7
        notification_options            w,u,c,r
        check_command                  check_wmi_cpu!estacao1!30!70!adminlocal
}

Dicas


Note que no nrpe.cfg temos duas versões de cada item monitorado, alguns usam uma autenticação, enquanto o outro assume que o servidor nrpe possui a mesma senha de administrador dos servidores monitorados, e por isso não são passadas informações para isso.

Nas definições do checkcommand acima todos usam a autenticação (por isso o _auth no final dos nomes dos scripts que acessam o servidor nrpe).

O último comando passado sempre será o nome do usuário, já o argumento password é passado pelo $USER9$, que fica armazenado no resources.cfg. Por isso armazenar este arquivo em um subdiretório seguro.

Uma vez que o servidor nrpe estiver no ar e as configurações do check command definidas, você poderá configurar seus serviços monitorados no services.cfg.

Cada um dos plugins pode ser executado via linha de comando e, caso precise de ajuda, faça-o com o argumento -help.

Antes de configurar o Nagios, sugiro que rode-os pelo prompt primeiro, e depois parta para a configuração.

Boa sorte.

Links


Fontes


Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Configurando o cron para enviar e-mail de output para o root (Debian)

Configurando a placa rede para pegar o IP automaticamente no Debian

Alterando o MAC addrres de sua placa de rede

Configurando Bluetooth no Debian GNU/Linux

Desativando popups "O sistema detectou um problema no aplicativo" no Ubuntu

  

Comentários
[1] Comentário enviado por Flare em 24/08/2006 - 12:04h

Parabens pela dica, é muito dificil achar material mais especifico. Vou testar assim que possivel e mais uma vez obrigado
:)

[2] Comentário enviado por energumino em 12/03/2008 - 10:40h

consigo monitorar I/O de disco através do NRPE...pois preciso ter estas informações de um servidor windows 2003.
Se alguem puder me dar um caminho, agradeço.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts