はじめに
従来はデータ基盤毎にクエリ言語の文法を理解する必要がありましたが、分析者の立場に立つとそれを都度習熟するのは非常に負荷が高いです。(特にメインの業務が別である、複数の基盤を見なければいけないケースなど)
そこでSplunk EnterpriseにはSplunk MCP Serverがあり、生成AIから自然言語でSplunkを操作することが可能になっています。(クエリ言語を学ぶハードルが下がっている...!)
したがって本記事では手元の環境でsplunk enterprise(フリー版)をセットアップして生成AI(codex)からsplunkを操作するまでを一通り試したいと思います。
概要
利用する技術要素は以下の通りです。また環境としてはmac(intel)上にsplunk enterpriseをホストする形で構築しています。
- docker
- splunk enterprise(フリー版の範囲で利用します)
- codex
Splunk Enterpriseの構築
イメージのpull
docker pull splunk/splunk
イメージの確認
> docker images
i Info → U In Use
IMAGE ID DISK USAGE CONTENT SIZE EXTRA
splunk/splunk:latest 22474424c789 6.56GB 1.83GB
起動
<mypassword>は任意のものを設定してください。
docker run -d \
--name splunk \
-p 18000:8000 \
-e 'SPLUNK_START_ARGS=--accept-license' \
-e 'SPLUNK_GENERAL_TERMS=--accept-sgt-current-at-splunk-com' \
-e 'SPLUNK_PASSWORD=<mypassword>' \
splunk/splunk:latest
http://localhost:18000 へアクセスしてUIが見えたら成功です。
Splunk MCP Serverのインストール
splunkのUIへログイン
App>Appを名前でサーチにmcpと入力
Splunk MCP Serverをインストール
splunk.com へのログインを求められるので事前に会員登録をしておく。

Tokenの取得
Create MCP Encrypted Tokenを押下しTokenを取得


MCPクライアント(codex)の設定
~./codex/config.tomlに以下を追記
※endpointはlocalhost:18000の前提で記載しています。適宜ご自身の環境に合わせて修正してください。
[mcp_servers.splunk]
command = "npx"
args = [
"-y",
"mcp-remote@latest",
"http://localhost:18000/en-US/splunkd/__raw/services/mcp",
"--allow-http",
"--transport",
"http-only",
"--header",
"Authorization: Bearer ${SPLUNK_MCP_TOKEN}",
"--debug"
]
env_vars = ["SPLUNK_MCP_TOKEN"]
startup_timeout_sec = 30
tool_timeout_sec = 60
MCPクライアントからsplunkへアクセス
codex CLIヘ入る
codex
データ解析の依頼テスト
試しに以下の依頼を実施
› splunk上にどんなデータが入っているか教えて
いくつか許可を求められましたが、すぐ下記の結果が返ってきました。
• Splunk の接続ツールを確認して、まずはインデックスやソースタイプの一覧から中身を把握します。
...中略...
• Splunk 上に入っているデータは、ほぼ Splunk 自身の内部運用ログだけ です。ユーザー/業務アプリのログらしきものは見当たりませんでした。
調査時点の主なイベント数は以下です。
index 件数 内容
━━━━━━━━━━━━━━━━ ━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
_internal 約 596k Splunk daemon、metrics、health、access、MCP server、sidecar/Postgres など
──────────────── ────────── ─────────────────────────────────────────────────────────────────────────────
_introspection 約 443k リソース使用量、KV Store、ディスク、HEC メトリクス、search telemetry
──────────────── ────────── ─────────────────────────────────────────────────────────────────────────────
_audit 約 39.7k audittrail / audittrailv2。検索、ログイン、設定・ナレッジ操作などの監査ログ
──────────────── ────────── ─────────────────────────────────────────────────────────────────────────────
_configtracker 336 Splunk 設定変更ログ
──────────────── ────────── ─────────────────────────────────────────────────────────────────────────────
_telemetry 48 Splunk telemetry / instrumentation
期間は検索結果上で 2026-08-13 07:52 頃から 2026-08-14 13:53 頃まで。ホストはほぼ 04122f72b6b3、一部 127.0.0.1 です。
空または実データなしだったものは main, summary, history, _dsappevent, _dsclient, _dsphonehome などです。つまり現状は、外部アプリケーションログや業務データは投入されておらず、Splunk インスタンス自身のログだけが溜
まっている状態です。
特にデータの投入はしていないため上記の出力が返ってきました。
ダッシュボード作成依頼のテスト
以下の依頼を実施
› splunkのダッシュボードを作ってもらうことはできますか? splunk自身のリソース使用量などをみれるものを作って欲しいです
こちらは少し難航...というかMCPで使っているtokenだけだとダッシュボードの更新ができないようだったので、別途ID/PASSを渡して対応してもらったところできました。
(codex君も指摘してくれていますが、今回横着してチャットでID/PASSを渡しましたが本来は環境変数などで渡した方が良かったかなと思います。)
• できます。まずは現在のワークスペースに Splunk app の設定ファイルを置ける構成があるか確認し、同時に利用可能な Splunk ツールでダッシュボード作成操作までできるか見ます。
...中略...
• 作成できました。URL はこれです。
http://localhost:18000/en-US/app/search/splunk_self_resource_overview
確認結果:
- HTTP 200
- Splunk Self Resource Overview のページ表示を確認
- Search app の dashboard として登録済み
- 更新用スクリプト deploy_splunk_dashboard.sh も動作確認済み
実運用なら、今回チャットに出したパスワードは後で変更しておくのが無難です。
所感
まず、何もデータを入れていないプレーンなSplunkで今回色々試してみました。
もっといろいろなことをさせたい場合は、テストデータを色々入れてみた上で試してみた方が面白いと思います。
また、今回は仮で立てた環境なのでcodexの処理をそのまま全てAllowして実行させています。
実環境でやるにあたってはしっかり内容の精査をすることはもちろん、token自体の権限制御もしっかりする必要があるかと思います。



