1. 主要ページへ移動
  2. メニューへ移動
  3. ページ下へ移動

QES ブログ

記事公開日

Claude CodeのOTelログをAzure Monitor/Grafanaで監視する方法

  • このエントリーをはてなブックマークに追加

この記事のポイント

Claude Teamプランには管理者向けの監査ログ機能がなく、Claude Codeの利用状況を把握するにはOpenTelemetry(OTel)でテレメトリを取得する必要があります。本記事では、Claude CodeのログをAzure Blob StorageとAzure Monitor / Grafanaに集約し、実際にモニタリングできることを検証した結果を紹介します。

  • Azure構成とClaude Code側の設定:
    OTel Collector(Azure Container Apps)を経由して、Blob Storage(監査ログの原本保管)とAzure Monitor(可視化)の2経路にログを振り分ける構成と、Claude Code側の settings.json 設定を解説
  • OTelで取得可能なメトリクス・イベント:
    コストやトークン数などのメトリクス8種、プロンプト送信やツール実行などのイベント種別を整理
  • Grafanaダッシュボードと実機確認:
    Microsoft公式のClaude Code用ダッシュボードで確認できる項目と、Blob Storage・Grafanaへの実際のログ到達結果を紹介

▼ 無料ダウンロード資料

Claude 導入チェックリスト(情報システム・セキュリティ部門向け)

プラン選定・監査ログ・SSO・テナント制限・コスト管理・運用ポリシーまで、Claude / Claude Code を組織へ安全に導入するための確認項目を6カテゴリで整理。導入プロジェクトの進捗管理・監査証跡としてそのままご活用いただけます。

はじめに

DXソリューション営業本部の三浦です。

Claude Codeのような AI コーディングエージェントを組織に導入する際、真っ先に問われるのは「何をしているか把握できるか」という点だと思います。しかし Claude Team プランには管理者向けの監査ログ機能がなく、Claude Codeがどのプロンプトを受け取り、どのファイルを編集し、どのコマンドを実行したかを追跡する手段は、現状 OpenTelemetry(OTel)経由でテレメトリを取得する方法に限られています。

一方で、多くの企業では M365 / Azure をすでに社内基盤として利用しています。監査ログを残す仕組みをわざわざ新規に構築するのではなく、既存の Azure 環境上にログを集約し、使い慣れた Grafana でモニタリングできれば、セキュリティ・ガバナンス部門にとっても導入のハードルが下がるはずです。

今回は Microsoft が公開している「Monitor AI coding agents with OpenTelemetry in Azure Monitor」を参考に、Claude CodeのログをAzure Blob Storage(監査ログの原本保管)とAzure Monitor / Grafana(可視化)の両方に集約する構成を実際に組んで検証してみました。

構成

Azure構成図

Claudeの利用ログをAzureに集約する構成図。Claude Code・Cowork・Office AgentsがOTel CollectorへログをOTLPで送信し、Blob StorageとAzure Monitorの2経路に振り分けたのちGrafanaダッシュボードで可視化する。
  1. Claude の各アプリが OTel でログを送る — Claude Code・Cowork・Office Agents(Word/Excel/PowerPoint アドイン)の3系統。それぞれ管理者設定で送信先を指定します
  2. OTel Collector が受け取る — Azure Container Apps 上で、OpenTelemetry 公式のコンテナイメージをそのまま動かします
  3. 2つの経路に分けて保存する
    保存先 役割
    Blob Storage 監査ログの原本。受け取ったデータを加工せずそのまま保存
    Azure Monitor(Application Insights / Log Analytics) 可視化・分析用
  4. Grafana ダッシュボードで見る — Azure ポータルに内蔵された Grafana で、Microsoft が公開している Claude Code 用の標準ダッシュボードを開くだけです

Claude Code側の設定

Claude Code は環境変数(もしくは管理設定ファイル settings.jsonenv)からテレメトリ設定を読み取ります。個人設定ではなく管理者設定として配布すると、ユーザー側で上書きできず、組織全体で確実にログを収集できます。

{
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "OTEL_METRICS_EXPORTER": "otlp",
    "OTEL_LOGS_EXPORTER": "otlp",
    "OTEL_EXPORTER_OTLP_PROTOCOL": "http/protobuf",
    "OTEL_EXPORTER_OTLP_ENDPOINT": "https://<OTel Collector の Container Apps エンドポイント>",
    "OTEL_LOG_USER_PROMPTS": "1",
    "OTEL_LOG_TOOL_DETAILS": "1",
    "OTEL_METRICS_INCLUDE_VERSION": "true"
  }
}

主な設定項目は以下の通りです。

環境変数 説明
CLAUDE_CODE_ENABLE_TELEMETRY テレメトリ収集の有効化(必須)
OTEL_METRICS_EXPORTER メトリクスの出力先(otlp / console / prometheus / none
OTEL_LOGS_EXPORTER ログ(イベント)の出力先(otlp / console / none
OTEL_EXPORTER_OTLP_PROTOCOL OTLP のプロトコル(http/protobuf / http/json / grpc
OTEL_EXPORTER_OTLP_ENDPOINT OTel Collector のエンドポイント
OTEL_LOG_USER_PROMPTS ユーザーが入力したプロンプト本文を記録するか(既定は無効)
OTEL_LOG_TOOL_DETAILS Bashコマンドやファイルパスなど、ツール実行の詳細を記録するか

OTEL_LOG_USER_PROMPTSOTEL_LOG_TOOL_DETAILS を有効にすることで、後述するダッシュボードのユーザー別パネルやツール使用状況パネルの情報が充実します。プロンプトに機密情報が含まれる可能性がある場合は無効のままにする運用も選択できます。

ClaudeのOTelで取得可能な内容

Claude Code は OTel 経由で「メトリクス(時系列データ)」と「イベント(ログ)」の2種類のテレメトリを出力します。詳細は公式ドキュメント「監視」にまとまっています。

メトリクス

メトリクス名 説明 単位
claude_code.session.count 開始された CLI セッション数 count
claude_code.lines_of_code.count 変更されたコード行数 count
claude_code.pull_request.count 作成されたプルリクエスト数 count
claude_code.commit.count 作成された git コミット数 count
claude_code.cost.usage Claude Code セッションのコスト USD
claude_code.token.usage 使用トークン数 tokens
claude_code.code_edit_tool.decision コード編集ツールの権限決定数 count
claude_code.active_time.total 合計アクティブ時間 s

これらのメトリクスには session.iduser.iduser.account_uuidorganization.idapp.version といった標準属性が付与され、モデル別・チーム別(OTEL_RESOURCE_ATTRIBUTES で付与するカスタム属性)に集計・フィルタリングできます。

イベント(ログ)

監査観点で特に重要なのは以下のイベントです。ツール呼び出しの許可/拒否やAPIエラーまで細かく記録されます。

イベント名 記録タイミング
user_prompt ユーザーがプロンプトを送信したとき
assistant_response モデルがテキストで応答したとき
tool_result / tool_decision ツールが実行されたとき/ツール実行の許可・拒否が判断されたとき
api_request / api_error / api_refusal Claude への API 呼び出しが成功・失敗・拒否されたとき
permission_mode_changed 権限モード(plan / acceptEdits など)が変更されたとき
auth ログイン・ログアウトが行われたとき

tool_result / tool_decision イベントは tool_use_id で相互に紐づけられ、prompt.id を使えば1回のユーザープロンプトから発生したすべてのAPI呼び出し・ツール実行を追跡できます。OTEL_LOG_TOOL_DETAILS=1 を設定すると、Bashで実行したコマンドの内容や編集対象のファイルパスまで記録されるため、監査ログとして十分な粒度になります。

ダッシュボードで確認可能な内容

Microsoft が公開している「Grafana を使用してAIコーディングエージェントを監視する」ガイドに従うと、Azure ポータルで Claude Code 用の Grafana ダッシュボードをそのまま開くだけで、コスト・セッション・ユーザープロンプト・API要求/エラー・モデル別の内訳・ツール使用状況分析が一枚のダッシュボードで確認できます。

実際にダッシュボードを開くと、以下のようなKPIとグラフが表示されます。

  • Summary KPIs:Total Cost(累計コスト)、Total Sessions(セッション数)、User Prompts(送信されたプロンプト数)、API Requests(API呼び出し数)、API Errors(APIエラー数)、Active Time(実利用時間)
  • Daily Cost by Model:claude-sonnet-5 / claude-opus-5 / claude-haiku-4-5 など、モデルごとの日次コストの積み上げグラフ
  • Daily Token Usage by Type:input / output / cacheRead / cacheCreation トークンの使用量の内訳

コスト管理だけでなく、APIエラー率やツール呼び出しの傾向を追うことで、利用状況の異常検知やコスト最適化にも活用できます。

実機確認

実際に Claude Code から OTel でログを送信し、Blob Storage・Grafana ダッシュボードの両方にデータが到達していることを確認しました。

まず Blob Storage 側です。OTel Collector の出力先コンテナ otel 配下に otlp/logsotlp/metrics のプレフィックスで、日付ごと(dt=YYYY-MM-DD)にパーティションされたファイルが自動生成されていました。
otlp/logs にはイベント(ユーザープロンプトやツール実行結果)、otlp/metrics にはコストやトークン使用量などの時系列データが、それぞれ利用日ごとのフォルダに保存されており、Claude Code → OTel Collector → Blob Storage の経路が問題なく機能していることが確認できました。

Blob Storage otel/otlp/logsコンテナのフォルダ構成。dt=2026-08-19、dt=2026-08-20など日付ごとにパーティションされたログファイルが格納されている。
 Blob Storage otel/otlp/metricsコンテナのフォルダ構成。日付ごとにパーティションされたメトリクスファイルが格納されている。

Grafana ダッシュボードにも実際のコストやトークン使用量が反映されていました(Total Cost $3.46、Total Sessions 9、User Prompts 24、API Requests 68 など)。ログとテレメトリの両方が正しく取得できていることを実機で確認できました。

Grafana Claude Code ダッシュボードのSummary KPIs(Total Cost、Total Sessions、User Prompts、API Requests、API Errors、Active Time)と、モデル別の日次コスト・トークン使用量グラフ。

まとめ

今回の検証で、Claude Code の OTel 出力を Azure Blob Storage と Azure Monitor に振り分けるだけで、Microsoft 公式の Grafana ダッシュボードがそのまま動作することを確認できました。コスト・セッション数・API エラー率・ツール使用状況といった、監視に必要な情報が標準ダッシュボードだけでカバーされていました。

また、Blob Storage側には加工前のログ・メトリクスが日付ごとにそのまま保存されるため、Grafanaでの可視化とは別に、監査証跡としてそのまま残しておける点も大きなメリットです。SSOやAzure側の既存のガバナンス設定と組み合わせれば、M365/Azureを利用している企業であれば、セキュリティ・コンプライアンス要件を満たしながらClaude Codeを安全に利用できる土台になると感じました。

Claude Codeのログを安全に管理したい、社内で導入する際に説明責任を果たせる仕組みを用意したい、という方の参考になれば幸いです。

QESでは、ガバナンス整備・セキュアな利用環境構築・利活用コンサルティング・セキュリティレビューまで、Claude / Claude Code の組織導入を一貫して支援しています。AWS(Amazon Bedrock)経由での提供にも対応しています。支援内容は下記のサービスページ、および無料の「Claude 導入チェックリスト」をご覧いただくか、お問い合わせフォームよりお気軽にご相談ください。

▼ 無料ダウンロード資料

Claude 導入チェックリスト(情報システム・セキュリティ部門向け)

プラン選定・監査ログ・SSO・テナント制限・コスト管理・運用ポリシーまで、Claude / Claude Code を安全に導入するための確認項目を6カテゴリで整理。導入プロジェクトの進捗管理・監査証跡としてそのままご活用いただけます。

※このブログで参照されている、Anthropic、Claude、Claude Code、Claude Cowork は、Anthropic, PBCの米国およびその他の国における商標または登録商標です。

※このブログで参照されている、Microsoft、Azure、Azure Managed Grafana は、Microsoft Corporationの米国およびその他の国における商標または登録商標です。また、Grafana はGrafana Labsの商標です。

  • このエントリーをはてなブックマークに追加

お問い合わせ

Contact

ご質問やご相談、サービスに関する詳細など、何でもお気軽にご連絡ください。下記のお問い合わせフォームよりお気軽に送信ください。

お問い合わせ

資料ダウンロード

Download

当社のサービスに関する詳細情報を掲載した資料を、下記のページよりダウンロードいただけます。より深く理解していただける内容となっております。ぜひご活用ください。

資料ダウンロード