TIPS & TRICKS

ChatGPTでSplunkを使いこなす(SPL基礎編)

ChatGPTを筆頭に大規模言語モデルや生成AIが大きな注目を集めています。ChatGPTの応用例は様々な分野で公開されていますがSplunkも例外ではありません。今回はSPLにフォーカスしてChatGPTを使ったSplunkの活用方法を紹介します。

ユースケース

  • SPLの作成
  • SPLの解説
  • SPLのチューニング(サーチ時間の短縮)

SPLの作成

Search Processing Language(SPL)は、Splunkでデータを検索、分析するための強力な言語です。プログラミング言語と比べて比較的習得が容易な言語ではありますが、SPLに慣れていなくてもChatGPTを利用すると効率的にSPL作成を行うことができます。その際に以下の情報をプロンプトに盛り込むことで要件に合ったSPLを得やすくなります。

データの種類と構造

  • どのようなデータを扱っているのか
  • データのサンプル、またはデータのフィールドと型を示す情報

目的と要件

  • 分析目的やSPLを使用して達成したい具体的な分析内容
    (例:エラーのトレンドを分析、特定の条件を満たすログを抽出など)

結果のフォーマット

  • 最終的にどのような形で結果を得たいのか
    (例:テーブル、チャート、アラートなど)

フィルタ条件

  • 特定の条件でデータをフィルタリングする必要がある場合は具体的に記述

期間と集計単位

  • 分析対象の期間や集計単位を指定
    (例:過去24時間、過去7日間を1日ごとに集計など)

試しにSplunk Basicワークショップのハンズオンで実施している演習問題のSPLを作成してみました。

<Basicワークショップの演習問題から抜粋>

predict - 時系列フィールドの値を予測

<ChatGPT画面>

ChatGPT画面1
ChatGPT画面2
ChatGPT画面3

ChatGPTの回答内容に従ってSPLを実行した結果がこちらです。意図した通りのWebアクセス件数の予測ができています。

SPLの実行結果

ちなみに、Splunkも生成AIの取り組みを進めており.conf23でSplunk AI assistantを発表しています(プレスリリース)。現時点ではPreview版がSplunkbaseで公開されています。Preview版は英語のみの対応になりますが、Splunk内でチャットを通じてやりたいことを指示してそのままサーチ画面に移れる等シームレスな操作感で利用できるのがポイントです。

Splunk AI assistant

SPLの解説

前任者が作成したSPLクエリやAppで提供されているSPLクエリが何をやっているか分からない、という場合にはChatGPTに処理内容を解説してもらうことが可能です。また、カスタムSPLクエリ作成時にも1から作るのではなくAppのテンプレートをベースにChatGPTと対話をしながら処理の説明を確認して修正していくと効率化が図れます。

ここではセキュリティの検知ルールを提供している無償App「Splunk Security Essentials」から複雑なSPLをピックアップして試してみます。

対象としたのは「Geographocally Improbable Access Drtected for Privileged Accounts(特権アカウントで地理的に不適切なアクセスが検出されました)」という検知ルールのSPLクエリです。このルールは複数のアクセス元IPアドレスに基づく位置情報の地点間の距離とアクセス時間間隔から、通常の移動手段では不可能なアクセスがあった場合に検出します。

特権アカウントで地理的に不適切なアクセスが検出されました

SPLはこちらです。そのままChatGPTに貼り付けつつ処理内容を解説してもらいました。

ChatGPT画面4

ChatGPT画面5

(以下略)

ChatGPT画面6

(中略)

ChatGPT画面7

ChatGPTにSPLを貼り付けるだけで、処理の全体像と各行の処理について何を行っているか丁寧に解説してもらうことができました。コマンドやオプションの補足説明もあり、自分でSPLをカスタマイズする時にも役立ちます。もちろんChatGPTに「M365のログで同様の検知がしたい」と依頼してしまうことも可能です。

SPLのチューニング(サーチ時間の短縮)

別のブログ記事でも紹介されているようにSplunkには様々な高速化手法でサーチ時間を短縮できます。サーチ時間を短縮したい場面でもChatGPTは有効です。まずはどのような手法があるか聞いてみました。

ChatGPT画面8

実際の回答はもう少し続きますが、適切な手法が回答されています。続いて、具体的なSPLを書いてチューニングしてもらいました。

ChatGPT画面9

敢えて処理効率が悪いSPLクエリを書いてみましたが、「indexを具体的に指定する」、「不要なデータは初めにフィルタする」といった適切なチューニングをしてもらえました。

まとめ

ChatGPTを使うことでSPLを効率的に作成、理解、チューニングできることをご紹介しました。SPLに不慣れな方にもChatGPTを使うことで学習コストは下がってきています。今回紹介したユースケース以外にも、「Splunkでこれをどうやってやるの?」とChatGPTに尋ねてヒントが得られる様々なケースがあります。さらに、英語版のみではありますがSplunk内でネイティブにSPLに対する生成AI利用ができるSplunk AI assistantを紹介しました。ぜひ一度試してみてください。

近藤 洋平
Posted by

近藤 洋平

データを行動に変えるSplunkの思想に共感し2023年に入社。Global Shared Service(GSS)チームのセールスエンジニアとして、幅広いお客様に対し製品紹介、技術支援、ワークショップを行っている。Splunk入社以前は業務系SE、データアナリストなどを経験。

TAGS
Show All Tags
Show Less Tags