Skip to content

メトリックプラグイン - mackerel-plugin-apache2

mackerel-plugin-apache2 は Apache2 に関する統計情報をメトリックとして監視するためのプラグインです。

このプラグインの使用には、ApacheのStatusモジュール(mod_status)が有効で且つプラグインからのアクセスができる必要があります。

監視できるメトリック

mackerel-plugin-apache2 で監視できるメトリックは以下となります。

Apache Workers

稼働しているサーバープロセス/スレッド数を監視できます。

メトリック表示名メトリック名差分積み上げ表示説明
Busy Workerscustom.apache2.workers.busy_workers-リクエスト処理中のサーバープロセス/スレッド数
Idle Workerscustom.apache2.workers.idle_workers-リクエスト待ち状態のサーバープロセス/スレッド数

Apache Bytes

httpdプロセスから送出されたデータ量を監視できます。

メトリック表示名メトリック名差分積み上げ表示説明
Bytes Sentcustom.apache2.bytes.bytes_sent-1分間の合計通信量(byte)

Apache CPU Load

httpdプロセスのCPU使用率を監視できます。

メトリック表示名メトリック名差分積み上げ表示説明
CPU Loadcustom.apache2.cpu.cpu_load--CPU使用率

Apache Requests

リクエスト数を監視できます。

メトリック表示名メトリック名差分積み上げ表示説明
Requestscustom.apache2.req.requests-1分間のリクエスト受信回数

Apache Scoreboard

スコアボード(稼働中のサーバープロセスの状態)の各メトリックを監視できます。

メトリック表示名メトリック名差分積み上げ表示説明
Waiting for connectioncustom.apache2.scoreboard.score-_-プロセス/スレッドを起動し、アクセス待ちの件数
Starting upcustom.apache2.scoreboard.score-S-プロセス/スレッドが起動中の件数
Reading requestcustom.apache2.scoreboard.score-R-クライアントからのリクエストを読み込んでいる件数
Sending replycustom.apache2.scoreboard.score-W-クライアントにレスポンスしている件数
Keepalivecustom.apache2.scoreboard.score-K-KeepAliveによりリクエストを待機している件数
DNS lookupcustom.apache2.scoreboard.score-D-名前解決をしている件数
Closing connectioncustom.apache2.scoreboard.score-C-接続を終了している件数
Loggingcustom.apache2.scoreboard.score-L-ログを出力している件数
Gracefully finishingcustom.apache2.scoreboard.score-G-Gracefulリスタートにおける処理終了待ちの件数
Idle cleanupcustom.apache2.scoreboard.score-I-プロセス/スレッドが停止している件数
Open slotcustom.apache2.scoreboard.score--スロットが空いている件数

指定可能なオプション

プラグインに指定可能なオプションは以下の通りです。

オプション省略形環境変数説明初期値
--http_host-ohttpdがLISTENしているIPアドレス127.0.0.1
--http_port-phttpdがLISTENしてるポート番号80
--header-Hリクエスト時に付与するHTTPヘッダー
--status_page-s統計情報を提供するURLパス/server-status?auto
--tempfile-tMACKEREL_PLUGIN_WORKDIR一時ファイルの保存先パス
--metric-key-prefixメトリック名にprefixとして付与する文字列apache2
--metric-label-prefixグラフ名にprefixとして付与する文字列Apache
  • 一時ファイル(tempfile)はデフォルトでは/var/tmp/mackerel-agentもしくは/tmp配下にmackerel-plugin-{Prefixなどの文字列}-{ハッシュ文字列}の形式で作成されます

エージェントへの設定例

toml
[plugin.metrics.apache2]
command = ["mackerel-plugin-apache2", "-p", "1080"]

上記の設定を直接確認するには、ターミナルから以下のように実行して確認できます。

mackerel-plugin-apache2 -p 1080

Apacheの設定例

mackerel-plugin-apache2を使用するために、ApacheのStatusモジュール(mod_status)が有効であることを確認してください。

以下は http://127.0.0.1:1080/server-status での公開を想定した設定です。

ExtendedStatus On
<VirtualHost 127.0.0.1:1080>
  <Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from localhost
  </Location>
</VirtualHost>

トラブルシューティング

メトリックが取得できない

プラグインを設定してもメトリックが取得できない場合、設定の未反映やApache側でのStatusモジュールの設定の誤りなどが原因であることが考えられます。以下のような点をご確認ください。

  • プラグインの設定後に mackerel-agent の再起動を実施しているか
    • mackerel-agent の再起動を行わないと設定が反映されないため、設定変更後は再起動を実施してください
  • Apache側でStatusモジュールの設定後、curlコマンドによる疎通確認が正常であるか
    • 前述の設定例の通りに設定した場合、以下のコマンドで 200 OK のレスポンスが受信できることをご確認ください

      curl http://127.0.0.1:1080/server-status
    • httpからhttpsへのリダイレクトをmod_rewriteで設定している場合、プラグインはリダイレクトの追跡を行いません。Statusモジュールのエンドポイントはリダイレクトの対象から外してください

    • curlコマンドでStatusモジュールの結果が取得できない場合、設定が誤っているかApacheの再起動漏れにより未反映となっている場合があるのでご確認ください

リポジトリ

https://github.com/mackerelio/mackerel-agent-plugins/tree/master/mackerel-plugin-apache2

参考