第2回 マシンデータの検索からヒントを可視化する方法実践 Splunk道場(2/5 ページ)

» 2015年11月25日 08時00分 公開
[矢崎誠二ITmedia]

様々な方法でマシンデータを取得する

 データの入力は、「ファイルやディレクトリを直接指定」「HTTPで取得」「TCP/UDP、スクリプトで取得」といったように、エージェントなしで直接取り込む方法がある。また、エージェントの「Splunk Forwarder」を利用して、Forwarderを導入しているデバイスの様々なログも収集できる。

  • サーチの実行

 さて、早速検索を始めてみよう。サーチバーから検索したい文字を入力することで、全文検索が可能だ。今回のログにはWebのアクセスログや認証ログが入っているため、それに関連する情報を検索してみる。

 下記はサーチ画面になる。このサーチバー内に「200」「404」「GET」「POST」「failed」「login」「error」など、検索したい任意の文字列を入力すれば、検索結果が確認できる。サーチ結果がイベント・リストに表示され、タイムラインが更新される。次にSPLを利用した検索例を試してみたい。

Splunk
  • SPLとは?

 Splunkの検索は、SPLという言語で実行する。200種以上のコマンドが存在しており、約15のコマンドで多くの操作を実行可能だ。以下は代表的なコマンドだ。

カテゴリー コマンド 内容
順序 top/rare フィールドで一番多い値/一番少ない値
順序 head/tail 指定した結果の最初のn件/最後のn件
順序 sort サーチ結果をソート
統計 chart グラフ化するための結果を表で出力
統計 stats 統計情報を提供。最大、最小、平均、合計、標準偏差、グループ化などにて結果を出力
統計 timechart 統計結果を時系列にて出力
計算 eval 式を計算して値を出力
参照 lookup 別参照テーブルのルックアップを行う
フォーマット table 指定したフィールドのみ表示する
フォーマット rex 正規表現を指定し、フィールドを動的に抽出する
グループ transaction IPやIDなどの共通トークンにより、複数のレコードを一つのトランザクションにグループ化
フィルタ dedup 指定した基準の一致する後続の結果を削除
地域 iplocation IPの地理情報を抽出(国、都市、緯度、経度)
地域 geostats 緯度、経度から地図上のマッピング
  • フィールド

 「フィールド」とは、リレーショナルデータベースでのスキーマに近い存在であり、データの名前を定義する。単純に文字でデータの全文検索もできるが「フィールド=値」で検索する方が、より効率的だ。フィールドは正規表現を通して実データから抽出して定義でき、抽出のための自動正規表現ツールも利用できる。次にこのフィールドを使って、Splunkでどのようにコマンドを実行するか、検索の結果としてどのような統計処理を行い、可視化していくのかについて示そう。

Splunk
  • スキーマオンザフライ(Schema on the Fly)

 前回も少し触れたが、テーブル構造、属性、サイズといったリレーショナルデータベースでスキーマに相当する概念はSplunkには存在しない。スキーマがないと言うと語弊はあるが、属性やサイズに依存することなくデータをそのまま取り込め、「Key=Value」ペアによって取り込む段階においても、後付けでも設定できる。

 この「Key」の部分をSplunkでは「フィールド」と呼び、コマンドを実行するごとにこの「フィールド=値」を呼び出し、終了すれば消える。その瞬間にだけスキーマを生成することで、事前のデータ処理が不要になり、どのようなフォーマットのログでも処理できるというわけだ。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ