SB C&Sの最新技術情報 発信サイト

C&S ENGINEER VOICE

Splunk CIMについて理解する

Splunk
2020.09.11

こんにちは。SB C&Sの岩田です。

これまで「はじめてのSplunk」と題してSplunkの基本的な使い方についてお伝えさせていただきました。
※過去の記事についてはこちらでご紹介しております!

本記事では、Splunkをより活用するにあたりとても重要なポイントになる「CIM(Common Information Model)」についてご紹介したいと思います。

CIMとは?

CIMは"Common Information Model"の略称で情報共通化標準のことをいい、このCIMにより異なるソースのログを表示できるようにあらかじめ定義されたSplunkが提供する独自のデータモデルです。

CIMを利用するメリット

ログはデータソースによりフォーマットや形式が異なります。

例えば異なるデータソースAとデータソースBがあり、AもBも「送信元IPアドレス」の情報を含んでいるとします。
このとき、データソースAはIPアドレスを"src_ip"というフォーマットで定義、データソースBは"client_ip"で定義している場合、フィールドの名前が異なってしまいデータサーチに手間がかかるケースがあります。

   CIM8.png

こういったときに便利なのがCIMです。

CIMのデータ定義により、簡単かつ効率よくデータサーチを行うことができ、異なる製品(=データソースA/B)のログデータの相関検索も可能になります。
Splunkは「テキストデータ」で「タイムスタンプがついている」データであればどんな形式のログも取り込むことができそのログを正規化することに強みを持つ製品なので、取り込んだデータを共通化し相関的に分析できるようにしてくれるCIMは、Splunkを使ったデータ活用に欠かせないものといっても過言ではありません!

CIMってどうやって使うの?

"CIM"と言われてもなかなかイメージしづらいかと思いますので、もう少し詳しくご紹介したいと思います。

CIM自体はSplunkBaseにてSplunk社から無償提供されています。

  CIM.png スクリーンショット 2020-09-02 16.25.14.png

このCIMをSplunkにインストールすることで「CIMにより定義されたデータモデル」が利用できるようになります。
(上部のスクリーンショット右側がCIMによりインストールされたデータモデルの一部です!)
CIMには予め25個のデータモデルが定義されており、「NetworkTraffic」や「Email」「Authentication」などのデータのカテゴリ別に用意されています。
※メーカーからCIMに関する情報や25個のデータモデル定義についての詳細なドキュメントも公開されておりますのでこちらもぜひご参照ください。 

CIMの全体像

このようにCIMはデータモデルの集合体のようなイメージです。
そしてその中に25個のデータモデルが存在し、データモデルにはデータの大分類とCIM向けに定義されているフィールドのまとまりがあります。

    CIM11.png

CIMとAdd-onの関係

CIMもインストールしただけでは活用ができないので、CIMで定義されたデータモデルにマッピングする必要があります。
そのマッピングにあたり、大事な要素になるのが"Add-on"の存在です。
(Add-onについてはこちらの記事でも触れているので是非ご参照ください)

CIMで定義されたデータモデルにマッピングさせるためには、「データソース(生ログ)」と「CIMで定義されたデータモデル」を繋ぐ役割が必要で、その役割を担うのが"Add-on"になります。

Add-onもCIM同様SplunkBaseで提供されており、CIMのデータモデルにマッピングしてくれるかどうかはAdd-onの詳細ページに記載されておりますのでこちらもチェックしていただければと思います。

 CIM_3.PNG   CIM_4.PNG

ここで、「Add-onがどうやってCIMと生ログを紐づけているんだろう?」と疑問に思われる方もいると思います。
Add-onは特定データの取り込みやフィールド定義などを提供してくれるもので、生ログのデータフォーマットをCIM向けに定義されているフィールドへ変換してくれます。

例えば、「生ログの"clientip"というデータフィールドはCIMのデータモデル的には"src"になる」というマッピングを定義してくれているのです。

     CIM9.png

ちなみに上図でいうところのデータソースBの例のように、Add-onがリリースされていないデータをCIMのデータモデルにマッピングさせることももちろん可能なのでご安心ください!

その場合は少しだけ手間はかかりますがデータを取り込んだあとにCIMのメンバ(=CIM向けに定義されているフィールド)に置き換えることでCIMのデータモデルを活用することができます。
この部分は、また改めてブログで詳しくご紹介したいと思います!

まとめ

本記事ではCIMの全体像やデータモデルの関係性などについて触れながらご紹介させていただきました。
CIMはなかなか理解するのが難しい概念なので、少しでもみなさまに役立つ情報となっていれば幸いです。

最後までお読みくださりありがとうございました。

他のおすすめ記事はこちら

著者紹介

SB C&S株式会社
技術統括部 第2技術部 2課
岩田 潤子