web-dev-qa-db-ja.com

Apacheで同時ユーザーの数を取得しますか?

Apacheが同時にサービスを提供している同時ユーザー数を知りたいですか?統計ツールをインストールすることでできますか? webalizerを試しましたが、ユーザー数ではなく、1時間ごとのヒットのみが表示されます。または、いくつかのツールを使用してログを分析する必要がありますか?

1
eroy4u

Apache Top をご覧ください。

または、Apacheが実行されているポート(通常は80)の現在の接続数を確認するだけのコマンドラインから独自のスクリプトを作成できます。次に例を示します。

netstat -plan | grep :80

または、単に番号が必要な場合:

netstat -plan | grep :80 | wc -l

これは、理想的にはcronを介して行うことができます(たとえば、毎分実行し、接続数、時間の平均などを確認します)。

4
cegfault

ここに私が使用する小さなスクリプトがあります。 SSLベースのサイトがあるため、ポート443でアクティブな接続を確認しています。監視する内容に応じて、443を80に更新することをお勧めします。

#!/bin/bash

[ $# -eq 0 ] && { echo "Usage: $0 <refresh time>" ; exit 1; }

while true
do
        clear;
        echo "Number of Active Connections:";
        netstat -an | grep 443 | grep tcp | grep -v 0.0.0.0 | grep -v ::: | cut -d':' -f2 | cut -d' ' -f12 | sort | uniq | wc -l;
        echo;
        echo "Current Active IP's:";
        netstat -an | grep 443 | grep tcp | grep -v 0.0.0.0 | grep -v ::: | cut -d':' -f2 | cut -d' ' -f12 | sort | uniq;
        sleep $1;
done

覚えておくべきことの1つは、VIPの背後にいる場合、Webサーバーには1つのIP(VIPからのIP)しか表示されないということです。このスクリプトは一意のIPをチェックしているため、常に1つの接続が表示されます。これを解決する1つの方法は、テキスト「| uniq」を削除することです。

1
Neil Sorathia