こんにちは。SCSK小寺です。
今回はZabbixと外部システムの連携機能についてご紹介いたします。
Zabbix 6.0から追加されたコネクタ機能を使うと、監視データを外部システムにリアルタイムでストリーミング転送できます。
今回はSplunk EnterpriseをターゲットにZabbixが収集したアイテム値をSplunk HEC(HTTP Event Collector)経由で流し込む構成を検証してみました。
今回の環境
- Zabbix Server(Linux)
- Splunk Enterprise
- Zabbix → Splunk 間はHTTPS(SSL有効)で接続
1. Splunk HECの設定
グローバル設定
Splunk Web UIから「設定 → データ入力 → HTTPイベントコレクター」を開き、「グローバル設定」をクリックします。
- 全トークン: 有効
- HTTPポート番号: 8088
- SSLを有効にする: 有効
トークンの作成
「新規トークン」から以下の設定でトークンを作成します。
| 項目 | 設定値 |
|---|---|
| 名前 | zabbix_connector |
| デフォルトインデックス | main |
| ソースタイプ | 自動 |
| Appコンテキスト | launcher |
作成後、トークン値が発行されます。このトークンはZabbix側のコネクタURL設定で使用します。
トークン値: 1259820a-49aa-4ac5-beec-a097db0864d1(例)
クエリストリング認証の有効化
ZabbixコネクタはHECトークンをURLのクエリパラメータ(?token=...)で渡します。Splunkのデフォルト設定ではこの渡し方が無効なため、以下で有効化します。
/opt/splunk/etc/apps/splunk_httpinput/local/inputs.conf
allowQueryStringAuth = true
ZabbixコネクタはHTTPヘッダーの設定ができないため、HECトークンをAuthorizationヘッダーで渡すことができません。代わりにGETパラメータ(?token=...)にトークンを埋め込む方式を使用します。Splunkのデフォルトではクエリストリングによるトークン渡しが無効なため、allowQueryStringAuth = true で明示的に有効化する必要があります。
2. Zabbix Serverの設定
StartConnectorsの設定
コネクタ機能はZabbix Serverのワーカープロセスとして動作します。zabbix_server.conf に以下を追加・変更します。
vi /etc/zabbix/zabbix_server.conf
### Option: StartConnectors # Range: 0-1000 # Default: 0 StartConnectors=10
設定後、Zabbix Serverを再起動します。
systemctl restart zabbix-server
3. Zabbixコネクタの作成
Zabbix Web UIから「管理 → 一般設定 → コネクタ」を開き、「コネクタの作成」をクリックします。
| 項目 | 設定値 |
|---|---|
| 名前 | splunk |
| プロトコル | Zabbixストリーミングプロトコル v1.0 |
| データのタイプ | アイテムの値 |
| URL | https://192.168.0.244:8088/services/collector/raw?token=<トークン値> |
| HTTP認証 | なし |
| SSLピア検証 | 無効 |
| SSLホスト検証 | 無効 |
| タイムアウト | 5s |
URLの形式は Splunk HEC の /services/collector/raw エンドポイントを使用します。クエリパラメータでトークンを渡す方式です。
SSLピア検証とSSLホスト検証は今回オフにしていますが、本番では適切な証明書設定を行ってください。
4. データ確認
Splunk Web UIの「Search & Reporting」で以下のSPLを実行します。
index="main"

ZabbixのアイテムデータがJSON形式でSplunkに届いていることが確認できました。
{
"host": {"host": "taka-pc", "name": "taka-pc"},
"groups": ["home"],
"item_tags": [{"tag": "component", "value": "cpu"}],
"itemid": 50886,
"name": "CPU utilization",
"clock": 1783745706,
"ns": 111024075,
"value": 14.336279,
"type": 0
}
Zabbixから連携したデータ確認でき、CPU使用率・メモリ・ネットワーク・Windowsサービス状態など多種のアイテムが転送されていました。
source フィールドには http:zabbix_connector、sourcetype には httpevent が自動でセットされます。
まとめ
今回やったことを振り返ります。
| 手順 | ポイント |
|---|---|
| HEC設定 | トークン発行 + グローバル有効化が必須 |
| allowQueryStringAuth | ZabbixコネクタはURLクエリでトークンを渡すため必須 |
| Zabbix設定 | StartConnectors を0より大きい値にしないとコネクタが動かない |
Zabbixコネクタはタグフィルターも使えるので、特定のアイテムだけSplunkに流す絞り込みも可能です。SIEMやデータレイク連携の入り口として活用しやすい機能だと感じました。
次回も、こうしたZabbixと外部システムの連携について書いていきたいと思います。
それでは、よいZabbixライフを。
SCSK Plus サポート for Zabbix
★YouTubeに、SCSK Zabbixチャンネルを開設しました!★
★X(旧Twitter)に、SCSK Zabbixアカウントを開設しました!★







