Data Stream Processor (DSP)バージョン1.1にはいくつかの優れた新機能があります。その1つが、HTTP経由でイベントを受信する機能です。
SplunkのHTTPイベントコレクタの機能はご存知だと思いますが、それをKubernetesクラスタ上で動かすことでより便利に使うことができるようになります。複数のヘビーフォワーダーを使ってHTTPイベントを収集してSplunkへ送信している方によりよい方法をご紹介します。
Splunk DSPは、データをリアルタイムで処理して指定のプラットフォームに送信するデータストリーム処理サービスです。データをインデックスする前の処理段階で、複雑な変換やトラブルシューティングを行うことができます。
DSPで現在サポートされているソースとシンクは次のとおりです。赤い丸で囲まれているのがこのブログで使用するソースとシンクです。
注:この手順にはSCloudバージョン3以上が必要です。
まずは、./scloud loginを実行して、すべてが正しく機能していることを確認します。エラーが発生しなければ、次のコマンドを実行してHECトークンを生成します。
./scloud ingest post-collector-tokens --name testtoken --tenant default
トークンの詳細を示すメッセージが返されます。注:この後の処理でトークンが必要になります。
トークンが作成されたので、これを使ってHTTPイベントをエンドポイントに送信できます。この例ではエンドポイントとして、https://dsp.example.com:31000/services/collector/eventを使用します。
APIの呼び出しはコマンドラインからcurlを使用することもできますが、Postmanを使えば簡単にリクエストを構成してスクリプトにすることができます。
PostmanでPOSTリクエストを作成し、[Headers]タグ にAuthorizationヘッダーを作成し、「Splunk」とスペースに続けてコピーしておいたDSP HECトークンを設定します。
注:[Auth] (認証)タブは使用しないので無視してください。
次に、[Body] (本文)タブをクリックし、下のドロップダウンメニューで[raw]を選択してから[JSON]を選択しイベントを作成します。次の図に入力例を示します。
[Send] (送信)をクリックすると、「Success」(成功)メッセージが表示されるはずです。
成功メッセージが表示されたら、Postmanは開いたままにしておきます。DSPパイプを作成、プレビューして有効にするときに、[Send]をまた何度かクリックする必要があります。
DSPに移動してログインします。[Build Pipeline] (パイプラインの作成)に移動して、[Read from Splunk Firehose] (Splunk Firehoseから読み込む)を選択します。次の図のようになります。
上部の[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にイベントが表示されます。
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全般についてさらに詳しい情報をご希望の場合は、Splunkの営業担当者までお問い合わせください。
ストリーミングをぜひご活用ください。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。