Como configurar o NRPE para o monitoramento lateral do cliente

Como configurar o NRPE para o monitoramento lateral do cliente

NRPE, ou executor de plug -in remoto Nagios, é o serviço do lado do cliente de uma configuração de monitoramento. O servidor de monitoramento enviará comandos para o cliente, que ouve passivamente quando não conseguiu trabalho para fazer. Após o comando de entrada, o nrpe Verifica sua configuração local e executa o plug -in configurado com o comando e envia de volta os resultados ao servidor para processamento. Você pode ler mais sobre a instalação do lado do servidor no guia de instalação Nagios, enquanto este guia se concentrará no lado do cliente.

Neste tutorial, você aprenderá:

  • Como instalar o NRPE em distribuições baseadas em Debian/Red Hat
  • Como configurar o NRPE para aceitar comandos do servidor
  • Como configurar uma verificação personalizada no lado do servidor e do cliente
NRPE - Executor de plug -in remoto Nagios

Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Ubuntu 18.04, Fedora 30
Programas Nagios 4.3.4, NRPE 3.2.1
Outro Acesso privilegiado ao seu sistema Linux como raiz ou através do sudo comando.
Convenções # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando
$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Instalando o NRPE em distribuições baseadas em Debian/Red Hat

Instalar o software necessário é simples. Vamos cobrir o Ubuntu, OpenSuse, Fedora e Rhel.

Instalando o NRPE no Ubuntu

No Ubuntu, esse processo é uma linha. O pacote do daemon nrpe, chamado Nagios-nrpe-Server, está nos repositórios padrão.

# instalação apt-get nagios-nrpe-server

Em caso de Ubuntu, o principal arquivo de configuração é /etc/nagios/nrpe.cfg, O diretório que está incluído por padrão é /etc/nagios/nrpe.d/, que pode ser usado para configuração de drop-in. O pacote também adiciona um arquivo de configuração local vazio /etc/nagios/nrpe_local.cfg Por conveniência. Este último não está incluído em RPM distribuições baseadas.



Instalando o NRPE no OpenSUSE

Nas versões recentes do OpenSUSE, o software NRPE também é embalado nos repositórios padrão. Portanto, a instalação é um único comando linux.

# zypper em nrpe

Ao contrário de outras distritos, o OpenSuse coloca o arquivo de configuração principal no caminho /etc/nrpe.cfg.

Instalando o NRPE no Fedora

O projeto Fedora também pacotes nrpe, E assim deve ser acessível a partir dos repositórios padrão. Vamos simplesmente usar DNF para instalação.

# dnf install nrpe

O principal arquivo de configuração será /etc/nagios/nrpe.cfg, e o diretório incluído padrão é /etc/nrpe.d/.

Instalando o NRPE no Red Hat Enterprise Linux

Em caso de Rhel, o nrpe O pacote não está nos repositórios padrão. Você precisará ativar o repositório EPEL para instalar pacotes de lá.

Você pode seguir as etapas descritas no guia para ativar o repositório EPEL, ou importar e publicar o conteúdo dos repositórios EPEL, se você tiver um ambiente fechado com distribuição interna de software. De qualquer maneira, depois que o repositório está disponível para a máquina cliente, o processo de instalação é o mesmo que acima.

# yum install nrpe

Os arquivos de configuração estão no mesmo local que no caso do Fedora.

AVISO
Sempre faça testes cuidadosos antes de ativar um novo repositório para um ambiente de produção. Nesse caso, o EPEL pode conter pacotes que podem ser vistos como atualizações para pacotes de hat hat, resultando em alterações inesperadas de software no sistema ao executar uma atualização completa.

Configurando o NRPE para aceitar comandos do servidor

Para configurar o atendimento ao cliente, poderíamos usar o arquivo de configuração principal, mas eu recomendo usar um arquivo personalizado e colocá -lo em um diretório incluído no arquivo de configuração principal. Dessa forma, atualizações que vieram de uma atualização de pacote em nrpe.cfg pode ser aplicado sem alterações em nossa configuração personalizada.

Também podemos incluir nossos próprios arquivos de configuração personalizados em nossos pacotes personalizados, permitindo a atualização da configuração de monitoramento do cliente de uma maneira centralizada e automatizada. Tendo isso em mente, configuraremos o cliente em /etc/nrpe.D/Custom.cfg em todas as distribuições nos exemplos a seguir.

NRPE não aceita nenhum comando além LocalHost por padrão. Isto é por razões de segurança. Para permitir a execução do comando de um servidor, precisamos definir o endereço IP do servidor como um endereço permitido. No nosso caso, o servidor é um servidor Nagios, com endereço IP 10.101.20.34. Adicionamos o seguinte à configuração do nosso cliente:

permitido_hosts = 10.101.20.34


Vários endereços ou nomes de host podem ser adicionados, separados por vírgulas. Observe que a lógica acima requer endereço estático para o servidor de monitoramento. Usando DHCP No servidor de monitoramento certamente quebrará sua configuração, se você usar o endereço IP aqui. O mesmo se aplica ao cenário em que você usa nomes de host, e o cliente não pode resolver o nome do host do servidor.

Configurando uma verificação personalizada no lado do servidor e do cliente

Para demonstrar os capabilitos de nosso monitoramento, digamos que gostaríamos de saber se o sistema pós -fix local entrega um e -mail em um cliente para o usuário raiz. O correio pode conter um Cronjob saída, algum relatório ou algo que é escrito para o Stderr e é entregue como um correio por padrão. Por exemplo, abrt envia um relatório de acidente para raiz por padrão em uma falha do processo. Não configuramos um relé de email, mas ainda gostaríamos de saber se um e -mail chegar. Vamos escrever uma verificação personalizada para monitorar isso.

  1. Nossa primeira peça do quebra -cabeça é a própria verificação. Considere o seguinte script simples de bash chamado check_unread_mail:
    #!/bin/bash user = root if ["$ (comando -v dedo >>/dev/null; echo $?) "-gt 0]; então echo" desconhecido: dedo utilidade não encontrado "saia 3 fi se [" $ (id "$ user" >> /dev /null; echo $?) "-gt 0]; então echo" desconhecido: usuário $ user não existe "Sair 3 fi ## Verifique se há e -mail se [" $ (dedo -pm "$ user" | cauda -n 1 | grep -ic "não correspondência.")" -gt 0]; Então eco "ok: nenhum e -mail não lido para usuário $ user" saia 0 else eco "aviso: e -mail não lido para usuário $ user" saia 1 fi
    cópia de

    Esta verificação simples usa o dedo utilitário para verificar se há correio não lido para o usuário raiz. Saída do dedo -pm pode variar por versão e, portanto, distribuição, portanto, alguns ajustes podem ser necessários.

    Por exemplo, no Fedora 30, última linha da saída de dedo -pm é “sem correio.”, Mas no OpenSuse Leap 15.1 Seria “sem correio.”(Observe o correio superior). Neste caso o grep -i lida com essa diferença, mas mostra bem que, ao trabalhar com diferentes distribuições e versões, algum trabalho adicional pode ser necessário.

  2. Vamos precisar dedo Para fazer esse cheque funcionar. O nome do pacote é o mesmo em todas as distribuições, para que possamos instalá -lo com apt, zypper, DNF ou yum.
  3. Precisamos definir o cheque executável:
    # chmod +x check_unread_mail
  4. Vamos colocar o cheque no /usr/lib64/nagios/plugins Diretório, o lugar comum para verificações NRPE. Vamos fazer referência a isso mais tarde.
  5. Vamos chamar nosso comando check_mail_root. Vamos colocar outra linha em nossa configuração personalizada do cliente, onde dizemos nrpe Quais comandos aceitamos e o que precisa ser feito quando um determinado comando chega:
    comando [check_mail_root] =/usr/lib64/nagios/plugins/check_unread_mail
  6. Com isso, nossa configuração de cliente está completa. Podemos iniciar o serviço no cliente com Systemd. O nome do serviço é Nagios-nrpe-Server sobre derivados debianos e simplesmente nrpe em outras distribuições.
    # SystemCtl Iniciar nagios-nrpe-server # Systemctl status nagios-nrpe-server ● nagios-nrpe-server.Serviço-Executor de plug-in remoto Nagios carregado: carregado (/lib/systemd/system/nagios-nrpe-server.serviço; habilitado; Preset do fornecedor: habilitado) Ativo: ativo (em execução) desde a Ter. 2019-09-10 13:03:10 CEST; 1min 51s atrás Docs: http: // www.Nagios.Org /Documentação PID principal: 3782 (NRPE) Tarefas: 1 (Limite: 3549) CGROUP: /Sistema.Slice/Nagios-Nrpe-Server.serviço └─3782/usr/sbin/nrpe -c/etc/nagios/nrpe.CFG -F Szept 10 13:03:10 Systemd de e-mail-teste [1]: Executor de plug-in remoto do Nagios iniciado. Szept 10 13:03:10 NRPE de teste de e-mail [3782]: Iniciando Daemon Szept 10 13:03:10 NRPE de teste de e-mail [3782]: Servidor ouvindo em 0.0.0.0 porta 5666. SZEPT 10 13:03:10 NRPE de teste de e-mail [3782]: Servidor ouvindo :: Porta 5666. SZEPT 10 13:03:10 NRPE de teste de e-mail [3782]: Ouvindo conexões na porta 5666


  7. Agora podemos configurar o lado do servidor. Se ainda não tivermos um, podemos definir um comando que chama um controle remoto nrpe instância com um comando como seu único argumento:
    # Este comando executa um programa $ arg1 $ sem argumentos define comando command_name check_nrpe_1arg comando_line $ user1 $/check_nrpe -h $ hostaddress $ -t 60 -c $ arg1 $ 2>/dev/null
    cópia de
  8. Também definimos o cliente como host:
    Definir host Use Linux-Server host_name de correio-teste-client alias-teste e-mail-client e-mail test-client
    cópia de

    O endereço pode ser um endereço IP ou nome de host. No caso posterior, precisamos garantir que ele possa ser resolvido pelo servidor de monitoramento.

  9. Podemos definir um serviço no host acima usando o comando nagios lateral e o comando do lado do cliente:
    Definir Service Use Service Genérico Host_name Mail-Test-Client Service_Description OS: Mail Un-ly para Root Check_Command Check_NRPE_1Arg!check_mail_root
    cópia de

    Esses ajustes podem ser colocados em qualquer arquivo de configuração que as leituras do servidor Nagios na inicialização, mas é uma boa prática manter os arquivos de configuração arrumados.

  10. Verificamos nossa nova configuração de Nagios:
    # nagios -v/etc/nagios/nagios.cfg

    Se "as coisas parecerem bem", podemos aplicar a configuração com um servidor recarregando:

    # Systemctl Recaro Nagios

Conclusão

Se tudo funcionar, em alguns minutos, devemos ver nosso novo cliente aparecer na página da Nagios, com seu novo serviço "OS: não lido e -mail para root" e com status como um "OK" verde (ou seja, se não houver " T Um e -mail não lido para raiz).

Os relatórios dos scripts acima apenas avisando se um novo e -mail chegar de propósito: no ambiente de exemplo, ele não é considerado uma questão crítica, um acidente de aplicativo deve ter gerado um erro crítico antes de um e -mail chegar a respeito. Em segundo plano, o servidor Nagios passa o comando "check_mail_root" para o cliente, onde nrpe Executa nosso script personalizado, que fornece a saída "OK: nenhum correio não lido para raiz do usuário" e o código de saída 0 (que é traduzido por Nagios como "OK" State).

Esta configuração simples tem como objetivo mostrar o fluxo de comandos e dados em uma configuração NAGIOS+NRPE, além de explicar os meios básicos de estender nossos recursos de monitoramento. Os cheques dos contadores (chamados plugins) são escritos em vários idiomas para usos comuns, por exemplo, análise de log de log, verificações de banco de dados, informações de status do servidor da web e assim por diante.

Muitos deles também são pré-embalados nos repositórios acima mencionados, e ainda mais podem ser encontrados nas páginas oficiais de Nagios. Embora esses sejam um ótimo recurso quando precisamos monitorar algo novo, não dê como certo que eles farão exatamente o que você precisa da caixa. Ajustando a configuração e os testes cuidadosos também são necessários neste caso, e se você achar que uma pequena modificação pode adicionar um ótimo recurso/bugfix, não hesite em contribuir com a comunidade de monitoramento. É assim que é construído em primeiro lugar, afinal.

Tutoriais do Linux relacionados:

  • Loops aninhados em scripts de basquete
  • Otimização de desempenho do Linux: ferramentas e técnicas
  • Coisas para instalar no Ubuntu 20.04
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Ubuntu 20.04 Monitoramento do sistema com widgets conky
  • Como enviar notificações de desktop usando o Notify-Snd
  • Ubuntu 22.04 Monitoramento do sistema com widgets conky
  • Melhor ferramenta de monitoramento do sistema para Linux
  • Sistema Linux Hung? Como escapar para a linha de comando e…
  • Linux: Configurar SSH