Nagios + NRPE - solução clientless

Publicado por Egberto Zanon em 08/08/2006

[ Hits: 31.588 ]

 


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

Ativando seu roteamento de internet na hora do boot

Problemas com Bluetooth no Ubuntu 19.04 - a2dp-sink profile connect failed... [Resolvido]

fcitx - Resolvendo problema com acentuação

Atualizando o Pubuntu para versão 9.04

Instalação do Netdata no Fedora 23

  

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