Apache監視をプラグインで簡単に強化できるツール「Site24x7」

Apache HTTP Server (Apache HTTPd)は、簡単にカスタマイズできる機能とオープンソースを備えたWebサーバーソフトウェアで、幅広く使用されています。

Apacheを使用してパフォーマンスを監視する上で、パフォーマンスの低下問題とボトルネックへの認識は重要となります。プラグインを使用すれば、リアルタイムのパフォーマンストレンドと履歴メトリクスを単一ダッシュボードで確認することができます。このページでは、以下の内容について説明します:

パフォーマンス監視メトリクス

Requests per Second

req_per_sec メトリクスは、Webサーバーが1秒間に処理しているHTTPリクエストの合計数を表示します。

Busy Workers

Use the metric busy_workers メトリクスは、HTTPリクエストをアクティブに処理しているプロセスの合計数を表示します。

Idle Workers

idle_workers メトリクスは、HTTPリクエストを待機しているアイドルワーカーおよびアイドルプロセスの合計数です。アイドルプロセス値が低い場合や0の場合は、サーバーはすべてのプロセスを使い果たしているため、古いリクエストが完了するまで新しいリクエストを保留する必要があります。

Uptime

The metric uptime メトリクスは、サーバーが稼働している合計時間を表示します。

Bytes per Second

bytes_per_sec メトリクスは、Webサーバーが1秒間に転送するデータの合計量を表示します。

CPU Load

Use the metric cpu_load メトリクスは、Webサーバーが使用したCPUの合計割合を表示します。

Bytes per Request

bytes_per_reqメトリクスは、各HTTPリクエストごとに転送される平均バイト数を表示します。

Total Accesses

total_accessessメトリクスは、サーバー上のアクセス合計数を表示します。

前提条件

  • このプラグインはPythonベースであり、Pythonバージョン2.7以降をサポートしています。webサーバーの監視では、バージョン2.7では urllib2 モジュールを使用し、バージョン3.0以降では urllib モジュールを使用します。

Apacheの設定

以下手順に従ってwebサーバーを設定し、パフォーマンスの監視を開始します。システムに関係なく、設定ファイルに変更を加える際には、以前の設定に戻す場合に備えて設定ファイルのバックアップを必ず保存してください。

LoadModule status_module /usr/lib/apache2/modules/mod_status.so
<Location /server-status>
SetHandler server-status
AuthUserFile /passwordlocation
AuthType Basic
AuthName <USER_NAME>
Require user <USER_NAME>
</Location>
ExtendedStatus On
  • ステータスモジュールの設定ファイルを編集します: /etc/apache2/mods-enabled/status.load
  • 以下の行で、コメントアウトされていることを確認します。
  • ステータスモジュールの設定ファイルを編集します: /etc/apache2/mods-enabled/status.conf
  • 以下では、URI/server-statusを使用してlocalhostからStatusページにアクセスできるようにします。
    <Location /server-status>
    SetHandler server-status
    Require local
    </Location>
  • 認証ユーザおよび特定のIPアドレスへのアクセスを制限するには:
  • 現在実行中リクエストに関する追加データをワーカーごとに追跡するには、ExtendedStatusが有効になっていることを確認します。
  • サーバーを再起動します。

  • portの設定ファイルを編集します:
    For Ubuntu/Debian: Edit /etc/apache2/ports.conf
    For Centos/Redhat: Edit /etc/httpd/conf/httpd.conf
  • Listen 80の行を確認し、80を目的のポートへと変更します。
  • サーバーが特定のインターフェースのポートでのみ接続を受け入れるようにする場合は、 Listen 90 to Listen domain.com:90に変更します。
  • ファイルを保存し、サーバーを再起動します。

For Ubuntu/Debian: sudo vi /etc/apache2/sites-enable/000-default.conf
For Centos/Redhat: sudo vi /etc/httpd/conf.d/ssl.conf
For Ubuntu/Debian:
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile <File Name>
SSLCertificateKeyFile <Key>
</VirtualHost>
For Centos/Redhat:
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# SSLProtocol all -SSLv2
# SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
SSLCertificateFile <File Name>
SSLCertificateKeyFile <Key>
</VirtualHost>
For Ubuntu/Debian: sudo a2enmod ssl
For Centos/Redhat: sudo yum install mod_ssl
  • SSLサポートの有効化は、以下の場所にあるApacheデフォルトの仮想ホストファイルを使用して行います:
  • 仮装ホストファイルを編集し、ポート443でSSLサポートを有効化します。
  • SSLモードを有効化するには、以下コマンドを実行します。
  • サーバーを再起動します。

プラグインのインストール

  • 上記に従ってApacheを設定し、パフォーマンス属性を監視します。
  • プラグイン実行予定のサーバーに Site24x7 Linuxエージェント の最新バージョンをダウンロードおよびインストールします。正常にインストールされると、Site24x7コントロールパネルにLinuxサーバーモニターが表示されます。これにより、エージェントがデータセンターと通信できるようになります。
  • GitHubリポジトリ― apache.py" から ファイルをダウンロードします。
    wget https://github.com/site24x7/plugins/blob/master/apache_monitoring/apache_monitoring.py
  • ステータスURLでファイルを更新し、Apacheを監視します。デフォルトでは、以下のように有効化されています:
    http://localhost:80/server-status?auto
  • Site24x7 Linuxエージェントプラグインディレクトリー[ /opt/site24x7/monagent/plugins/ ]に、[apache]という名前のフォルダーを作成し、[ /opt/site24x7/monagent/plugins/apache/ ]に[apache.py]を配置します。

エージェントは5分以内にプラグインを自動実行し、Site24x7データセンターにパフォーマンスデータを送信します。

Site24x7 Webクライアントでデータの表示

  1. ログインし、[サーバー] >[プラグイン] > [プラグイン監視名] へ進みます。
  2. サーバーのさまざまなメトリクスに関するパフォーマンスグラフを表示することができます。

エラー処理

S.Noエラーメッセージ原因
1Error_code : URL Error [Errno -2] Name or service not known無効なホスト名
2Error_code : URL Error [Errno 1] _ssl.c:510: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocolApacheステータスURLがHTTPSに設定されていない場合
3Error_code : HTTP Error 404無効なステータスURL
4Error_code : HTTP Error 400無効なポート番号

プラグインに貢献

に関する提案やフィードバックをご自由にお寄せください。貴重な意見は既存プラグインの発展へと繋げていきます。 コミュニティー.

関連記事

  • Out-of-the-boxプラグイン - 豊富な連携リストでアプリケーション全体を監視します。
  • サーバー監視 - サーバーの停止やパフォーマンスの問題を完全に把握します。
  • Redis - Redisデータベースのパフォーマンスメトリクスを監視します。
  • MySQL - MySQLデータベースのパフォーマンスメトリクスを監視します。
  • Zombie Process - Zombie Processサーバーのパフォーマンスを分析します。
  • Nagios - Site24x7では、Nagiosサーバーを実行する必要なしに、何千ものNagiosプラグインを実行することができます。
  • カスタムスクリプト監視- カスタム Linux および Windows プラグインを作成し、カスタム属性を監視します。
  • GitHubリポジトリ― - 50以上のプラグイン連携を備えています