Apacheログでawkまたはsedを使用して1秒あたりの平均要求を計算する方法

Apacheログでawkまたはsedを使用して1秒あたりの平均要求を計算する方法

Apacheログで特定の期間の1秒あたりの平均要求数を計算しようとしています。

私は関心のある期間に結果を絞り込んで1秒あたりの要求数を計算することができましたが、平均を計算することはできません。これが私が今まで持っているものです:

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

1秒あたりの要求を取得する方法がわかったので、「平均」が何を表すか、つまり60秒、5分、15分、またはその他の期間の平均要求数を決定する必要があります。 60秒を超えると仮定すると、毎秒メトリックログに既存のスクリプトを追加できます。その後、他のスクリプトが毎秒ループ内で次のことを行うようにします。

# tail -n 60 | awk '{total = total + $1}END{print total}' / 60 | bc -l

60秒間、1秒あたりの平均リクエスト数が表示されます。 5分で完了するには:

# tail -n 300  | awk '{total = total + $1}END{print total}' / 300 | bc -l

詳細な説明が必要な場合は、いつでもコメントを残してください。

おすすめ記事