Splunk - Splunkの基礎やSPLを学習する方法とは

## はじめに
Splunkを使い始めて挫折する1つのポイントが「SPL」かと思います。また、高度なデータ分析を実施するにも基礎が理解できずに何をやっているのか分からなくなるようなケースもあるかと思います。ちなみに私もその1人でした。では、Splunkの基礎やSPLを学習する方法はどんなのがあるのだろうか？ということで探してみた話です。なお、この記事は2024年5月24日に作成しました。情報更新は未定です。

## トレーニングプログラム[公式]
[https://www.splunk.com/ja_jp/training.html](https://www.splunk.com/ja_jp/training.html)
![スクリーンショット 2024-05-24 11.00.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3310888/87382e51-2320-123d-3d60-157bf841fb76.png)

無料および有料のトレーニングがあります。すべてを受講した訳では無いので、私が受講した範囲のコメントと理解ください。

### [1] 無料コース
Splunk EnterpriseとSplunk Cloudに関する無料コースはおそらく全て受講しました。幾つかのショート動画でSplunkに関するあれこれを説明してくれるのですが、私にとっては理解が難しい内容でした。内容が入ってこない。せめて資料があれば良いのですが、頭がよくない私にはショート動画だけだと記憶に止めるのは厳しかったです。そのため、無料コースの受講検討されている方は、この後に紹介するワークショップの方が圧倒的におすすめです。

### [2] 有料コース
Splunk認定試験を受講する際に参考となるコースを幾つか受講しました。私が受講したのはe-Learning形式で、講師はアジア圏に在住する方で、講義および資料はすべて英語でした。ただ、調べてみると日本語の講義もありそうなので英語が苦手な方はそちらで受講するのが良いかと感じました。無料コースと違ってPDF資料が配布され、資料に沿って講義が進みます。またハンズオンのラボもあり、講義で説明いただいた内容がイメージとして定着できるので良い内容かと感じました。有料コースだけあって無料コースよりは質も量も優れていました。

### [3] 参考記事
- [日本語化がすすむSplunkの学習トレーニング。Splunk Educationで学び、使いこなそう！](https://www.splunk.com/ja_jp/blog/tips-and-tricks/splunk-trainings-in-japanese-available.html)

## ワークショップ[公式]
[https://www.splunk.com/ja_jp/about-us/events.html](https://www.splunk.com/ja_jp/about-us/events.html)
![スクリーンショット 2024-05-24 11.01.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3310888/d9eedb21-e9fa-3f04-e82b-ac4ec84494e6.png)

Splunkイベントにワークショップやハンズオンがあります。日本人講師が無償で提供しており、さらにSplunkを触る事ができるといった素晴らしいイベントです。2,3ヶ月先のワークショップが公開されており、提供されるプログラムはランダムなような気がします。私も幾つか参加したのですが、その中でSplunkの基礎から学べる推奨のコースは次の通りです。
### [1] Splunk Entry Workshop
Splunkが初めての方向けに提供されているワークショップ。Splunkの概要から、どのように使えるのか、また実際に触れるハンズオンがセットとなったプログラムです。まずはここから始めるのが良さそうでした。

### [2] Splunk Basic Workshop
Entry Workshopの続編で提供されているワークショップ。よく使うSPLを一通りハンズオンで体感できると共に、ダッシュボードのトークンやアラートやレポートの機能が体感できるプログラムです。Entry Workshopを受講して、もっと学びたい方向けに良さそうでした。

### [3] Splunk Workshop : Data Onboarding Hands-on
こちらもEntry Workshopの続編で提供されているワークショップ。Splunkに対して、どのようにデータを取り込んでいくのかハンズオンを通じて体感できるプログラムです。Splunkを触り始めて、いろんなデータを取り込んでみたいという方向けに良さそうでした。

### [4] その他
他にも有償のセキュリティ監視(Splunk Enterprise Security)やシステム監視(Splunk IT Service Intelligence)が体感できるワークショップもありました。Splunk Enterpriseはダッシュボードを構築したり、取り込んだデータからSPLを駆使してデータ抽出したりという内容ですが、セキュリティ監視サービスやシステム監視サービスはバンドルされたダッシュボードを使って高度な監視を実現する方法が体感できます。サービス検討や導入前にどんなものなのか検討するのに参考になりそうなプログラムでした。

## ブログ[公式]
[https://www.splunk.com/ja_jp/blog](https://www.splunk.com/ja_jp/blog)
![スクリーンショット 2024-05-24 11.02.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3310888/01dbd447-4c04-a4b7-c983-5ddff7f7f6b6.png)


Splunkブログが公開され、幾つか学習のヒントになる記事がありました。参考になりそうな記事をピックアップします。

- [Splunkサーチコマンド > stats、chart、timechart](https://www.splunk.com/ja_jp/blog/tips-and-tricks/search-commands-stats-chart-and-timechart.html)
- [Splunkサーチコマンド > stats、eventstats、streamstats](https://www.splunk.com/ja_jp/blog/tips-and-tricks/search-command-stats-eventstats-and-streamstats-2.html)
- [表の行と列を入れ替えるSPL](https://www.splunk.com/ja_jp/blog/tips-and-tricks/spl-to-swap-rows-and-columns-in-a-table.html)
- [Splunkに燃料を与える：Universal Forwarderによるリアルタイムでのデータ取込方法とインストール (パート1)](https://www.splunk.com/ja_jp/blog/tips-and-tricks/how-to-install-universal-forwarder-01.html)
- [Splunkに燃料を与える：Universal Forwarderによるリアルタイムでのデータ取込方法とインストール(パート2)](https://www.splunk.com/ja_jp/blog/tips-and-tricks/how-to-install-universal-forwarder-02.html)
- [高速化したデータモデルとサマリーインデックスによるサーチ時間の短縮](https://www.splunk.com/ja_jp/blog/platform/accelerated-data-model-and-summary-indexes-reduce-search-time.html)
- [Splunkの使い方情報 まとめページ](https://www.splunk.com/ja_jp/blog/tips-and-tricks/splunk-information-alignment.html)

## Splunkテスト環境を構築
[https://www.splunk.com/ja_jp/download.html](https://www.splunk.com/ja_jp/download.html)
![スクリーンショット 2024-05-24 11.03.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3310888/60b0b43f-deba-3881-fefb-d68cca35959f.png)

Splunkは無料トライヤル版があります。Splunk Cloud PlatformはSaaS、Splunk Enterpriseはオンプレミスのソフトウェアです。AWS EC2やPCにインストールして利用したい場合はSplunk Enterpriseをダウンロードして使えます。でも、どうやって学習したらいいの？という方向けにチュートリアルシナリオとそのデータが公開されています。2024年5月24日現在はSplunk Enterprise 9.2.1が最新バージョンとなりますが、ダウンロード時点の最新版のチュートリアルを参照してみてください。

- [チュートリアルシナリオ - Splunk Enterprise 9.2.1](https://docs.splunk.com/Documentation/Splunk/9.2.1/SearchTutorial/Systemrequirements)
- [チュートリアルデータ - Splunk Enterprise 9.2.1](https://docs.splunk.com/Documentation/Splunk/9.2.1/SearchTutorial/Systemrequirements#Download_the_tutorial_data_files)
  * tutorialdata.zip ... 検索/分析用のファイル
  * Prices.csv.zip ... ルックアップ用のファイル
- [Splunkマニュアル(日本語)](https://docs.splunk.com/Special:SpecialLatestDoc?t=Documentation/Splunk/latest/Translated/Japanesemanuals)
- [Splunkクイックリファレンスガイド(日本語)](https://www.splunk.com/ja_jp/resources/splunk-quick-reference-guide.html)

## Qiita
- [https://qiita.com/search?q=splunk](https://qiita.com/search?q=splunk)
- [https://qiita.com/tags/splunk](https://qiita.com/tags/splunk)

Qiitaで探すと結構ヒットします。難易度はそれぞれなので、そのあたりの見極めが必要になります。この記事と同じように学習コンテンツをまとめられた記事がありましたのでピックアップします。
- [Splunkの学習コンテンツをまとめてみました](https://qiita.com/maroon/items/86412cbeee156899a5a7)

## YouTube
- [https://www.youtube.com/user/splunkvideos](https://www.youtube.com/user/splunkvideos)
- [https://www.youtube.com/results?search_query=splunk](https://www.youtube.com/results?search_query=splunk)

YouTubeにもSplunkやSPLに関する情報がヒットします。こちらは英語が主体ですね。日本語コンテンツが幾つかありましたので参考までピックアップします。
- [Splunk Cloud - スキーマ・オン・ザ・フライが可能にする柔軟なログ解析の仕組みと設定方法](https://www.youtube.com/watch?v=1Q0DQfpFi8c)
- [Splunk Cloudの無料トライアルダウンロード](https://www.youtube.com/watch?v=u9c8VBmQN2E)
- [Splunk Cloudでのデータ取り込み方法](https://www.youtube.com/watch?v=fPydrkaMMg8)
- [フォワーダーを使用したSplunk Cloudでのデータ取り込み方法](https://www.youtube.com/watch?v=mp-OjOLSSSI)
- [CIMによるSplunk Cloudでのログ活用範囲の拡大](https://www.youtube.com/watch?v=MvXYKv7feqk)

## 生成AI(ChatGPTなど)
ChatGPTを始めとした生成AIを使ってSPLを生成する事が可能です。私も利用してみましたが、誤りはあれど、それなりに作成してくれる印象でした。生成AIに対するプロンプトで「＊＊＊について、SplunkのSPLを作ってください。解説は日本語でお願いします。」と投げかけるだけでSPLが自動生成され、そこで何をやっているのか解説もつけてくれます。(ChatGPT 4oにて確認、2024年5月24日現在)

### [1] ChatGPT 4oを用いたSPL生成(例)
ChatGPT 4oに「Apacheのログからアクセスが失敗したIPアドレスを抽出し、失敗した回数が多い順に並ぶようにSplunkのSPLを作ってください。解説は日本語でお願いします。」という質問を投げた時の回答内容です。
![スクリーンショット 2024-05-24 10.52.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3310888/92201849-ffc2-321a-7aa3-dc3f836bfaf1.png)
この例では、statusの検索も1行目に記載できる内容(index=~~~ sourcetype=~~~ status=~~~)なのでベストでは無かったですが、やろうとしている事は間違っていないので妥協点かと思います。

### [2] 参考記事
- [ChatGPTでSplunkを使いこなす（SPL基礎編）](https://www.splunk.com/ja_jp/blog/tips-and-tricks/mastering-splunk-with-chatgpt-basics-of-spl.html)

## Udemy
私はSplunk学習では利用した事がないですが、探すとこんなの見つかりましたという紹介です。
- [https://www.udemy.com/courses/search/?src=ukw&q=splunk](https://www.udemy.com/courses/search/?src=ukw&q=splunk)

## 書籍
私はどの書籍も読んでいないので内容は不明ですが、探すとこんなの見つかりますという紹介です。
- [https://www.amazon.co.jp/splunk/s?k=splunk](https://www.amazon.co.jp/splunk/s?k=splunk)
- [https://books.rakuten.co.jp/search?sitem=splunk](https://books.rakuten.co.jp/search?sitem=splunk)

## 終わりに
探してみると結構ありましたね。今回紹介した中で、**Splunkテスト環境**を構築する事と**ワークショップ[公式]** に参加して体系立てて学びながらハンズオンで理解を深めていくのは、私には有益でした。