Na verdade, existe uma maneira muito mais fácil de fazer isso.
Download / Documentação: autodrgrep.kl.sh
Comando:
./autodrgrep.kl.sh notchef /tmp/client.log '2016-05-08_08:00:00,2016-05-08_23:00:00' 'INFO' 'a2ensite' 5 10 -show
Explicação:
-
autodrgrep.kl.sh é o nome da ferramenta.
-
notchef é uma opção passada para a ferramenta para informar o que fazer. Neste caso particular, está dizendo à ferramenta que tipo de arquivo de log /tmp/client.log é.
-
/tmp/client.log é, claro, o arquivo de log.
-
2016-05-08_19: 12: 00,2016-05-08_21: 13: 00 é o intervalo de datas a partir do log que você deseja verificar
-
"INFO" é uma das strings que estão nas linhas de registro em que você está interessado.
-
"a2ensite" é outra string na mesma linha na qual você espera encontrar a string "INFO". Especificar essas duas cadeias de caracteres (INFO e a2ensite) isola e processa as linhas que você deseja muito mais rapidamente, principalmente se estiver lidando com um arquivo de log enorme.
-
5 especifica Aviso. Ao especificar 5, você está dizendo ao programa para alertar como WARNING se houver pelo menos 5 ocorrências das strings de pesquisa que você especificou
-
10 especifica crítico. Ao especificar 10, você está dizendo ao programa para alertar como CRITICAL se houver pelo menos 10 ocorrências das strings de pesquisa que você especificou.
-
-show especifica que tipo de resposta você receberá. Ao especificar -shown, você está dizendo que, se algo for encontrado que corresponda aos padrões especificados, a saída será exibida na tela.
Execução de amostra:
# ./autodrgrep.kl.sh notchef /tmp/client.log '2016-05-08_19:12:00,2016-05-08_21:13:00' 'INFO' 'a2ensite' 5 10 -show
[2016-05-08 19:12:58-07:00] INFO: Processing template[/usr/sbin/a2ensite] action create (apache2::default line 90)
[2016-05-08 19:12:58-07:00] INFO: Processing execute[a2ensite default] action run (apache2::default line 24)
[2016-05-08 19:12:58-07:00] INFO: execute[a2ensite default] ran successfully
[2016-05-08 19:13:09-07:00] INFO: Processing execute[a2ensite nagios3.conf] action run (logXrayServer::install line 24)
[2016-05-08 19:13:12-07:00] INFO: execute[a2ensite default] sending restart action to service[apache2] (delayed)
[2016-05-08 19:42:57-07:00] INFO: Processing template[/usr/sbin/a2ensite] action create (apache2::default line 90)
[2016-05-08 19:42:57-07:00] INFO: Processing execute[a2ensite default] action run (apache2::default line 24)
[2016-05-08 19:42:57-07:00] INFO: execute[a2ensite default] ran successfully
[2016-05-08 19:43:08-07:00] INFO: Processing execute[a2ensite nagios3.conf] action run (logXrayServer::install line 24)
[2016-05-08 19:43:11-07:00] INFO: execute[a2ensite default] sending restart action to service[apache2] (delayed)
[2016-05-08 20:12:58-07:00] INFO: Processing template[/usr/sbin/a2ensite] action create (apache2::default line 90)
[2016-05-08 20:12:58-07:00] INFO: Processing execute[a2ensite default] action run (apache2::default line 24)
[2016-05-08 20:12:58-07:00] INFO: execute[a2ensite default] ran successfully
[2016-05-08 20:13:10-07:00] INFO: Processing execute[a2ensite nagios3.conf] action run (logXrayServer::install line 24)
[2016-05-08 20:13:12-07:00] INFO: execute[a2ensite default] sending restart action to service[apache2] (delayed)
[2016-05-08 20:42:59-07:00] INFO: Processing template[/usr/sbin/a2ensite] action create (apache2::default line 90)
[2016-05-08 20:42:59-07:00] INFO: Processing execute[a2ensite default] action run (apache2::default line 24)
[2016-05-08 20:42:59-07:00] INFO: execute[a2ensite default] ran successfully
[2016-05-08 20:43:09-07:00] INFO: Processing execute[a2ensite nagios3.conf] action run (logXrayServer::install line 24)
[2016-05-08 20:43:12-07:00] INFO: execute[a2ensite default] sending restart action to service[apache2] (delayed)
[2016-05-08 21:12:59-07:00] INFO: Processing template[/usr/sbin/a2ensite] action create (apache2::default line 90)
[2016-05-08 21:12:59-07:00] INFO: Processing execute[a2ensite default] action run (apache2::default line 24)
[2016-05-08 21:12:59-07:00] INFO: execute[a2ensite default] ran successfully
23
2---78720---23---ATWFILF---(2016-05-08)-(19:12)---(2016-05-08)-(21:13) SEAGM
E se o intervalo de datas ou o intervalo de tempo especificados pelo usuário não estiverem no log?
Cada execução do comando acima sempre terá uma linha (última linha da saída) que diz "ATWFILF" ou "ETWNFILF".
-
ATWFILF significa que o período ou intervalo de tempo real que você solicitou pesquisado foi encontrado no log. Então isso é muito bom.
-
ETWNFILF significa que o período ou intervalo de tempo real que você solicitou pesquisado NÃO foi encontrado no log. Nesse caso, o horário mais próximo do horário especificado será detectado e usado em seu lugar.