はじめに
CNCFのSandbox ProjectにHolmesGPTというAIOpsのOSSがあったので、試しに使ってみた備忘録(体裁はめちゃくちゃです)。
HolmesGPTとは
HolmesGPTは、Robusta.Dev開発を始め、Microsoftも活発にコントリビュートをしているインシデント対応がメインのAIエージェントです。様々なデータソース、ツールと接続可能で、LLMもクラウドサービスの他にローカルLLM(Ollama)を利用することが可能です。

引用元:https://github.com/HolmesGPT/holmesgpt
インタラクティブに指示を与える方法に加え、最近Holmes Operatorという自動でシステムを監視し、トラブルが起きた時に原因調査を行う機能も追加されました。
今回はCLI Installationの記載に従って、PodがPendingになっている原因調査を試してみました。
特別なことは行なっていません。
ローカル環境にminikubeでK8sを構築、pipxでHolmesGPTをインストール、OpenAI APIを利用するためのAPI Keyをセットし、上記URLに書かれているPodのデプロイ(Pendingで止まる)、holmes askで原因調査をさせてみただけです。
※ 本当はOllamaで試したかったけどうまくいかなかったので、泣く泣くOpenAI API利用にシフト 5/20追記: 道半ばですがアップデートあり
デプロイしたPodのマニフェストは以下の通りです。
存在しないnodeSelectorが指定されているのでPendingになります。
apiVersion: v1
kind: Pod
metadata:
name: user-profile-import
spec:
containers:
- name: nginx
image: nginx
nodeSelector:
label: someLabel
結果
以下のコマンドを実行すると、しばらく時間をおいて
holmes ask "what is wrong with the user-profile-import pod?" --model="gpt-5"
結果が出ました。
Issue summaryは事象をまとめてくれ、Why, How To fix Option Aで原因と、対処の選択肢をあげてくれています。
クラスタにsomeLabelとラベルがついたノードが存在しないからlabel=someLabelを満たすノードを作ってください、と言われていますね。
長いですが、実際の動きを録画した動画を貼っておきます。
今回は2回同じコマンドを実行しましたが、OpenAIの課金は$0.33でした(使いすぎ注意)。
5/20追記: Ollamaの利用
HolmesGPTのドキュメントにも書かれていますが、Tool callingに対応したモデルを用いる必要がありました。
最初に使っていたqwen2.5:7bがTool callingをサポートしていなかったため、Podのステータス取得などを行うビルトインツールの呼び出しに軒並み失敗していました。
qwen3:14bはTool callingをサポートしているので、ドキュメントに則って以下の通り実行することで、結果は一応返ってきました。
ollama pull qwen3:14b
export OLLAMA_API_BASE="http://localhost:11434"
export MODEL="ollama_chat/qwen3:14b"
holmes ask "what is wrong with the user-profile-import pod?"
スクリーンショットのTasksは質問に答えるものがリストアップされてますが、それに必要なツールが十分に実行されていないようです。
まとめ
K8sの例を試しましたが、K8sのインシデント対応だけでなく様々なシステムに適用できるようです。
Ollamaはexperimentalで、それが理由なのか今回はうまくいきませんでした。
色々触るにも課金は怖いのでOllamaでも動くように試行錯誤してみます。


