概要
mtail は、Googleが開発したオープンソースのログパースツールです。ログファイルから特定のパターンに一致する行を抽出し、それに基づいてメトリクスを生成し、/metrics エンドポイントにPrometheus形式で公開することができます。これにより、既存のログからビジネスメトリクスやシステムの状態をPrometheusで収集・監視することが可能になります。
mtailの使い方
mtailを利用するには、mtailプログラム(デーモン)を起動し、監視対象のログファイルと、メトリクスを定義するmtailプログラム(設定ファイル)を指定する必要があります。
mtailプログラム(設定ファイル)の例: sample.mtail
mtailプログラムは、Go言語に似た独自の構文で記述されます。
| |
counter errors_total: Prometheusで使用するメトリクスを定義しています。counterはカウンタータイプのメトリクスで、値は単調増加します。/error/ { errors_total++ }: ログの各行が正規表現/error/にマッチした場合に、errors_totalカウンターを1増加させます。counter http_requests_total by status_code:http_requests_totalというカウンターメトリクスを定義し、status_codeというラベルを持つことを示しています。/^HTTP\/1\.[01] (\d{3})/ { http_requests_total[$1]++ }: HTTPアクセスログからステータスコード(例: 200, 404, 500)を抽出し、そのステータスコードをラベルとしてhttp_requests_totalカウンターをインクリメントします。
Dockerでmtailを起動する
mtailをDockerコンテナとして実行することで、環境構築の手間を省き、簡単にデプロイできます。
| |
CMD 命令の引数
-progs /path/to/sample.mtail: mtailが使用する設定ファイル(mtailプログラム)のパスを指定します。コンテナ内に配置したmtailプログラムのパスを指定してください。-logs /path/to/logfile: mtailが監視するログファイルのパスを指定します。mtailはこのログファイルを監視し、設定に定義されたパターンに一致する行を検出して対応するメトリクスを生成します。このログファイルは、Dockerのボリュームマウントなどを使ってコンテナ内に提供する必要があります。
このDockerイメージをビルドし、実行することで、mtailがログを監視し、Prometheusが収集可能なメトリクスを公開するようになります.