Como configurar o NRPE para o monitoramento lateral do cliente
- 3266
- 893
- Ms. Travis Schumm
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
Requisitos de software e convenções usadas
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.
AVISOSempre 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.
- Nossa primeira peça do quebra -cabeça é a própria verificação. Considere o seguinte script simples de bash chamado
check_unread_mail
:
cópia de#!/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
Esta verificação simples usa o
dedo
utilitário para verificar se há correio não lido para o usuárioraiz
. Saída dodedo -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 ogrep -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. - Vamos precisar
dedo
Para fazer esse cheque funcionar. O nome do pacote é o mesmo em todas as distribuições, para que possamos instalá -lo comapt
,zypper
,DNF
ouyum
. - Precisamos definir o cheque executável:
# chmod +x check_unread_mail
- 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. - Vamos chamar nosso comando
check_mail_root
. Vamos colocar outra linha em nossa configuração personalizada do cliente, onde dizemosnrpe
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
- 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 simplesmentenrpe
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
- 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:
cópia de# 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
- Também definimos o cliente como host:
cópia deDefinir host Use Linux-Server host_name de correio-teste-client alias-teste e-mail-client e-mail test-client
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.
- Podemos definir um serviço no host acima usando o comando nagios lateral e o comando do lado do cliente:
cópia deDefinir 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
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.
- 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
- « Restaurar o backup de configuração do PFSense do console usando a unidade USB
- Como instalar Java no RHEL 8 / CENTOS 8 Linux »