【SPLK-1002】Splunk Core Certified Power User資格を取得するための勉強メモ

こんばんは。torippy1024です。
以前の記事に続き、SPLK-1002(Splunk Core Certified Power User試験)の勉強メモを書きます。
どれだけの需要があるかは不明ですが・・・・・・。~~書き方のフォーマットはコピペだから描きやすそうだしな！~~

## SPLK-1002(Splunk Core Certified Power User)とは

### 公式サイト
試験概要は以下の公式サイトを参照しましょう。英語サイトも参照したほうが吉です。なあに、困ったらChat GPT様がなんとでもしてくれます。

概要：
https://www.splunk.com/ja_jp/training/certification-track/splunk-core-certified-power-user.html

トラックフローチャート：
https://www.splunk.com/en_us/pdfs/training/splunk-core-certified-power-user-track.pdf

blueprint：
https://www.splunk.com/en_us/pdfs/training/splunk-test-blueprint-power-user.pdf

### 出題分野と割合
出題範囲と割合は上記のblueprintに記載されています。以下の通りです。
- 1.0  Using Transforming Commands for Visualizations 5%
- 2.0  Filtering and Formatting Results 10%
- 3.0  Correlating Events 15%
- 4.0  Creating and Managing Fields 10%
- 5.0  Creating Field Aliases and Calculated Fields 10% 
- 6.0  Creating Tags and Event Types 10%
- 7.0  Creating and Using Macros 10%
- 8.0  Creating and Using Workflow Actions 10%
- 9.0  Creating Data Models 10%
- 10.0  Using the Common Information Model (CIM) Add-On 10%

### 推奨研修
STEP(Splunk Training and Enablement Platform)から受講可能な研修は以下の通りです。
すいませんが、どのコースが無償で、どのコースが有償かまでは確認できませんでした・・・。

#### Splunk Core Certified Power User Learning Path
- Working with Time
- Statistical Processing
- Comparing Values
- Result Modification
- Correlation Analysis
- Creating Knowledge Objects
- Creating Field Extractions
- Data Models
https://www.splunk.com/en_us/training/course-catalog.html?filters=filterGroup1FreeCourses%2CfilterGroup2SplunkCoreCertifiedPowerUser


## その他参考になる資料
その他の公式サイトのドキュメントです。(基本は英語です。一部日本語訳されたドキュメントもあります)

### 公式ドキュメント
https://docs.splunk.com/Documentation/Splunk

### 日本語訳されたドキュメントの一覧
https://docs.splunk.com/Documentation/Splunk/9.1.2/Translated/Japanesemanuals

## 各分野の概要
### 1.0  Using Transforming Commands for Visualizations
可視化(Visualization)のためのTransformingコマンドとその使い方、可視化について学びます。
Transformingコマンドは、サーチ結果を得られた後、その結果を表やグラフにするための変換を行うコマンドです。
Power Userの範囲では、chartとtimechartコマンドの二つが重要と思います。
また可視化(Visualization)の種類についても覚えておくとよいと思います。(Dashboards and Visualizations https://docs.splunk.com/Documentation/Splunk/latest/Viz/Visualizationreference を参照)

#### chartとは
https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Chart
chartは、サーチ結果を表形式(table format)に変換するTransformingコマンドです。

#### timechartとは
https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Timechart
timechartは、サーチ結果を時系列グラフで表示するTransformingコマンドです。
chartと似たような動きをしますが、デフォルトでx軸が時間になり、グラフ化までを実行します。

### 2.0  Filtering and Formatting Results
サーチ結果をフィルタリングし、結果を加工する方法について学びます。
Power Userの範囲では、evalとfillnullコマンドの二つが重要と思います。

#### evalとは
https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Eval

evalは、サーチ結果に含まれるフィールドを計算し、新しいフィールドを作成してサーチ結果に追加するコマンドです。例えば、サーチ結果に「国語」、「数学」、「英語」の得点のフィールドが含まれていたときに、evalコマンドを使って3科目の平均点を計算して「平均」という名前のフィールドを作成してサーチ結果に追加する、といったことができます。

#### fillnullとは
https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/fillnull

fillnullは、サーチ結果にNULL値が含まれていたとき、そのNULL値を別の値に変換するコマンドです。
表形式でサーチ結果を出力した際、値が見つからなかったときや計算ができなかったときに空白でなく別の値を表示させることができます。

### 3.0  Correlating Events
Transactionコマンドを使って、いくつかのFieldを指定することにより、異なるデータソースから特定のトランザクションに関連するイベントを取得する方法について学びます。

#### Transactionとは
https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Transaction

SplunkにおけるTransactionとは、ユーザー観点で見た1つの処理のことです。
例えばオンラインストアにおいて、ユーザーが購入ボタンを押して決済を完了させる処理は、一つのTransactionです。
しかしシステム観点では、Transactionによって、複数のサーバーや機器にまたがって処理が行われており、関連するログも散らばって保管されていることになります。
Splunkでは、複数のフィールドと時系列順を指定することで、複数のイベントを一つのTransactionコマンドを使ってサーチできます。
(基本的にはstatsコマンドを使った方が早いことが多いです。ただしそれができないときに有効なコマンドとなります。試験対策的な観点では、statsとtransactionコマンドの二つがあった場合、statsのほうが大体のケースで高速です)


### 4.0  Creating and Managing Fields
主にフィールド抽出(Field Extractor)について学びます。
正規表現(regex)と区切り文字(delimiter)を用いたフィールド抽出の違い等について学びます。

#### フィールド抽出(Field Extractor)とは
https://docs.splunk.com/Documentation/Splunk/latest/Knowledge/ExtractfieldsinteractivelywithIFX

Splunkがサーチを行うときに使用するKey-ValueペアをFieldと呼びます。
このFieldは、Splunkがインデックスを作成するときおよびサーチ実行時に自動抽出されますが、自分で抽出させることも可能です。この機能をフィールド抽出(Field Extractor)と呼びます。
(英語だと、名詞としてField Extractionがあり、Field Extractionを行う機能をField Extractorと呼ぶようです。日本語とセットで覚えようとすると混乱します)
(ちなみに、サーチ実行時にFieldを自動抽出する機能はフィールドディスカバリーと呼ばれます。こちらも覚える際に混乱しやすいです)

フィールド抽出をユーザー自身で行う場合、正規表現(*や?など)を使って、指定した条件に合致したものをフィールドとして抽出するやり方と、区切り文字(カンマやスペースなど)を使って、指定した条件に合致したものをフィールドとして抽出するやり方の二つがあり、それぞれを理解する必要があります。
https://docs.splunk.com/Documentation/Splunk/latest/Knowledge/FXSelectMethodstep


### 5.0  Creating Field Aliases and Calculated Fields(計算されたフィールド)
フィールドエイリアスと、Calculated Fields(計算されたフィールド)について学びます。
フィールドエイリアスとは、フィールドに対する別名を付与する機能です。
Calculated Fields(計算されたフィールド)とは、サーチ結果を計算、統計処理することによって、新しくサーチ結果に追加されたフィールドのことをいいます。

#### フィールドエイリアスとは
https://docs.splunk.com/Splexicon:Alias
そのまんま。フィールドに割り当てられる別名です。

#### Calculated Fields(計算されたフィールド)とは
https://docs.splunk.com/Splexicon:Calculatedfield
evalコマンドなどを使って、サーチ結果に対して計算や統計処理を行い追加されたFieldのことを指します。
日本語にするとなんかダサいですね。

### 6.0  Creating Tags and Event Types
タグとイベントタイプについて学びます。
どちらも同じような使い方ができますが、タグはフィールドに対して付与するものであるのに対し、イベントタイプはイベントに対して付与するものであることが異なります。

#### タグとは
https://docs.splunk.com/Splexicon:Tag
特定のフィールドのKey-Valueペアに対して付与できる情報がタグです。
例えば、IPaddress=192.168.1.2というフィールドに対し、mainofficeというタグを付与できます。
別のサーチを実行する際に、tag=mainofficeを指定することで、該当するイベントのみを効率的にフィルターすることができます。

#### イベントタイプとは
https://docs.splunk.com/Splexicon:Eventtype
特定のイベントに対して付与できる情報がイベントタイプです。
例えば、sourcetype=access_combined status=200 action=purchaseというサーチを実行し、その結果のイベント群に、eventtype=successful_purchaseなどの名前をつけることができます。
別のサーチを実行する際に、eventtype=successful_purchaseを指定することで、該当するイベントのみを効率的にフィルターすることができる機能です。

### 7.0  Creating and Using Macros
マクロについて学びます。
マクロは、パターン化された複数のサーチ文をまとめて定義しておく方法です。マクロを使用することによって、引数のみを変更させて同様のサーチ文を使い回すことができます。

https://docs.splunk.com/Splexicon:Searchmacro

### 8.0  Creating and Using Workflow Actions
ワークフローアクションについて学びます。
ワークフローアクションは、外部システムとWebベースの連携をするための仕組みです。
特定のサーチ結果が得られたことをトリガーとしてGETやPOSTなどのHTTPSリクエストを実行したり、別のサーチを実行できます。

https://docs.splunk.com/Splexicon:Workflowaction


### 9.0  Creating Data Models
Splunkのデータモデルについて学びます。
データモデルを理解する前に、Pivot(ピボット)を理解しておく必要があります。
Pivotは、SPLを使わず、GUI上でSPLによるサーチと同等の結果を得て視覚化(グラフ作成など)をすることができる機能です。
そしてデータモデルとは、Pivotを実行するための定義であり、データやソースに対して、フィールド、イベント、操作などを階層化して定義したものです。

https://docs.splunk.com/Splexicon:Pivot
https://docs.splunk.com/Documentation/SplunkCloud/latest/Knowledge/Aboutdatamodels

### 10.0  Using the Common Information Model(CIM) Add-On
Common Information Model(CIM)とそのアドオン(実態はSplunk App)について学びます。
CIMとは、異なる製品やシステム群からの情報を共有・標準化して利用するために事前構成されたデータモデルです。
異なるベンダーの機器などのログに対し、あらかじめ共通のデータモデルを定義しておくことによって、典型的な例についてはデータモデル作成が不要となります。
CIMを使用するためには、CIM Add-OnとしてのSplunk Appを導入する必要があります。

https://docs.splunk.com/Documentation/CIM/latest/User/Overview


## 終わりに
全範囲を網羅はできていないのですが、私が勉強したのは上記のような範囲です。
参考になれば幸いです。(そしてどこか間違っていたら教えてください・・・・・・)