Não faz muito tempo, eu escrevi um script de instalador automático NRPE realmente interessante que, acredito, pode ajudá-lo se você editá-lo para atender às suas necessidades.
O script inclui muitas verificações internas que estão sendo adicionadas ao arquivo nrpe.cfg
de cada host.
Isso significa que você pode configurar as verificações que são relevantes para você e garantir que cada host que está executando o script também as tenha, isso é sobre o lado do cliente.
Um link para o script: Aqui a>.
Em relação ao lado do servidor (Nagios), você pode instalar um Nagios-Configuration Manager como o NagioSQL, por exemplo, que irá ajudá-lo a gerenciar seus hosts e serviços de uma forma mais conveniente através de uma GUI.
Mais do que isso, para garantir que todos os seus hosts tenham essas verificações exibidas, basta criar um grupo de serviços que inclua todos esses serviços (verificações) que você deseja monitorar e anexar esse grupo de serviços a cada host monitor.
Deixe-me dizer o que fiz na minha empresa, queria ter certeza de que cada servidor fosse monitorado com a verificação check_load
, mas como não temos linha de base de hardware na empresa, o que significa que cada servidor tem especificações diferentes e check_load
é calculado por núcleos / cpus na máquina, adicionei ao módulo "Nagios_client" no nosso servidor Puppet um custom_fact
que identifica quantos processadores existem em uma máquina e configura o Nagios check_load
de acordo. / p>
Então, por exemplo, digamos que server1 tenha 4 cpu's, o que significa que 2.8 load é ideal (0.7 por cpu).
Puppet through facter
identifica o número de cpu's e depois edita nrpe.cfg
do servidor da seguinte forma:
command[check_load]=/usr/local/nagios/libexec/check_load -w 2.9,3.0,3.1 -c 4.0,5.0,6.0
Em seguida, no NagioSQL, por exemplo, você pode usar o "recurso Importar", que permite importar arquivos *.cfg
que serão carregados no Nagios como Hosts e Serviços.
Assim, você pode criar um arquivo host.cfg
e, por meio de um script, duplicá-lo por host que deseja monitorar e apenas alterar o nome do host / ip de cada máquina e isso levaria a outra etapa em configurações mais automáticas.
No meu caso, por exemplo, o Puppet é capaz de entender que ele está sendo executado pela primeira vez em uma máquina e também criou o arquivo host.cfg
relevante no Nagios.
Acredito que com o Puppet + NagioSQL sua administração do Nagios seria uma tarefa muito mais fácil.
Em relação à sua dificuldade em configurar quaisquer verificações ... Você sempre pode escrever seu próprio script e configurar o Nagios para executá-lo para você.
Por exemplo, vamos pegar seu comando check_disk
, é um comando muito rico que permite exibir todos os tipos de dados que são desnecessariamente importantes para você.
Então eu tive o mesmo problema com check_procs
, outro comando muito rico que fornece todos os tipos de dados ... que eu não precisava, então escrevi um script de verificação simples que faz exatamente o que eu preciso e configurou no Nagios.
Exemplo:
#!/bin/bash
# This script checks for running processes for mt.js and adb-server.js
# Script by Itai Ganot 2015 .
process="$1"
appname=$(basename $0)
if [ -z "$1" ]; then
echo "Please specify a process to check"
exit 1
fi
ps -ef | grep "$process" | egrep -v "grep|$appname" &>/dev/null
if [ "$?" -eq "0" ] ; then
stat="OK"
exitcode="0"
msg="Process $process is running"
else
stat="Critical"
exitcode="2"
msg="There are currently no running processes of $process"
fi
pid=$(ps -ef | grep "$process" | egrep -v "grep|$appname" | awk '{print $2}')
echo "$stat: $msg Process PID: $pid"
exit $exitcode
Isso me dá menos informações do que o real check_procs
, mas me fornece apenas as informações de que preciso.
Então, para simplificar, se o comando check_disk
dificultar sua configuração, basta criar seu próprio script, essa é a beleza do Nagios.
Espero ter ajudado você.