HTTPd の監視

Instana を使用すれば、 HTTPd サーバーおよび IBM HTTP Server を包括的に監視し、ボトルネックを特定してパフォーマンスを最適化することができます。

Instana ホストエージェントをインストールすると、 HTTPd センサーが自動的にインストールされます。 その後、 HTTPd サーバーを設定し、トレースを有効にすることで、 Instana のUI上で Apache に関連するメトリクスやトレースを確認できるようになります。

サポート情報

HTTPd センサーおよびトレーサーが現在の環境と互換性があるかどうかを確認するには、以下のサポート情報セクションをご確認ください:

サポート対象のオペレーティング・システム

HTTPd センサーの対応OSは、ホストエージェントの要件と一致しています。 各ホストエージェントの「対応OS」セクション(例: Unix の対応OS )で確認できます。

の構成

HTTPd サーバーのメイン構成ファイルは、 /etc/apache2/apache2.conf/etc/httpd/conf/httpd.conf、または /etc/apache2/httpd.confにあります。 使用される構成ファイルの正確な場所は、以下のとおりです。

  • プロセス引数: -d は、ルート・ディレクトリーと -f 構成ファイルを指定します。
  • apachectl -V 出力の場合: HTTPD_ROOT= および SERVER_CONFIG_FILE=

Debian ユーザーは、メインの HTTPd 設定ファイルではなく、専用のステータスモジュールの設定ファイル( /etc/apache2/mods-enabled/status.conf)に変更を適用します。

HTTPd 構成ファイルで以下の変更を行う必要があります。

  • サーバー状況の「HTTPd 状況」ページ (場所: /server-status) を有効にします。
  • status_module(mod_status) を読み込んで、 HTTPd のWebサーバーのメトリクスを表示します。
  • ExtendedStatusを有効することで、トラフィック、要求ごとのトラフィック、および CPU の詳細メトリックを表示します。
<Location /server-status>
    SetHandler server-status
</Location>
LoadModule status_module lib/httpd/modules/mod_status.so
ExtendedStatus On
 

この server-status 設定を、 HTTPd の設定ファイルの先頭に記述してください。

以下のコマンドを使用して、構成ファイルにエラーがないかどうかを確認できます。

apachectl configtest
 

ライブ接続 ( apachectl -k graceful または service apache2 graceful) を中断せずに変更を適用するには、再始動します。

Instana センサーは HTTPd から構成を自動的に取得します。エージェントを再始動する必要はありません。 結果として、状況ページの任意の場所を選択できます。 パフォーマンス上の理由から、リダイレクトは実行されません。

状況 URL が保護されている場合は、エージェント構成ファイル <agent_install_dir>/etc/instana/configuration.ymlに基本認証資格情報を指定する必要があります。

com.instana.plugin.httpd:
  user: ''
  password: ''
 

メトリックの表示

メトリックを表示するには、以下のステップを実行します。

  1. Instana のUIのサイドバーで、 「インフラストラクチャ」 を選択します。
  2. 特定のモニター対象ホストをクリックします。

その後、収集されたすべてのメトリックとモニター対象プロセスを含むホスト・ダッシュボードを表示できます。

構成データ

Apache ( HTTPd )センサーは、 HTTPd サーバーから以下のメトリクスを収集します:

メトリック 説明
プロセス ID HTTPd のメインプロセスのID
バージョン HTTPd サーバーのバージョン
アーキテクチャー サーバーが動作しているCPUアーキテクチャ
開始値 HTTPd プロセスが開始された日時
最大ワーカー数 リクエストを同時に処理できるワーカースレッドの最大数
MPM リクエスト処理モデルを定義するマルチプロセッシングモジュール(MPM)
listen HTTPd サーバーがリスニングしているポート
モジュール HTTPd サーバーに現在読み込まれているモジュールのリスト

パフォーマンス・メトリック

次の表は、 HTTPd サーバーから収集されるパフォーマンス指標の一覧です:

メトリック 説明
要求 HTTPd サーバーへのアクセス回数
トラフィック 処理された K バイト数
ビジー・ワーカー数 使用中のワーカー・スレッドおよびプロセスの数
接続数 合計接続数 (イベント MPM および Apache 2.3 の場合のみ)
非同期書き込み 書き込み状態の非同期接続の数 (イベント MPM および Apache 2.3 の場合のみ)
非同期キープアライブ キープアライブ状態の非同期接続の数 (イベント MPM および Apache 2.3 の場合のみ)
非同期クローズ クローズ状態の非同期接続の数 (イベント MPM および Apache 2.3 の場合のみ)
ワーカー Waiting、Starting、Reading、Writing、Keepalive、Dns、Closing、Logging、Graceful、Idle
CPU 負荷 HTTPd サーバーの現在のCPU使用率(パーセント)
要求ごとのトラフィック 要求ごとに転送されたバイト数

次の表は、 HTTPd サーバーから監視されるワーカーの状態の種類について説明しています:

作業者タイプ 説明
待機 受信リクエストを待機しているアイドル状態のワーカーの数
開始中 リクエスト処理を開始する準備をしている作業者の数
読み取り中 クライアントからのリクエストヘッダーまたは本文を読み取っているワーカーの数
書き込み中 クライアントに応答しているワーカーの数
キープアライブ キープアライブ接続を待機しているワーカーの数
DNS クライアントのホスト名に対して DNS の検索を実行しているワーカーの数
クローズ中 リクエスト処理後にクライアント接続を閉じるワーカーの数
ロギング リクエスト処理完了後にログを記録しているワーカーの数
正常終了 処理を完了し、正常にシャットダウンしている作業者の数
アイドル 使用されていないリソースを解放しているアイドル状態のワーカーの数

正常性シグニチャー

センサーごとに、着信メトリックに対して継続的に評価され、ユーザーへの影響に応じて問題またはインシデントを発生させるために使用される、ヘルス・シグニチャーのキュレートされた知識ベースがあります。

組み込みイベント は、エンティティー上の失敗したヘルス・シグニチャーに基づいて問題またはインシデントをトリガーし、 カスタム・イベント は、エンティティーの個々のメトリックのしきい値に基づいて問題またはインシデントをトリガーします。

HTTPd センサーの組み込みイベントに関する詳細については、 「組み込みイベントのリファレンス」 を参照してください。

トレース

HTTPd サーバーからトレースを収集するには、 HTTPd トレースをインストールして設定する必要があります。

前提条件

Windows で HTTPd トレースを有効にする前に、Visual Studio 2015~2022用のVisual C++ 再配布可能パッケージをインストールしてください。

HTTPd のトレース機能を有効にする前に、必ず「 XL C/C++ Runtime for AIX 16.1.0 Fix Pack 7 以降 」を AIX 7.2 にインストールしてください。このパッケージには必要なファイルセットが含まれています libc++.rte

以下のコマンドを使用して、ファイル・セット libc++.rte のインストールを検査できます。

lslpp -l |grep libc++.rte
 

インストール

HTTPd トレースはデフォルトで無効になっています。 「トレースの有効化 」の説明に従って HTTPd のトレースが有効になっている場合、 HTTPd センサーは自動的に HTTPd トレースモジュールの最新バージョンをダウンロードします。 トレース設定は にあり <agent_install_dir>/etc/instana/configuration.yaml、 Instana エージェントの最新版には、利用可能な設定項目の例が含まれています。

手動インストール

コンテナー化された環境で HTTPd サーバーが限定された読み取り専用特権で実行されている場合、このような状況では HTTPd トレース・モジュールの自動インストールは機能しません。 HTTPd トレース・モジュールは、以下のステップで手動でインストールできます。

  1. ご使用の HTTP Server バージョンの 適切なモジュールを入手します
  2. モジュールのコピー を HTTP Server モジュール・フォルダーに追加します。
  3. HTTPd 構成ファイル内の モジュールのロード
モジュールをコピーする

前のステップでダウンロードした 2 つのモジュールは、他の HTTP モジュールを含むフォルダーに配置する必要があり、関連するファイル権限を付与する必要があります。 モジュールバージョン 1.0.7 以前の場合、ファイル名を tracelibrary_x86_64-1.0.7.so に変更する必要があります tracelibrary.so

モジュールを読み込む

HTTPd 構成ファイルと同じ場所に instana_tracing.conf という名前のファイルを作成します (例: /etc/httpd/conf/httpd.conf)。 ファイル・コンテンツは、以下のようになります。

LoadModule dem_module /usr/lib64/httpd/modules/mod_dem_x86_64-1.0.8.so
 

次に、HTTPd 構成ファイルに行を追加して、ファイル instana_tracing.confを組み込みます。

Include /etc/httpd/conf/instana_tracing.conf
 

の構成

Instana エージェントの configuration.yaml ファイル内の使用可能な HTTPd トレース構成設定がリストされています。

# Apache Httpd
#com.instana.plugin.httpd:
#  tracing:
#    # Enabling tracing will automatically download the HTTPd Tracing module and
#    # load it in your Apache configuration file. You will need to manually restart
#    # Apache HTTP Server unless you specify a restart script in notificationScript
#    # or enable autoRestart. Disabling tracing will not remove the HTTPd Tracing module.
#    # It will only remove the tracing module config from the Apache configuration file.
#    enabled: false
#    # Pins the HTTPd Tracing module to download and install to a specific version.
#    # This can be used to rollback to previous versions of the module or to test
#    # beta versions (when asked to do so). Expects the version to be given as
#    # major.minor.patch format, e.g. 1.0.0
#    pinModuleVersion: x.y.z
#    # The absolute path to the script to trigger whenever the sensor installed
#    # a different version of the HTTPd Tracing module than is currently installed.
#    # Works for upgrades and downgrades. Default is empty.
#    notificationScript: /path/to/restart_apache.sh
#    # Enabling auto-restart will let the sensor attempt a graceful restart of your
#    # Apache HTTP Server to load the updated HTTPd Tracing module into memory.
#    # If you specify a notificationScript, then the sensor will ignore autoRestart setting
#    # unless the execution of.notificationScript failed.
#    autoRestart: false
 

トレースを有効にします

テキスト・エディターで <agent_install_dir>/etc/instana/configuration.yaml を開きます。 これらのエントリーの性質は、以下のように似ています。

#com.instana.plugin.httpd:
#  tracing:
#    enabled: false
 

これらの行のコメントを外し、enabled: falseenabled: true に変更します。

com.instana.plugin.httpd:
  tracing:
    enabled: true
 

自動再起動 」が設定されていない場合は、 HTTPd トレースモジュールをメモリに読み込むために、 HTTP Server を手動で再起動する必要があります。

トレースを無効にする

テキスト・エディターで <agent_install_dir>/etc/instana/configuration.yaml を開きます。 enabled: trueenabled: false に変更します。 デフォルトではトレースが無効になっているため、この行をコメント化しても同じ結果になります。 変更後の項目は、以下のコードのようになります。

com.instana.plugin.httpd:
  tracing:
    enabled: false
 

自動再起動 」が設定されていない場合は、メモリから HTTPd トレースモジュールをアンロードするために、 HTTP Server を手動で再起動する必要があります。

バージョンの固定

ダウンロードおよびインストールする HTTPd トレース・モジュールは、特定のバージョンにピン留めすることができます。 行pinModuleVersion: x.y.zがコメント化されている場合、現行バージョンの HTTPd トレース・モジュールがダウンロードされてインストールされます。

<agent_install_dir>/etc/instana/configuration.yamlの行 pinModuleVersion: x.y.z で、 x.y.z を、指定されたモジュール・バージョンに置き換えます。 変更後の項目は、以下の yaml コードのようになります。

com.instana.plugin.httpd:
  tracing:
    enabled: true
    pinModuleVersion: 1.0.8
 

HTTPd トレース・モジュールを手動でダウンロードしてインストールする場合は、ダウンロードしたモジュールのバージョンに合わせて pinModuleVersion 構成の値を指定する必要があります。

自動再始動

トレースを使用可能にするのようにトレースが有効になっている場合、HTTPd センサーは、 HTTP Server セットアップ用の適切な HTTPd トレース・モジュールを自動的にダウンロードしてインストールします。 さらに、センサーが HTTP Serverの正常再始動 (apachectl -k graceful) を試行する場合があります。 正常な再始動では、マスター・プロセスを再始動せずに HTTPd トレース・モジュールがメモリーにロードされます。 そのため、プロセスがコンテナー内で PID 1 として実行される場合でも機能します。

<agent_install_dir>/etc/instana/configuration.yamlautoRestart 構成設定を構成することにより、自動再始動を有効または無効にすることができます。 例えば、以下の設定は自動再始動を有効にします。

com.instana.plugin.httpd:
  tracing:
    enabled: true
    autoRestart: true
 

notificationScript 構成設定を使用して、HTTPd センサーが HTTP Server 環境の再始動を試行する方法を変更することもできます。 この設定には、実行可能なシェル・スクリプトの絶対パスが指定されます。 HTTP Server がコンテナー内で実行される場合、これはコンテナー内の絶対パスです。 このスクリプトは、インストールされているものとは異なるバージョンの HTTPd トレース・モジュールがセンサーによってインストールされるたびにトリガーされます。 このスクリプトが正常に構成されて実行されると、自動再始動のデフォルト・メカニズムがオーバーライドされます。

HTTPd トレース・モジュールが手動でダウンロードおよびインストールされた場合は、 autoRestart 構成設定およびコメント notificationScript 構成設定で自動再始動を無効にする必要があることに注意してください。 HTTPd トレース・モジュールをロードまたはアンロードするには、 HTTP Server を手動で再始動する必要があります。

HTTPd rootless Podman コンテナのトレース機能のサポート

rootlessの Podman コンテナ内で実行されている HTTPd からメトリクスとトレースを収集するには、 Instana エージェントとrootlessの Podman コンテナネットワーク間のネットワーク通信を維持する必要があります。

HTTPd のトレースモジュールを削除する

HTTPd トレース・モジュールは、以下のステップで手動で削除することができます。

  1. HTTPd 構成ファイルと同じ場所 (例えば、 /etc/httpd/conf/httpd.conf) で instana_tracing.conf を見つけます。 instana_tracing.conf の内容から、HTTPd トレース・モジュールの絶対パスを取得します。 例えば、ファイル・コンテンツは以下のコードのようになります。

    LoadModule dem_module /usr/lib64/httpd/modules/mod_dem_x86_64-1.0.8.so
     

    次に、HTTPd トレース・モジュールは /usr/lib64/httpd/modules/mod_dem_x86_64-1.0.8.soにあります。

  2. トレースを使用不可にするのように、HTTPd トレースを無効にします。

  3. HTTPd トレースモジュール mod_dem_[arch]-[version].so (例: /usr/lib64/httpd/modules/mod_dem_x86_64-1.0.8.so)を削除し、同じ tracelibrary_[arch]-[version].so 場所にある(例: /usr/lib64/httpd/modules/tracelibrary_x86_64-1.0.8.so)も削除します。