Splunk への REST API 接続の確認については、curl コマンドを使って確認できる。
各種手法が以下リンク先にあるのでこれを参考にする。
Use cURL to manage HTTP Event Collector tokens, events, and services
認証が ID/PASS なのか Token なのかで書き方は少し違うけれども両方サンプルがあるのでその通りにやればよい。
トークン使うやり方、Splunk 側の設定としては、設定 → データ入力 → HTTPイベントコレクタ → グローバル設定 でトークンを有効にする。
そして接続用にトークンを発行する。設定 → データ入力 → HTTPイベントコレクタ → 新規トークン でトークンを発行する。このトークンでアクセスする先のインデックスも指定しておく。
出来上がったトークンを使って試しに Splunk へイベントを送ってみよう。
以下コマンド例。 Authorization: Splunk の後ろの文字列は、前の手順で発行したトークンに置き換えればよい。
curl -k "https://mysplunkserver.example.com:8088/services/collector" \
-H "Authorization: Splunk CF179AE4-3C99-45F5-A7CC-3284AA91CF67" \
-d '{"event": "Hello, world!", "sourcetype": "manual"}'
応答が 403 なら認証が通ってない。権限があるかトークンが間違ってないか確認しよう。
応答が 400 ならデータフォーマットが変なことが多いので見直そう。ほかに Splunk 側のトークン発行した時の設定で インデクサー確認を有効化 を チェックなし にすれば通ることもある。
うまく通るようになったらどんどんデータを放り込もう。データは蓄えれば蓄えるほど楽しくなる。