Monitoramento de servidor customizado: Monitorando o número de arquivos específicos no diretório específico

1

Eu tenho muitos servidores rodando ao vivo. Cada servidor tem muitos aplicativos. Cada aplicativo possui um diretório como /etc/somedir1 , /etc/somedir2 , em que cada diretório possui muitos arquivos .html . O nível ao vivo do aplicativo é mostrado como quantos arquivos .html disponíveis. Quanto mais melhor. Os arquivos .html serão apagados de tempos em tempos. 144 ou menos .html arquivos considerados críticos, e eu adicionarei manualmente mais arquivos .html .

O número do servidor está crescendo, será difícil no futuro.

Eu quero que todos os servidores monitorados por um servidor (como M / Monit), com base em quantos .html arquivos deixados nos diretórios específicos.

O M / Monit parece ótimo, mas a AFAIK, ele monitora apenas o servidor ao vivo e seus serviços relacionados.

Uma coisa que posso pensar é ls | wc -l e, em seguida, scp no servidor de monitoramento. Mas eu não sei como fazê-lo exibido no servidor do monitor como em outras ferramentas de monitoramento de servidores.

Todas as ideias são bem-vindas

    
por mainkas 18.08.2011 / 18:04

5 respostas

2

Algumas opções para você:

  • Nagios + nrpe

Escreva um script simples para contar o número de arquivos * .html no diretório especificado:

COUNT='ls "$1"/*.html | wc -l'
if [ $COUNT -lt $3 ]; then
    echo "OK - The number of html files in $1 is $COUNT"
    exit 0
elif [ $COUNT -ge $3 -a $COUNT -lt $5 ]; then
    echo "Warning - The number of html files in $1 is $COUNT""
    exit 1
else
    echo "Critical - The number of html files in $1 is $COUNT""
    exit 2
fi

e chame-o em nrpe.conf com:

command[number_of_html_files]=/path/to/html_count.sh /etc/somedir1 -w 121 -c 141
  • Ganglia + Gmetric:

Crie um arquivo html_count_gmetric.sh como abaixo:

/usr/bin/gmetric --name html_count --value 'ls "$1"/*.html | wc -l' --type uint32 --unit files

e coloque-o em um cron job:

* * * * * /path/to/html_count_gmetric.sh /etc/somedir1

ele criará um gráfico para você.

    
por 18.08.2011 / 18:49
2

Nós consideramos o uso de monit, mas acabamos com o Nagios, mais capaz, mas mais difícil de configurar. O Nagios pode certamente fazer o que você quer, embora provavelmente escrevendo um script de shell que emite o tipo certo de códigos de saída.

    
por 18.08.2011 / 18:47
1

Sem saber com o que você está monitorando, é difícil dizer.

O que você pode fazer é usar o snmpd para monitorá-lo. Você pode dizer para chamar um script e retornar o resultado como um valor snmp. Usar esse método provavelmente seria o mais fácil, especialmente se você já tiver o snmpd configurado nele.

    
por 18.08.2011 / 18:30
1

como outros já mencionaram, escrever um plugin nagios para isso seria trivial. Alternativamente, se você não quiser criar uma instância nagios, escreva um pequeno script perl / python para observar os diretórios com inotify, mantendo o controle das contagens de arquivos e emitindo sinais apropriados (flares, etc) conforme necessário.

    
por 18.08.2011 / 20:08
0

como se scp para todos os servidores e, em seguida, armazenar os resultados do wc em files / database / rrd / etc. executando o cronjob a cada x minutos. e no lado de monitoramento você apenas mostra os resultados dos arquivos / database / rrd

    
por 18.08.2011 / 18:26