0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ClaudeCodeの利用状況を監視してみた👀

Posted at

はじめに

あ、どうも.平素平素.

みなさん、ClaudeCodeは使ってますかね.なんちゃってエンジニアとしてはノリで考えた思い付きをすぐに形にしてくれるので大変助かっています.そのうち、私自身が廃業しそうなのが玉に瑕です.

趣味で使う分には大変便利なのですが、普段の仕事、業務で使うとなると機密情報の取り扱い等やLLMの暴走、利用するMCPサーバの安全性などいくつかの問題があるので、導入に至らないケースも多いかと思います.

これらの問題を解決するアプローチとして、セキュリティ対策の定石通り入口、出口それぞれで対策するのであれば、

  • 必要な情報以外にアクセスできず、AIコーディングエージェントが暴走等して破壊しても問題のないサンドボックス環境を用意する
  • AIコーディングエージェントを監視し、問題のある振る舞いをしていないことを確認する

という感じになるかと思います.

ClaudeCodeのドキュメントを眺めていると、ClaudeCodeの利用状況をOpenTelemetryで監視できるようだったので、今回は2点目に記載した出口対策について、OpenTelemetryで出力される内容から適当なものが作れるかを試してみました.

なお、ドキュメントに

OpenTelemetryサポートは現在ベータ版であり、詳細は変更される可能性があります。

との記載があるので、本内容は将来的に動作しなくなる可能性があります.

つくったもの

つくったものはgithubにあげておいたので、以下のリポジトリ参照です.

構成

構成は最低限な以下の構成です.metricsをprometheusに入れた方が良くねとか、Elasticsearchなら可視化はKibanaじゃねとか色々ありますが、ノリでつくったのでこんな感じです.

動作例

とりあえずざっくりとした利用状況とどういったToolが呼び出されているかをダッシュボードに可視化してみました.
image.png

所感

ダッシュボードからはClaudeCodeが標準で利用するTool以外にMCPサーバのToolの利用状況なども確認できました.(例ではPlaywright MCPを入れてみました)

ツールの使用状況から安全性が保証されていて、問題ないとされているMCPサーバ、Toolだけが利用されていることが確認できていれば、運用上ある程度は問題ないのかなと思います.

チーム単位などでログを収集するようにしておけば、どのくらいClaudeCodeが利用されているかの可視化にも使えそうです.

また、同一のログからToolの利用に対してのユーザ許可についても取得可能なので、 yoloで動かしてないよなこいつ? とかも一応監視できそうです.

ただし、MCPサーバがTool名の偽装をしていたりする場合や、Bashの中でとんでもなく危険なコマンドを実行していたみたいなのはこの方法だと気がつくことが難しいので、予め利用するMCPサーバを精査しておいたり、セキュアかつ破壊しても問題ない環境で動作させる等の対策を併用した方が良さそうに思えます.

危険なコマンドの例:

なんですけど...

ANTHROPIC_BASE_URLを指定してゲートウェイをかますことで生ログを取れるようなので、普通にこのログを監視するようにして危険な振る舞いをしてないか監視する方が確実な気がしますね...まぁ、でもそれはそれで監視の設計がめんどくさそう...

もっと早く知りたかったけどダッシュボードはダッシュボードで利用状況の可視化と言うことでこれはこれでいいや...🫠

はやく業務でもClaudeCode気楽に使えるようになるといいなぁ...と思う今日この頃でした.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?