ChatGPTを筆頭に大規模言語モデルや生成AIが大きな注目を集めています。ChatGPTの応用例は様々な分野で公開されていますがSplunkも例外ではありません。今回はSPLにフォーカスしてChatGPTを使ったSplunkの活用方法を紹介します。
Search Processing Language(SPL)は、Splunkでデータを検索、分析するための強力な言語です。プログラミング言語と比べて比較的習得が容易な言語ではありますが、SPLに慣れていなくてもChatGPTを利用すると効率的にSPL作成を行うことができます。その際に以下の情報をプロンプトに盛り込むことで要件に合ったSPLを得やすくなります。
試しにSplunk Basicワークショップのハンズオンで実施している演習問題のSPLを作成してみました。
<Basicワークショップの演習問題から抜粋>
<ChatGPT画面>
ChatGPTの回答内容に従ってSPLを実行した結果がこちらです。意図した通りのWebアクセス件数の予測ができています。
ちなみに、Splunkも生成AIの取り組みを進めており.conf23でSplunk AI assistantを発表しています(プレスリリース)。現時点ではPreview版がSplunkbaseで公開されています。Preview版は英語のみの対応になりますが、Splunk内でチャットを通じてやりたいことを指示してそのままサーチ画面に移れる等シームレスな操作感で利用できるのがポイントです。
前任者が作成した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にSPLを貼り付けるだけで、処理の全体像と各行の処理について何を行っているか丁寧に解説してもらうことができました。コマンドやオプションの補足説明もあり、自分でSPLをカスタマイズする時にも役立ちます。もちろんChatGPTに「M365のログで同様の検知がしたい」と依頼してしまうことも可能です。
別のブログ記事でも紹介されているようにSplunkには様々な高速化手法でサーチ時間を短縮できます。サーチ時間を短縮したい場面でもChatGPTは有効です。まずはどのような手法があるか聞いてみました。
実際の回答はもう少し続きますが、適切な手法が回答されています。続いて、具体的なSPLを書いてチューニングしてもらいました。
敢えて処理効率が悪いSPLクエリを書いてみましたが、「indexを具体的に指定する」、「不要なデータは初めにフィルタする」といった適切なチューニングをしてもらえました。
ChatGPTを使うことでSPLを効率的に作成、理解、チューニングできることをご紹介しました。SPLに不慣れな方にもChatGPTを使うことで学習コストは下がってきています。今回紹介したユースケース以外にも、「Splunkでこれをどうやってやるの?」とChatGPTに尋ねてヒントが得られる様々なケースがあります。さらに、英語版のみではありますがSplunk内でネイティブにSPLに対する生成AI利用ができるSplunk AI assistantを紹介しました。ぜひ一度試してみてください。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。