Saudações, senhor. Você poderia me ajudar com a análise do arquivo de log json.
Exemplo de string de registro:
{"ip": "176.122.232.00", "host": "cdn.tv.com", "path": "/dtv/c_1199622700411804.ts", "status": "200", "user_agent": "YX_XY/1.0.1.0.3364", "length": 1392120, "date": "2016-10-09T20:00:00+03:00"}
Estou usando este formato:
goaccess -f access.log --log-format='%^: "%h", %^:%^, %^: "%R", %^: %s, %^: "%u",%^: %b, %^: "%dT%t+%^"' --date-format='%Y-%m-%d' > /report.html
E obtendo
Parsing... [1 734 743] [867 371/s]s]
GoAccess - version 0.8.5 - Dec 5 2014 06:36:01
Fatal error has occurred
Error occured at: goaccess.c - main - 832
Nothing valid to process
O que há de errado com meu formato de log?
Obrigado.
Isso deve funcionar:
goaccess -f access.log --log-format='%^: "%h",%^: "%v",%^: "%U",%^: "%s",%^: "%u",%^: %b,%^: "%dT%t+%^"%^' --date-format='%Y-%m-%d' --time-format='%T' --http-protocol=no --http-method=no
Obrigado pela resposta,
Eu tenho esses erros
goaccess: unrecognized option '--time-format=%T'
(provavelmente tenho uma nova versão)
Então, removi a opção formato de hora e consegui mais 2 erros.
goaccess: option '--http-protocol' doesn't allow an argument
goaccess: option '--http-method' doesn't allow an argument
Quando removi todas essas opções, finalmente recebi meu relatório.
A propósito, você poderia explicar este formato de log para as gerações futuras? :)
Para essas opções não reconhecidas, atualize para a versão mais recente.
Ótima pergunta, uma das partes mais importantes no formato de log é o caractere que segue %^
ou qualquer outro especificador. O analisador irá procurar por esse caractere, então, por exemplo, se eu tiver %^:
, significa que eu quero que o analisador ignore tudo até que um :
seja encontrado. Isso ajuda muito, então não preciso usar um monte de %^
para ignorar campos. A próxima versão irá lidar melhor com isso, exibindo quais tokens não correspondem ao formato de registro, o que deve tornar as coisas mais fáceis.
Para obter uma lista de especificadores de log disponíveis, dê uma olhada nisto .
Comentários muito úteis
Para essas opções não reconhecidas, atualize para a versão mais recente.
Ótima pergunta, uma das partes mais importantes no formato de log é o caractere que segue
%^
ou qualquer outro especificador. O analisador irá procurar por esse caractere, então, por exemplo, se eu tiver%^:
, significa que eu quero que o analisador ignore tudo até que um:
seja encontrado. Isso ajuda muito, então não preciso usar um monte de%^
para ignorar campos. A próxima versão irá lidar melhor com isso, exibindo quais tokens não correspondem ao formato de registro, o que deve tornar as coisas mais fáceis.Para obter uma lista de especificadores de log disponíveis, dê uma olhada nisto .