PLATFORM

Data Stream Processor 1.1 - HTTPイベントコレクタ(HEC)を使用する

Data Stream Processor (DSP)バージョン1.1にはいくつかの優れた新機能があります。その1つが、HTTP経由でイベントを受信する機能です。

SplunkのHTTPイベントコレクタの機能はご存知だと思いますが、それをKubernetesクラスタ上で動かすことでより便利に使うことができるようになります。複数のヘビーフォワーダーを使ってHTTPイベントを収集してSplunkへ送信している方によりよい方法をご紹介します。

前提条件:

  • データをSplunkに送信するDSP環境
  • SCloudバージョン3以上
  • ポート要件 - DSP HECのリッスン用ポート31000
  • Postmanアプリケーション

DSPの概要と製品への適用方法

Splunk DSPは、データをリアルタイムで処理して指定のプラットフォームに送信するデータストリーム処理サービスです。データをインデックスする前の処理段階で、複雑な変換やトラブルシューティングを行うことができます。

DSPで現在サポートされているソースとシンクは次のとおりです。赤い丸で囲まれているのがこのブログで使用するソースとシンクです。Splunk DSP

主な手順

  1. SCloudを使ってHECトークンを作成する
  2. Postmanを使ってHTTP POSTイベントを作成し、DSPに送信する
  3. パイプでイベントを可視化する
  4. Splunkにイベントを送信する

 

1) SCloudを使ってHECトークンを作成する

注:この手順にはSCloudバージョン3以上が必要です。

まずは、./scloud loginを実行して、すべてが正しく機能していることを確認します。エラーが発生しなければ、次のコマンドを実行してHECトークンを生成します。

./scloud ingest post-collector-tokens --name testtoken --tenant default

トークンの詳細を示すメッセージが返されます。注:この後の処理でトークンが必要になります。

トークンが作成されたので、これを使ってHTTPイベントをエンドポイントに送信できます。この例ではエンドポイントとして、https://dsp.example.com:31000/services/collector/eventを使用します。

2) Postmanを使ってHTTP POSTを作成する

APIの呼び出しはコマンドラインからcurlを使用することもできますが、Postmanを使えば簡単にリクエストを構成してスクリプトにすることができます。

PostmanでPOSTリクエストを作成し、[Headers]タグ にAuthorizationヘッダーを作成し、「Splunk」とスペースに続けてコピーしておいたDSP HECトークンを設定します。

注:[Auth] (認証)タブは使用しないので無視してください。

次に、[Body] (本文)タブをクリックし、下のドロップダウンメニューで[raw]を選択してから[JSON]を選択しイベントを作成します。次の図に入力例を示します。

PostmanでのHTTP POST作成

[Send] (送信)をクリックすると、「Success」(成功)メッセージが表示されるはずです。

成功メッセージ

成功メッセージが表示されたら、Postmanは開いたままにしておきます。DSPパイプを作成、プレビューして有効にするときに、[Send]をまた何度かクリックする必要があります。

3) SPLv2を使ってDSPパイプでHECイベントを可視化する

DSPに移動してログインします。[Build Pipeline] (パイプラインの作成)に移動して、[Read from Splunk Firehose] (Splunk Firehoseから読み込む)を選択します。次の図のようになります。

DSPパイプでHECイベントを可視化する

上部の[Canvas] (キャンバス)の横にある[SPL]をクリックします。環境によっては、この時点で各種のユニバーサルフォワーダーからデータが取り込まれます。HECイベントを表示するには、直後に「where」ステートメントを追加する必要があります。

| from read_splunk_firehose()」ソースの後に「| where source_type=”hec_input”;」を追加します。次のようになります。

| from read_splunk_firehose() | where source_type="hec_input";

注:最後にセミコロンを忘れずに付けてください。

[Start Preview] (プレビューの開始)をクリックし、SPLで作成されたパイプのWhere関数をクリックします。「Polling for events to preview」(プレビューするイベントをポーリング中)と表示されます。Postmanに戻って[Send]をクリックします。これで、下の図のようにDSPにイベントが表示されます。

SPL2 Pipeline Builder

4) Splunkにイベントを送信する

DSPでイベントをプレビューし終えたら、そのイベントをSplunkに送信します。データのプレビューがまだ表示されている場合は、[Stop Preview] (プレビューの停止)をクリックします。

この操作にはキャンバスを使用する方が簡単なので、[Canvas]タブをクリックします。

Where関数の右側にある[+]ボタンをクリックします。新しい関数を追加するためのメニューが右側に表示されます。検索バーに「Splunk」と入力して、[Write to Splunk Platform] (Splunkプラットフォームに書き出す)を選択します。

ここではDSPがすでにSplunkに接続されていると仮定していますが、まだの場合はこちらのガイドの手順に従って接続してください。

[Write to Splunk Enterprise] (Splunk Enterpriseに書き出す)シンクの[View Configurations] (設定の表示)セクションで、Splunk導入環境のconnection_idを選択し、送信先のインデックス(この例では「main」)を入力します。ここではペイロードは不要なので、ペイロードボックスに「null」と入力します。[SPL]タブをクリックすると、次の図のように表示されます。

| from read_splunk_firehose() | where source_type="hec_input" | into splunk_enterprise("e4671bf2-119c-4b9c-8e84-29485cfe52ff", "main", null);

[Save] (保存)をクリックし、パイプの名前と説明を入力して保存してから、[Activate Pipe] (パイプの有効化)をクリックします。数秒待ってからPostmanに戻り、[Send]ボタンを数回クリックします。注:毎回成功メッセージが表示されるはずです。

有効化したパイプは次のようになります。

有効化したパイプ

Splunkに戻り、「index=main sourcetype=hec_input」をサーチします。イベントが表示されれば手順は完了です!

DSPダッシュボード

 

DSPについて詳しくは、こちらのドキュメントを参照してください。

DSPの製品概要についてはこちら。DSP全般についてさらに詳しい情報をご希望の場合は、Splunkの営業担当者までお問い合わせください。

ストリーミングをぜひご活用ください。

Kendrick Tugwell
Posted by

Kendrick Tugwell

I am a Splunk Accredited Consultant II and have been working for Splunk for nearly 4 years. I am currently working as an Architect based in the United Kingdom. I specialise in Cloud and I'm a Certified AWS Solutions Architect.

TAGS
Show All Tags
Show Less Tags