Zabbixの外部システム(Splunk Enterprise)連携について

こんにちは。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_connectorsourcetype には httpevent が自動でセットされます。

 

まとめ

今回やったことを振り返ります。

手順 ポイント
HEC設定 トークン発行 + グローバル有効化が必須
allowQueryStringAuth ZabbixコネクタはURLクエリでトークンを渡すため必須
Zabbix設定 StartConnectors を0より大きい値にしないとコネクタが動かない

Zabbixコネクタはタグフィルターも使えるので、特定のアイテムだけSplunkに流す絞り込みも可能です。SIEMやデータレイク連携の入り口として活用しやすい機能だと感じました。

次回も、こうしたZabbixと外部システムの連携について書いていきたいと思います。

それでは、よいZabbixライフを。

SCSK Plus サポート for Zabbix

★YouTubeに、SCSK Zabbixチャンネルを開設しました!★

★X(旧Twitter)に、SCSK Zabbixアカウントを開設しました!★

著者について

Zabbixの構築をメインに担当しています。
■資格
 Zabbix認定プロフェッショナル
 AWS Certified Solutions Architect - Professional
 Google Certified Professional - Cloud Architect
 LPIC 303,304 ORACLE MASTER Gold DBA 11g
 CCNA Oracle Certified Java Programmer, Silver SE 7

小寺崇仁をフォローする

クラウドに強いによるエンジニアブログです。

SCSKでは、自社クラウドと3大メガクラウドの強みを活かし、ハイブリッドクラウド/マルチクラウドのソリューションを展開しています。業界の深い理解をもとに、お客様の業務要件に最適なアーキテクチャをご提案いたします。サービスサイトでは、お客様のDX推進をワンストップで支援するサービスの詳細や導入事例を紹介しています。

Zabbix運用・監視
シェアする
×
タイトルとURLをコピーしました