
Apache 로그에서 특정 기간 동안의 초당 평균 요청 수를 계산하려고 합니다.
내가 관심 있는 기간으로 결과를 좁혀 초당 요청 수를 계산할 수 있게 되었는데, 평균을 계산할 수는 없습니다. 이것이 내가 지금까지 가지고 있는 것입니다:
paste "/var/log/apache2/access.log" "/var/log/apache2/access.log.1" | awk ' $4>"[10/Feb/2013:16:48:00" && $4<"[10/Feb/2013:17:15:00" {gsub(/\[/,"");print $4} ' | sort | uniq -c
누구든지 나를 올바른 방향으로 안내할 수 있습니까? 나는 sed나 awk를 언급했지만 다른 것을 사용해 보고 싶습니다.
건배
답변1
이제 초당 요청을 얻는 방법을 알았으므로 "평균"이 무엇을 나타내는지, 즉 60초, 5분, 15분 또는 기타 기간 동안의 평균 요청 수를 결정해야 합니다. 60초를 초과한다고 가정하면 매초마다 메트릭 로그에 기존 스크립트를 추가할 수 있습니다. 그런 다음 다른 스크립트가 매초마다 루프에서 다음을 수행하도록 합니다.
# tail -n 60 | awk '{total = total + $1}END{print total}' / 60 | bc -l
60초 동안 초당 평균 요청 수가 표시됩니다. 5분 안에 완료하려면:
# tail -n 300 | awk '{total = total + $1}END{print total}' / 300 | bc -l
더 자세한 설명이 필요하시면 언제든지 댓글을 남겨주세요.