3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

Splunkのデータパイプラインについて学ぶ

Last updated at Posted at 2024-06-30

こんにちは。torippy1024です。

今日は、splunkの仕組みを理解する上で重要なポイントであるデータパイプライン(Splunkがどのようにデータを取得し、処理し、提供するか)についてざっくり学びます。

ぶっちゃけると以下の公式ドキュメントのまとめです。
https://docs.splunk.com/Documentation/Splunk/latest/Deploy/Datapipeline

大きな流れ

ログファイルなどのソースから、データを検索可能なイベントに変換するまでのルートを、Splunkではデータパイプラインと呼びます。
データパイプラインは、大きく以下の4つのセグメントに分かれます。

  • 入力(Input)
  • 解析(Parsing)
  • インデックス化(Indexing)
  • サーチ(Search)

image.png

画像引用元:https://docs.splunk.com/File:Datapipeline1_60.png

参考:https://docs.splunk.com/Splexicon:Datapipeline

データパイプラインとコンポーネントのマッピング表

データパイプラインの各セグメントにおいて、重要な役割を果たすSplunkのコンポーネントを示す表は以下の通りです。

データパイプラインセグメント コンポーネント コンポーネントが果たす役割 重要なconfigファイル
入力(Input) ユニバーサルフォワーダー、ヘビーフォワーダー、インデクサー ユニバーサルフォワーダーまたはヘビーフォワーダーがログなどのソースからデータを取得し、ブロックに分割する。 inputs.conf, props.conf, sourcetype, wmi.conf, regmon-filters.conf
解析(Parse) ヘビーフォワーダー、インデクサー インデクサーまたはヘビーフォワーダーが本処理を行う。入力フェーズで転送されてきたデータについて、行のマージまたは分割、タイムスタンプなどの重要なフィールドの抽出、データの圧縮など、データの整理および構造化を行う。 props.conf
インデックス化(Indexing) インデクサー インデクサーが解析されたイベントをディスク上のインデックスに書き込む。 props.conf, transforms.conf
検索(Seeach) インデクサー、サーチヘッド サーチヘッドがインデクサーに対し、SPLで記述されたサーチの指示を行う。インデクサーはサーチを実行し、結果を返却する。サーチヘッドがその結果をGUI上でユーザーに表示する。 props.conf, indexes.conf, segmenters.conf

参考:https://docs.splunk.com/Documentation/Splunk/latest/Deploy/Componentsofadistributedenvironment#How_components_support_the_data_pipeline
https://docs.splunk.com/Documentation/Splunk/latest/Admin/Configurationparametersandthedatapipeline#How_configuration_parameters_correlate_to_phases_of_the_pipeline

入力(Input)セグメント

入力セグメントでは、ログなどのソースからデータを取得し、データをホスト、ソース、ソースタイプなどのメタデータを付与したブロック(64KB)単位に分割してインデクサーまたはヘビーフォワーダーまで転送するまでを行います。

注意しなければならないことが一点あります。ヘビーフォワーダーなどでソースからデータを取得した後、インデクサーなどに転送する前に解析を行う場合、データを転送する前に解析フェーズが行われることになる、という点です。ユニバーサルフォワーダーを使っている場合、入力フェーズにデータ転送が含まれることになりますが、へビーフォワーダーで解析を行う場合、解析フェーズにデータ転送が含まれることになります。

参考:
https://docs.splunk.com/Splexicon:Input
https://docs.splunk.com/Documentation/Splunk/latest/Deploy/Datapipeline#Input

解析(Parsing)セグメント

解析セグメントでは、データの解析、マージ、タイピングが行われます。具体的には、文字コードをブロック単位に分割されたデータをマージし行単位に分割したり(解析)、複数行を一つのイベントにマージしたり、タイムスタンプを識別して設定したり(マージ)、ブロックに付与されたメタデータを使用して個々のイベントにもメタデータを付与(Annotationと呼ぶ)したり、正規表現を使った変換を行ったり(タイピング)します。

解析セグメントにおける、解析、マージ、タイピングのパイプラインを示している図は以下です。

image.png

画像引用元:https://community.splunk.com/t5/image/serverpage/image-id/18766i82B2A1CA2DAE04F6/image-size/large

参考:
https://docs.splunk.com/Splexicon:Parsing
https://docs.splunk.com/Splexicon:Eventprocessing
https://community.splunk.com/t5/Getting-Data-In/Diagrams-of-how-indexing-works-in-the-Splunk-platform-the-Masa/m-p/590774
https://community.splunk.com/t5/Getting-Data-In/Diagrams-of-how-indexing-works-in-the-Splunk-platform-the-Masa/m-p/590774

インデックス化(Indexing)セグメント

インデックス化(Indexing)セグメントでは、インデクサーが解析されたイベントをディスク上のインデックスに書き込みます。

・・・・・・だけだとまんますぎるので、もう少し補足をします。Splunkでは、インデックスデータは2種類に分けられます。イベントインデックスと、メトリックインデックスです。
デフォルトのインデックスタイプは、イベントインデックスであり、これらは任意のタイプのデータを保管できるインデックスタイプです。これに対し、メトリックデータを保持するためにカスタマイズされたデータ構造のインデックスタイプがメトリックインデックスです。
(メトリックについては、Splunk Observabilityを学ぶときに同様の概念を学ぶことになるため、最初のうちは飛ばしても良いかもしれません)

参考:
https://docs.splunk.com/Splexicon:Index
https://docs.splunk.com/Documentation/Splunk/latest/Metrics/Overview

サーチ(Search)セグメント

サーチ(Search)セグメントは、実際にSplunkをユーザーが利用している状態です。サーチヘッドがインデクサーに対し、SPLで記述されたサーチの指示を行い、インデクサーはがサーチを実行し、結果を返却し、サーチヘッドがその結果をGUI上でユーザーに表示します。

ユーザーが実行するサーチには大きく二種類あり、ユーザーが検索バーなどから任意に実行するアドホックサーチ(ad hoc search)と、レポート、アラート、スケジュールドサーチなどを含む保存されたサーチ(saved search)に分けられます。アドホックサーチは常に実行されますが、リソースが不足したりするなどの問題が発生していると、保存されたサーチはスキップされてしまうことがあります。

参考:
https://docs.splunk.com/Splexicon:Search
https://www.splunk.com/ja_jp/blog/tips-and-tricks/are-you-skipping-please-read.html
https://lantern.splunk.com/Splunk_Platform/Product_Tips/Searching_and_Reporting/Reducing_skipped_searches

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?