Apache ウェブサーバー(httpd)

Apache ウェブサーバー(httpd)は、さまざまなオペレーティング システム向けに広く使用されているウェブサーバーです。詳細については、http://httpd.apache.org/ をご覧ください。

前提条件

Apache ウェブサーバーのテレメトリーを収集するには、バージョン 2.7.0 以降の Ops Agent をインストールする必要があります。

このレシーバーは、Apache ウェブサーバー バージョン 2.4 をサポートしています。

Apache ウェブサーバー インスタンスを構成する

Apache ウェブサーバーからテレメトリーを収集するには、mod_status プラグインを有効にするようにサーバーの httpd.conf ファイルを構成する必要があります。

多くの Apache のインストールでは、デフォルトでこのプラグインが有効になっています。VM インスタンスでプラグインが有効になっているかどうかを確認するには、次のコマンドを実行します。

curl localhost:80/server-status?auto

プラグインが有効になっている場合、出力には次のような行が含まれます。

Total Accesses: 2
Total kBytes: 1
BusyWorkers: 1
IdleWorkers: 4

このように出力されず、404 Not Found ページが表示された場合は、mod_status プラグインが有効になっていません。

Apache ウェブサーバーの Ops エージェントを構成する

Ops エージェントの構成のガイドに沿って、Apache ウェブサーバーのインスタンスからログを収集するために必要な要素を追加し、エージェントを再起動します。

構成の例

次のコマンドでは、Apache ウェブサーバーのログと指標を収集して取り込み、Linux の Ops エージェントを再起動する構成を作成します。

sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
logging:
  receivers:
    apache_access:
      type: apache_access
    apache_error:
      type: apache_error
  service:
    pipelines:
      apache:
        receivers:
        - apache_access
        - apache_error
metrics:
  receivers:
    apache:
      type: apache
      server_status_url: http://localhost:80/server-status?auto
      collection_interval: 30s
  service:
    pipelines:
      apache:
        receivers:
        - apache
EOF
sudo service google-cloud-ops-agent restart

ログの収集を構成する

Apache ウェブサーバーからログを取り込むには、Apache ウェブサーバーが生成するログのレシーバーを作成し、新しいレシーバーに対するパイプラインを作成する必要があります。ログのレシーバを構成するには、次の項目を指定します。

apache_access ログのレシーバを構成するには、次の項目を指定します。

フィールド デフォルト 説明
type 値は、apache_access にする必要があります。
include_paths [/var/log/apache2/access.log,/var/log/apache2/access_log,/var/log/httpd/access_log] 各ファイルのテーリングで読み込むファイルシステムのパスのリスト。パスには、/var/log/apache*/*.log のように、ワイルドカード(*)を使用できます。
exclude_paths [] include_paths の照合で除外するファイルシステム パスのパターンのリスト。

apache_error ログのレシーバを構成するには、次の項目を指定します。

フィールド デフォルト 説明
type 値は、apache_error にする必要があります。
include_paths [/var/log/apache2/error.log,/var/log/apache2/error_log,/var/log/httpd/error_log] 各ファイルのテーリングで読み込むファイルシステムのパスのリスト。パスには、/var/log/apache*/*.log のように、ワイルドカード(*)を使用できます。
exclude_paths [] include_paths の照合で除外するファイルシステムのパスパターンのリスト。

ログの内容

apache_access ログと apache_error ログの logName は、構成で指定されたレシーバ ID から取得されます。LogEntry 内の詳細なフィールドは、次のとおりです。

apache_access ログには、httpRequest フィールドが含まれています。

項目 タイプ 説明
httpRequest.protocol 文字列 リクエストに使用されるプロトコル
httpRequest.referer 文字列 Referer ヘッダーの内容
httpRequest.requestMethod 文字列 HTTP メソッド
httpRequest.requestUrl 文字列 リクエスト URL(通常は URL のパス部分のみ)
httpRequest.responseSize 文字列(int64 レスポンス サイズ
httpRequest.status 数値 HTTP ステータス コード
httpRequest.userAgent 文字列 User-Agent ヘッダーの内容
jsonPayload.host 文字列 Host ヘッダーの内容
jsonPayload.user 文字列 リクエストの認証済みユーザー名
timestamp 文字列(Timestamp リクエストを受信した時刻

ログエントリに空白や欠落しているフィールドは含まれません。


apache_error ログでは、LogEntry に次のフィールドが含まれます。

フィールド タイプ 説明
jsonPayload.errorCode 文字列 Apache エラーコード
jsonPayload.level 文字列 ログエントリ レベル
jsonPayload.module 文字列 ログが発生した Apache モジュール
jsonPayload.pid 数値 処理 ID
jsonPayload.tid 数値 スレッド ID
jsonPayload.message 文字列 ログメッセージ
jsonPayload.client 文字列 クライアント IP アドレス(省略可)
severity 文字列(LogSeverity ログエントリ レベル(翻訳済み)
timestamp 文字列(Timestamp エントリがログに記録された時刻

指標の収集を構成する

Apache ウェブサーバーから指標を収集するには、Apache 指標用のレシーバーを作成してから、新しいレシーバー用のパイプラインを作成する必要があります。Apache 指標のレシーバを構成するには、次のフィールドを指定します。

項目 デフォルト 説明
type 値は、apache にする必要があります。
server_status_url http://localhost:8080/server-status?auto mod_status モジュールによって公開される URL。
collection_interval 60s time.Duration 値(例: 30s5m)。

モニタリング対象

次の表に、Ops エージェントが Apache ウェブサーバー インスタンスから収集する指標の一覧を示します。

指標タイプ 
種類、タイプ
モニタリング対象リソース
ラベル
workload.googleapis.com/apache.current_connections
GAUGEINT64
gce_instance
server_name
workload.googleapis.com/apache.requests
CUMULATIVEINT64
gce_instance
server_name
workload.googleapis.com/apache.scoreboard
GAUGEINT64
gce_instance
state
server_name
workload.googleapis.com/apache.traffic
CUMULATIVEINT64
gce_instance
server_name
workload.googleapis.com/apache.workers
GAUGEINT64
gce_instance
state
server_name

構成を確認する

ログ エクスプローラと Metrics Explorer を使用して、Apache ウェブサーバー レシーバーが正しく構成されていることを確認できます。Ops エージェントがログと指標の収集を開始するまでに 1 ~ 2 分かかる場合があります。

ログが取り込まれていることを確認するには、ログ エクスプローラに移動して、次のクエリを実行して Apache ウェブサーバーのログを表示します。

resource.type="gce_instance"
logName=("projects/PROJECT_ID/logs/apache_access" OR "projects/PROJECT_ID/logs/apache_error")


指標が取り込まれていることを確認するには、Metrics Explorer に移動し、[MQL] タブで次のクエリを実行します。

fetch gce_instance
| metric 'workload.googleapis.com/apache.requests'
| align rate(1m)
| every 1m