AWS DevOps AgentでZabbix MCPサーバーを連携する

はじめに
AWS Summit 2026でも紹介されていたDevOps AgentとZabbix MCPサーバーとの連携を試してみたいと思います。
今回は監視ツールとAIを組み合わせ、自然言語で聞くだけでアラートに関して教えてくれるように設定をしてみます。
また、DevOps Agentを用いた運用自動化はこちらのブログを参考にしていただければと思います!
前提条件
- プライベートEC2にZabbix 6.0がDockerで稼働済み
- 踏み台EC2(パブリックサブネット)経由でプライベートEC2にSSH接続可能
- NATゲートウェイ経由でインターネット接続可能
全体構成

STEP 1: 必要パッケージのインストール
踏み台からEC2に接続し、後続の作業に必要なパッケージを導入します。
sudo dnf install -y git python3.11 pango git --version python3.11 --version
STEP 2: Zabbix MCP Serverのインストール
initMAX/zabbix-mcp-server はZabbix APIをMCPプロトコルで公開するOSSです。インストールスクリプトが用意されているため、簡単に導入できます。
cd ~ git clone https://github.com/initMAX/zabbix-mcp-server.git cd zabbix-mcp-server sudo ./deploy/install.sh
STEP 3: Zabbix APIトークンの取得
MCP ServerがZabbix APIを呼ぶために、APIトークンが必要です。3ステップで取得します。
① Adminでログインしてセッショントークンを取得します。
curl -s http://localhost/api_jsonrpc.php \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"username": "Admin",
"password": "zabbix"
},
"id": 1
}'
返ってきた result の値をコピーします。
② APIトークンを作成します。auth には①で取得した result を指定します。
curl -s http://localhost/api_jsonrpc.php \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "token.create",
"params": {
"name": "zabbix-mcp",
"userid": "1"
},
"auth": "①で取得したresult",
"id": 2
}'
返ってきた tokenid をコピーします。
③ APIトークン文字列を生成します。同じく auth には①の result を指定します。
curl -s http://localhost/api_jsonrpc.php \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "token.generate",
"params": ["tokenid"],
"auth": "①で取得したresult",
"id": 3
}'
返ってきた token の値をコピーして保存します。
STEP 4: MCP Bearer Tokenの生成
MCP ServerへのアクセスをBearerトークンで保護します。Pythonで安全なランダム文字列を生成します。
python3.11 -c "import secrets; print('zmcp_' + secrets.token_hex(32))"
生成されたトークンをコピーして保存します。
STEP 5: config.tomlの設定
MCP Serverの設定ファイルに、これまで取得した情報を書き込みます。
sudo vi /etc/zabbix-mcp/config.toml
以下の内容を設定します。
[server] host = "0.0.0.0" port = 8080 transport = "http" public_url = "https://CLOUDFLARE_TUNNEL_URL" ; STEP7で取得後に更新 log_level = "info" log_file = "/var/log/zabbix-mcp/server.log" auth_token = "zmcp_STEP4で生成したトークン" ; Option 1のみ有効化 rate_limit = 300 compact_output = true [zabbix.production] url = "http://localhost" api_token = "STEP3で取得したAPIトークン" read_only = false verify_ssl = false
STEP 6: MCP Serverを起動
設定後、サービスを起動してヘルスチェックで動作を確認します。
sudo systemctl start zabbix-mcp-server sudo systemctl enable zabbix-mcp-server curl -s http://localhost:8080/health \ -H "Authorization: Bearer zmcp_XXXXX"
ヘルスチェックで {"status":"ok"} が返ればOKです。
STEP 7: Cloudflare Tunnelのセットアップ
DevOps AgentがMCP Serverに接続するには、インターネット経由でアクセス可能なHTTPSエンドポイントURLが必要です。今回のZabbix MCP ServerはプライベートサブネットのEC2上で動いているため、そのままではDevOps Agentから到達できません。
そこでCloudflare Tunnelを使います。EC2内部からCloudflareのネットワークへアウトバウンドのトンネルを張ることで、インターネット側に公開URLが発行され、DevOps AgentはそのURLを通じてMCP Serverにアクセスできるようになります。セキュリティグループのインバウンドルール変更やElastic IPも不要で、アカウント登録なしで即座に利用できる点が利点です。
EC2内部のMCP Serverをインターネットからアクセスできるよう、Cloudflare Tunnelでトンネルを開設します。
curl -Lo ~/cloudflared \ https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 chmod +x ~/cloudflared nohup ~/cloudflared tunnel \ --url http://localhost:8080 \ > /tmp/cloudflared.log 2>&1 & sleep 5 grep "trycloudflare.com" /tmp/cloudflared.log
ダウンロードしてバックグラウンドで起動し、ログから発行されたURL(https://xxxx-xxxx-xxxx-xxxx.trycloudflare.com)を確認します。
注意: trycloudflare.com のURLはEC2の再起動のたびに変わります。STEP 8でconfig.tomlに反映させる必要があります。
STEP 8: config.tomlのpublic_urlを更新
STEP 7で取得したURLをconfig.tomlに反映し、サービスを再起動します。
sudo sed -i \ 's|public_url = ".*"|public_url = "https://xxxx-xxxx-xxxx-xxxx.trycloudflare.com"|' \ /etc/zabbix-mcp/config.toml sudo grep "public_url" /etc/zabbix-mcp/config.toml sudo systemctl restart zabbix-mcp-server curl -s https://xxxx-xxxx-xxxx-xxxx.trycloudflare.com/health \ -H "Authorization: Bearer zmcp_XXXXX"
STEP 7で取得したURLに更新し、再起動後に外部から接続テストします。{"status":"ok"} が返ればOKです。
STEP 9: AWS DevOps Agentを作成後、MCP Serverを登録
DevOps Agentの設定をします。名前と設定言語、各ロールについて設定してください。

機能を追加から、新しいMCPサーバーの登録を行います。DevOps AgentがZabbix MCP Serverを「ツール」として認識するためです。
AWSコンソール -> DevOps Agent ->「Capability providers」->「MCP servers」 ->「Add MCP server」 設定: - 名前 : zabbix-mcp - エンドポイントURL : https://xxxx.trycloudflare.com/mcp - プライベート接続 : チェックなし - 認証タイプ : APIキー - APIキー名 : zabbix-mcp-token - ヘッダー名 : Authorization - APIキー値 : Bearer zmcp_XXXXX
![]()
STEP 10: 動作確認
右上の「ウェブアプリを起動」から起動してください。DevOps Agentのチャット画面で以下を試してみましょう。
「ホスト一覧を表示して」 「現在発生しているアラートを教えて」 「Zabbix serverのCPU使用率の履歴を見せて」


Zabbixのホスト情報やアラート履歴がチャットで返ってくれば連携成功です。
まとめ
今回はDevOps AgentでZabbix MCPを使用する方法を解説しました。様々なMCPの登場によってLLMと既存の運用ツールを接続するパターンは今後ますます増えると思います。今回の構成はその一例として参考になれば幸いです。
筋肉で解決するタイプのエンジニア
Recommends
こちらもおすすめ
-
Zabbixで名前解決ができているのか監視する
2023.12.15
-
Zabbix6.0のネイティブHA機能を試してみた
2022.3.1
-
Amazon Bedrock 経由で Codex CLI を利用するまで
2026.6.11
Special Topics
注目記事はこちら
データ分析入門
これから始めるBigQuery基礎知識
2024.02.28

AWSの料金が 10 %割引になる!
『AWSの請求代行リセールサービス』
2024.07.16
