本サイトは、快適にご利用いただくためにクッキー(Cookie)を使用しております。
Cookieの使用に同意いただける場合は「同意する」ボタンを押してください。
なお本サイトのCookie使用については、「個人情報保護方針」をご覧ください。

最新情報

2025.07.09

GOJAS Meetup: SplunkマニアックスでMBSD-SOCの活用事例を発表しました

MBSD-SOCではログ分析業務において、データ分析プラットフォームとして最も有力なソリューションのひとつである"Splunk"を活用しています。

先日開催されたSplunkのユーザーコミュニティのイベント「GOJAS Meetup-27: SplunkマニアックスVol.9」にて
MBSD-SOCでのSplunkの活用事例を発表させていただきました!

いつものMBSDブログとは少し毛色が異なりますが、せっかくの機会でしたので参加レポートをアップしてみます。

Splunkのユーザーコミュニティ"GOJAS"とは

GOJASは"Go Japan Splunk User Group"の略で、Splunkユーザー有志のみなさんによって運営されているユーザーコミュニティです。

ユーザーコミュニティですのでメーカーさん主催のイベントとはやや雰囲気や志向が異なり、様々な企業・組織での活用事例だけでなく、Splunkのテクニックや運用の裏話的なお話も披露されます。

今回のGOJAS MeetupはLINEヤフー株式会社様よりセミナー会場を提供いただきました。会場は多くのSplunkユーザーで賑わっており、広~いセミナールームが参加者でいっぱいになっていました!

mbsdsoc-gojas-photo_01.jpg※イベント受付開始前のLINEヤフー様セミナールーム。機材なども充実していました!すごい!

MBSD-SOCからの発表

一人のエンジニアとして、様々な技術記事やコミュニティなどで共有される知見には何度も助けていただいています。今般、そういったコミュニティ活動に少しでも貢献できればという想いで登壇エントリーをしまして、この度発表の機会をいただきました。

今回のGOJAS Meetupのテーマは"Splunkマニアックス"ということで、私たちからは少し変わったSplunkの活用事例を紹介しました。

mbsdsoc-gojas-photo_02.png

※デモの様子

Splunkと言えばさまざまなデータを収集し、分析・可視化するプラットフォームですよね。

Splunkにはいろいろなカスタマイズ要素がありますが、そのうちのひとつである"カスタムサーチコマンド"と呼ばれる機能を応用し、セキュリティ機器へ設定を投入するためのツールや、外部のログをSplunk上で参照するためのツールなど、SOC業務の中で様々な活用をしています。

ここからは、発表内容をすこしだけ紹介します。

※注意
本記事の内容は、当社独自の事例および検証結果に基づく情報です。製品提供元の公式見解や推奨設定ではありませんので、参考にされる場合は、マニュアルやサポート情報をご確認いただき、十分な検証をお願いします。

サーチコマンドにはいくつかの種別がありますが、今回はGeneratingコマンドの特性を生かしてカスタムサーチコマンドの機能を応用してみました。
※参考: Splunk>dev Types of search commands

mbsdsoc-gojas-slide_01.PNG

カスタムサーチコマンドによって、サーチの過程でカスタムスクリプトに処理をさせることができます。途中までのサーチ結果をスクリプトに引き継いで処理をさせたり、スクリプトの処理結果を後続のサーチコマンドに引き継いだりといったイメージです。
※参考: Splunk>dev How custom search commands work

mbsdsoc-gojas-slide_02.png

私たちは、とあるセキュリティ機器にREST APIで連携するように実装したカスタムスクリプトを、カスタムサーチコマンドとして実行できるようにしました。

さらに、カスタムサーチコマンドをSplunkダッシュボードに組み込むことで、ダッシュボードからセキュリティ機器のアクセスリストを運用できるようにしてみたという事例です。

mbsdsoc-gojas-slide_03.PNG

カスタムサーチコマンドを構成するうえで、スライド内に記載した4点が重要なポイントかと考えています。特に「この機能をどのように応用するか?」といった発想が最も重要かなと思います!

mbsdsoc-gojas-slide_04.PNG

カスタムスクリプトをカスタムサーチコマンドとして実装するために、Splunk SDK for Pythonが必要となります。スクリプト内部でSplunk SDKをインポートできるよう、モジュールの配置先を考慮してください。ここはハマりがちなポイントかと思いますので要注意です!
※参考: Splunk>Dev Install the Splunk Enterprise SDK for Python

mbsdsoc-gojas-slide_05.PNG

カスタムスクリプト実装のため、GitHubのリポジトリからテンプレートとなるスクリプトファイルを取得します。サーチコマンドの種別ごとにテンプレートが用意されており、Generatingコマンドの場合はgenerate.pyを使用します。
※参考: GitHub splunk-app-examples

mbsdsoc-gojas-slide_06.PNG

先ほどのスライドでもご紹介しましたが、Splunk SDKのモジュールを読み込めるように、環境に合わせてパスを通してあげる必要があります。

mbsdsoc-gojas-slide_07.PNG

また、カスタムスクリプト内でOptionクラスを構成することで、サーチコマンドから引数を引き継ぐことができます。こちらの例では、機器のアクセスリストに投入するIPアドレスなどの情報をサーチコマンドからスクリプトへ引き継いでいます。
※参考: Splunk SDK for Python API Reference

mbsdsoc-gojas-slide_08.png

カスタムスクリプトの処理結果がどのようにサーチ結果として返却されるのか?という点が気になりますよね。

Generatingコマンドでは、カスタムスクリプト内でyieldにて返却したデータが、カスタムサーチコマンドの結果として返却されます。例えば、_timeとして返却した値は時間(_time)フィールドに、_rawとして返却した文字列はイベント欄にそのまま表示されます。

mbsdsoc-gojas-slide_09.PNG

最後に設定ファイル: commands.confにて、カスタムサーチコマンドとカスタムスクリプトを関連付けてあげることでSplunkでカスタムサーチコマンドを使える状態となります。

たったこれだけの作業でサーチコマンドを作れてしまうなんて、Splunkのカスタマイズ性恐るべし!

mbsdsoc-gojas-slide_10.png

おわりに

発表を通じて「とても興味深かった!」「Splunkでそんなことができるのかと驚いた!」「自社に帰って早速試してみたい!」など、反響のお声をたくさんの方からいただき、Splunkマニアな方にも楽しんでいただけたようで、ホッとしました。
(イベントに参加された皆様、発表内容の共有をご要望いただきましてありがとうございます。共有が遅くなりましてごめんなさい。。。)

コミュニティ運営の皆様や他の発表をされた方々、コミュニティを盛り上げていただきましてありがとうございました。
May the Splunk be with you.

マネージドサービス事業部
MBSD-SOC
関連ソリューション