ログとは、アプリケーションやミドルウェアが動作中に出力する記録です。エラーの発生、リクエストの処理結果、システムの状態変化などが時系列で記録されており、障害調査やシステムの状況把握に欠かせない情報源です。
このヘルプでは、Mackerel のログ機能の特徴とその活用シーンを説明します。
Mackerelのログ機能は現在β版として提供しています。以下の点についてはあらかじめご了承ください。
- 今後、仕様や画面デザインが変更される可能性があります。
- 機能改善や不具合修正のために、臨時のメンテナンスを実施する場合があります。
- お預かりしているログデータの保持を保証することはできません。
目次
ログ運用の課題
障害が発生したとき、まずログを確認する方は多いのではないでしょうか。しかし、ログを使った調査にはいくつかの課題がつきまといます。
- ログの所在が分かりにくい:データベース、アプリケーション、cronなど、コンポーネントごとにログの場所が異なります。横断的に調べようとすると、どのホストのどのパスにログがあるのか把握すること自体に手間がかかります
- 本番環境のアクセス制限:セキュリティ上の理由で本番ログへのアクセス権を絞っている現場では、障害時にログを確認できる人が限られます
- 障害対応の属人化:熟練者が持つ「どこを、どう見るか」という暗黙知がドキュメント化されず、対応できる人とできない人の差がなかなか縮まりません。頼られる熟練者側にも負荷が集中します
- 構造化ログの扱いにくさ:JSON形式のような構造化ログは、プレーンテキストのログに比べてキーと値の形で多くの情報を盛り込めます。しかし、適切なビューアーがなければ人間には読みにくく、せっかくの情報を活かしきれません
Mackerel のログ機能は、「熟練者の知見を、チームの力に」をコンセプトに、これらの課題に対応します。
ログ機能でできること
ログ機能は現在β版として提供中です。各機能の詳しい操作方法は「ログの検索・分析」ヘルプを参照してください。
- OpenTelemetry準拠のログ収集:OpenTelemetryに準拠した形式でログを収集します。送り方としては、既存のロガー(slog など)からログブリッジを通じて送信する、ログファイルをコレクターで読み取って送信する、といった方法があります。詳しくは「Mackerel にログを送信する」ヘルプを参照してください
- サービス単位のログ検索:サービス単位で横断的にログを閲覧できます。サービスが複数のホストで構成されているときでも、どのホストのどのパスにログがあるか探す必要がなくなります
- トレースとの相互連携:Mackerel APM のトレース画面とログ画面を行き来でき、トレースで見つけた問題の詳細をログで確認したり、ログからトレースをたどったりできます
- 柔軟な検索・絞り込み:キーワード検索、重要度フィルタ(TRACE〜FATAL)、期間指定を組み合わせて絞り込めます。JSON形式のログであれば、そのキーと値を使ったフィルタリングも可能です。Webコンソールから直感的に条件を追加でき、専用のクエリ言語を覚える必要はありません
- 時系列ヒストグラムとドリルダウン:検索結果の時間分布を可視化し、エラーや警告が集中している時間帯を視覚的に識別できます。ドラッグ操作で時間範囲を絞り込むことも可能です
- チームでの検索共有:検索条件をメモ付きで保存し、オーガニゼーションのメンバー間で共有できます。チームの検索の履歴で「誰が何を調べたか」を確認でき、熟練者が不在でも保存条件をもとにログ探索を始められます
- データのエクスポート:CSVダウンロードやクリップボードへのコピーに対応しています

想定される活用シーン
障害対応時のエラーログ調査
エラーが発生したとき、ログレベルフィルタで ERROR や WARN に絞り込み、ヒストグラムで発生タイミングを特定できます。JSON形式のログであれば、リクエストIDやユーザーIDなどのキーで絞り込んで原因を追跡することも可能です。
チームの履歴で他のメンバーが既に調べた内容を把握したり、熟練者が過去に保存したフィルタ条件を呼び出したりすることで、不慣れなメンバーでも調査の出発点を得られます。

また、トレースも取得している場合は、エラーログからトレースを開くことで、どのサービスのどの処理でエラーが発生したのかを把握でき、原因究明がさらにスムーズになります。

デプロイ後の異常検知
デプロイ前後の時間帯を指定してログを比較できます。エラーログがある場合は、ヒストグラム上のバーが赤く表示されます。デプロイ後にエラーが増加していないかを視覚的に確認してみましょう。

定常的なログモニタリング
よく使う検索条件を保存済みフィルタとして登録すれば、日常的な確認作業を効率化できます。スターを付けて、チームとして重要な条件をすぐ呼び出せるようにしておくのも有効です。

オブザーバビリティの中でのログ機能の位置付け
Mackerelはメトリック・トレース・ログの3つのシグナルに対応しています。
トレースとログはOpenTelemetry準拠です。メトリックについては、OpenTelemetry準拠のラベル付きメトリックとして対応しています。mackerel-agent や mackerel-container-agent、クラウドインテグレーションで使われている従来のメトリックとは互換性がない点にご注意ください。
目指す姿は、「メトリックで異常を検知し、トレースで処理の流れを追い、ログで詳細を確認する」という一連の調査をMackerel内で完結できる状態です。今後はログとアラートの連携も見据えています。
料金について
ログ機能は、Mackerelに送信されたログデータのインジェスト(取り込み)量に基づいて課金されます。
いきなり全サービスのログを送信するのではなく、まずは1つのサービスで短期間試して、データ量を見積もることをお勧めします。データ量の見積もり方や利用状況の確認方法は「ログのデータ量とコストを見積もる」ヘルプで詳しく解説しています。
はじめかた
ログ機能は現在、β版として提供中です。以下の3つのステップで利用を開始できます。
- コレクターの設定:OpenTelemetryコレクターを設定してログの送信経路を構築します
- ログ送信の設定:アプリケーションの環境に合わせて、ログブリッジの接続やコレクターでのファイル読み取りなど、適切な方法でログを送信します
- ログの検索・分析:Mackerel Webコンソールでログを検索・分析します
各ステップの詳細は「Mackerel にログを送信する」ヘルプおよび「ログの検索・分析」ヘルプを参照してください。
導入に際してつまずいた場合は、Mackerelのサポートチームがお手伝いします。技術的な質問や導入に関する相談はお気軽にお問い合わせください。