ApacheWebサーバーの負荷とページの統計を監視する方法


この記事では、CentOS、RHEL、FedoraなどのLinuxディストリビューションでmod_statusモジュールを使用してApacheWebサーバーの負荷と要求を監視する方法を学習します。

mod_statusとは何ですか?

mod_statusは、Webブラウザを介してアクセスできるHTMLインターフェイスを使用してWebサーバーの負荷と現在のhttpd接続を監視するのに役立つApacheモジュールです。

Apacheのmod_statusは、を含むWebサーバーの現在の統計に関する情報を含むプレーンなHTMLページを表示します。

  • Total number of incoming requests
  • Total number of bytes and counts server
  • The CPU usage of Webserver
  • Server Load
  • Server Uptime
  • Total Traffic
  • Total number of idle workers
  • PIDs with the respective clients and many more.

デフォルトのApacheプロジェクトでは、サーバー統計ページが一般に公開されていました。忙しいウェブサイトのステータスページのデモを見るには、にアクセスしてください。

  • https://status.apache.org/

この記事では、次のテスト環境を使用して、いくつかの実用的な例とスクリーンショットを使用してmod_statusについて詳しく調べました。

  1. Operating System – CentOS 8/7
  2. Application – Apache Web Server
  3. IP Address – 5.175.142.66
  4. DocumentRoot – /var/www/html
  5. Apache Configuration file – /etc/httpd/conf/httpd.conf
  6. Default HTTP Port – 80 TCP
  7. Test Configuration Settings – httpd -t

このチュートリアルの前提条件は、基本的なApacheサーバーをインストールして構成する方法をすでに知っている必要があることです。 Apacheのセットアップ方法がわからない場合は、独自のApacheWebサーバーのセットアップに役立つ可能性のある次の記事をお読みください。

  1. Create Your Own Webserver and Hosting A Website in Linux

Apacheでmod_statusを有効にする方法

デフォルトのApacheインストールでは、mod_statusが有効になっています。そうでない場合は、Apache構成ファイルで必ず有効にしてください。

[[email protected] ~]# vi /etc/httpd/conf/httpd.conf

「mod_status」という単語を検索するか、を含む行が見つかるまで下にスクロールし続けます。

#LoadModule status_module modules/mod_status.so

「LoadModule」の先頭に「#」文字が表示されている場合は、mod_statusが無効になっていることを意味します。 「#」を削除してmod_statusを有効にします。

LoadModule status_module modules/mod_status.so

ここで、もう一度「場所」という単語を検索するか、次のようなmod_statusのセクションが見つかるまで下にスクロールします。

# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
# Change the ".example.com" to match your domain to enable.
#
#<Location /server-status>
#    SetHandler server-status
#    Order deny,allow
#    Deny from all
#    Allow from .example.com
#</Location>

上記のセクションで、必要に応じて、Locationディレクティブ、SetHandler、およびディレクトリ制限の行のコメントを解除します。たとえば、Order Allow、denyを使用してシンプルにしていますが、すべての人に許可されています。

<Location /server-status>
   SetHandler server-status
   Order allow,deny
   Deny from all
   Allow from all 
</Location>

<スパンスタイルu003d色:

したがって、基本的には、Apacheで構成したドメインの仮想ホストごとに同じ構成を定義する必要があります。たとえば、mod_statusの仮想ホスト構成は次のようになります。

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www/html/example.com
    ServerName example.com
    ErrorLog logs/example.com-error_log
    CustomLog logs/example.com-access_log common
<Location /server-status>
   SetHandler server-status
   Order allow,deny
   Deny from all
   Allow from example.com 
</Location>
</VirtualHost>

「ExtendedStatus」設定は、CPU使用率、1秒あたりのリクエスト数、総トラフィックなどの情報を統計ページに追加します。これを有効にするには、同じhttpd.confファイルを編集して「Extended」という単語を検索し、行のコメントを解除して設定します。 ExtendedStatusディレクティブのステータスは「オン」です。

# ExtendedStatus controls whether Apache will generate "full" status
# information (ExtendedStatus On) or just basic information (ExtendedStatus
# Off) when the "server-status" handler is called. The default is Off.
#
ExtendedStatus On

ここで、Apacheサーバーステータスページを正しく有効にして構成したことを確認します。次のコマンドを使用して、httpd.conf構成のエラーを確認することもできます。

[[email protected] ~]# httpd -t

Syntax OK

構文に問題がなければ、httpdサービスを再起動できます。

[[email protected] ~]# service httpd restart
OR
[[email protected] ~]# systemctl restart httpd
Stopping httpd:                                          [  OK  ]
Starting httpd:                                          [  OK  ]

Apacheステータスページには、次のURLの「/ server-status」を使用してドメイン名からアクセスできます。

http://serveripaddress/server-status

OR

http://serev-hostname/server-status

ExtendedStatusを有効にすると、次のページのようなものが表示されます。

上記のスナップショットでは、サーバーの稼働時間に関するすべての情報を表示するHTMLインターフェースが、それぞれのクライアント、つまりアクセスしようとしているページでIDを処理していることがわかります。

また、状況をよりよく理解するのに役立つステータスを表示するために使用されるすべての略語の意味と使用法も示しています。

また、毎秒(たとえば、5秒)ごとにページを更新して、更新された統計を表示することもできます。自動更新を設定するには、URLの最後に「?refresh u003d N」を追加してください。ここで、Nは、ページを更新する秒数に置き換えることができます。

http://serveripaddress/server-status/?refresh=5

リンクまたはlynxと呼ばれる特別なコマンドラインブラウザを使用して、コマンドラインインターフェイスからApacheステータスページを表示することもできます。以下に示すように、yumと呼ばれるデフォルトのパッケージマネージャーユーティリティを使用してそれらをインストールできます。

# yum install links

OR

# yum install lynx

をインストールしたら、次のコマンドを使用して、端末で同じ統計情報を取得できます。

[[email protected] ~]# links http://serveripaddress/server-status
OR
[[email protected] ~]# lynx http://serveripaddress/server-status
OR
[[email protected] ~]#  /etc/init.d/httpd fullstatus
                     Apache Server Status for localhost
   Server Version: Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3
   Server Built: Aug 13 2013 17:29:28

   --------------------------------------------------------------------------
   Current Time: Tuesday, 14-Jan-2014 04:34:13 EST
   Restart Time: Tuesday, 14-Jan-2014 00:33:05 EST
   Parent Server Generation: 0
   Server uptime: 4 hours 1 minute 7 seconds
   Total accesses: 2748 - Total Traffic: 9.6 MB
   CPU Usage: u.9 s1.06 cu0 cs0 - .0135% CPU load
   .19 requests/sec - 695 B/second - 3658 B/request
   1 requests currently being processed, 4 idle workers
 .__.__W...

   Scoreboard Key:
   "_" Waiting for Connection, "S" Starting up, "R" Reading Request,
   "W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
   "C" Closing connection, "L" Logging, "G" Gracefully finishing,
   "I" Idle cleanup of a worker, "." Open slot with no current process

Srv PID     Acc    M CPU   SS  Req Conn Child Slot     Client        VHost             Request
0-0 -    0/0/428   . 0.30 5572 0   0.0  0.00  1.34 127.0.0.1      5.175.142.66 OPTIONS * HTTP/1.0
                                                                               GET
1-0 5606 0/639/639 _ 0.46 4    0   0.0  2.18  2.18 115.113.134.14 5.175.142.66 /server-status?refresh=5
                                                                               HTTP/1.1
                                                                               GET
2-0 5607 0/603/603 _ 0.43 0    0   0.0  2.09  2.09 115.113.134.14 5.175.142.66 /server-status?refresh=5
                                                                               HTTP/1.1
3-0 -    0/0/337   . 0.23 5573 0   0.0  0.00  1.09 127.0.0.1      5.175.142.66 OPTIONS * HTTP/1.0
                                                                               GET
4-0 5701 0/317/317 _ 0.23 9    0   0.0  1.21  1.21 115.113.134.14 5.175.142.66 /server-status?refresh=5
                                                                               HTTP/1.1
                                                                               GET
5-0 5708 0/212/213 _ 0.15 6    0   0.0  0.85  0.85 115.113.134.14 5.175.142.66 /server-status?refresh=5
                                                                               HTTP/1.1
6-0 5709 0/210/210 W 0.16 0    0   0.0  0.84  0.84 127.0.0.1      5.175.142.66 GET /server-status
                                                                               HTTP/1.1
7-0 -    0/0/1     . 0.00 5574 0   0.0  0.00  0.00 127.0.0.1      5.175.142.66 OPTIONS * HTTP/1.0

   --------------------------------------------------------------------------

    Srv  Child Server number - generation
    PID  OS process ID
    Acc  Number of accesses this connection / this child / this slot
     M   Mode of operation
    CPU  CPU usage, number of seconds
    SS   Seconds since the beginning of the most recent request
    Req  Milliseconds required to process most recent request
   Conn  Kilobytes transferred this connection
   Child Megabytes transferred this child
   Slot  Total megabytes transferred this slot
   --------------------------------------------------------------------------

    Apache/2.2.15 (CentOS) Server at localhost Port 80

結論

Apacheのmod_statusモジュールは、Webサーバーのアクティビティのパフォーマンスを監視するための非常に便利な監視ツールであり、問題自体を強調表示することができます。詳細については、より成功したWebサーバー管理者になるのに役立つステータスページをお読みください。

  1. Apache mod_status Homepage

今のところmod_statusは以上です。今後のチュートリアルで、Apacheに関するいくつかのトリックとヒントを考え出します。それまではオタクのままでTecmint.comに注目し、貴重なコメントを追加することを忘れないでください。