|
From: | Julio C. Neves |
Subject: | Re: [shell-script] Script para monitorar |
Date: | Fri, 4 May 2018 17:14:12 -0300 |
Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico
Então,eu tenho que ver uma forma dele pegar somente as informações mais recentes. Talvez o tail ajude.Exemplo: pegue somente 100 últimas linhas do último horário e jogue o resultado num arquivo. Se o resultado NÃO FOR IGUAL da penultima busca, sobrescreva o arquivo anterior com o novo resultado.Em 4 de maio de 2018 06:41, willian mayan address@hidden [shell-script] <address@hidden.br > escreveu:A parte do tempo eu adiciono a chamada do meu script no cron, assim não vai ter uma instrução sleep rodando. Se temos o cron porque não usar? :)Fala pessoal blz?Eu particularmente quando tenho algo que precisa ser monitorado em arquivo escrevo o script para me trazer somente um(ou vários) resultado e executar uma ação( nesse caso enviar email).# .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed
10 * * * * /path/meu_script.shEm 3 de maio de 2018 23:51, Maik Alberto address@hidden [shell-script] <address@hidden.br > escreveu:
só complementando para que não dispare em toda consulta após atingir os 10 primeiros erros.
LOG=/tmp/log
while [ 1 ];
do
sleep 600
if [[ $( grep -c "ERRO" $LOG ) -ge 10 ]]; then
#envia email
mv $LOG $LOG$(date +%s)
> $LOG
fi
done
De: address@hidden.br <address@hidden.br > em nome de Tiago Peczenyj address@hidden [shell-script] <address@hidden.br >
Enviado: quinta-feira, 3 de maio de 2018 19:10
Para: address@hidden.br
Assunto: Re: [shell-script] Script para monitorar--Ola
Existem varias formas de fazer isso, entretanto um script feito a mão pode não ser a ferramenta mais adequada.
Vc quer algo que monitore e alerte em caso de ocorrências, se for possível utilizar a stack ELK ( elasticsearch, logstash e kibana ) vc tem uma imensa flexibilidade mas demanda tempo pra configurar e usar (talvez precise estruturar os seus logs, emitindo em json por exemplo) exemplo:
Get started with the documentation for Elasticsearch, Kibana, Logstash, Beats, X-Pack, Elastic Cloud, Elasticsearch for Apache Hadoop, and our language clients.
Para algo mais simples: dado que vc pode executar o script via crontab a cada x tempos, bastaria:
Veja se a saida do grep -c ajuda
$ grep -c “expressão de erro” /var/log/seuarquivo.log
Se ajudar, bastaria fazer
if [[ $( grep ... ) -ge 10 ]]; then# envia emailfi
Mas isso é uma versão simplificada. Na prática vc tem q pensar onde procurar e como
Em qui, 3/05/2018 às 23:25, Cesar Rodrigues address@hidden [shell-script] <address@hidden.br > escreveu:
Boa noite, pessoal!
Queria uma luz da galera do grupo...
Estou precisando criar um script que busque na hora atual ou a cada 10 minutos, a quantidade de ERROS em um determinado arquivo de log, e se tiver uma quantidade maior que x erros, enviar um email notificando o problema.
Alguém aqui já fez isso ou tem uma ideia boa?
Desde já agradeço!
--Willian.Mayan
GNU/Linux user:#536163
[Prev in Thread] | Current Thread | [Next in Thread] |