Splunkのレポート作成と高度な検索
Splunkのレポート作成
前回、Splunkの基本的な検索を行ったので、今回はレポートの作成を行ってみます。
Splunkでの「レポート」とは、実行した検索の検索条件を保存して、後で簡単に呼び出すことができます。この保存した検索条件を「レポート」と呼んでいるようです。
About reports
via:About reports
検索の結果を表示させて状態で、「Save As」から「Report」をクリックします。
保存したグラフは、「Report」メニューから呼び出すことができます。
高度な検索
パイプライン
UNIXでよく使われる「パイプ」を使った検索も可能です。
search
via:search
以下はあくまで一例で、実際はかなりのコマンドが用意されてますので詳細はドキュメントをどうぞ。
- キーワード「invalid」を最初の10件表示
「invalid | head 10」 - キーワード「invalid」を最後の10件表示
「invalid | tail 10」 - ソースタイプ「access_combined_wcookie」をクライアントIPで昇順ソート
「sourcetype=access_combined_wcookie | sort +clientip」 - ソースタイプ「accessを含む文字列」でHTTPステータスコード「200」でアクセスしたIPアドレスの中で、最もアクセスの多かったIPアドレスのアクセス数を表示
「sourcetype=access_* status=200 | top limit=1 clientip」
最後の例は、パイプで「top」コマンドを使っています。topコマンドを使うと通常の検索結果ではなく、以下の例のように数と割合を表示してくれます。
サブサーチ
ある検索の結果に含まれる値を、さらに別の検索条件として利用することをサブサーチと呼んでいます。
About subsearches
検索条件2 [検索条件1 | fields field1]
サブサーチの記載は以下のように[]を使用します。
上記の場合、「まず検索条件1を実行 -> その結果からFiled1を取り出す -> 検索条件2に先ほどのフィールドを使って検索」という流れになります。
例えば、以下では、ソースタイプ”secure”であり、フレーズ”failed password for”を含むイベントにおいて、もっとも頻度が高く出現した”clientip”フィールドの値2つを用いて、ソースタイプ”access_combined_wcookie”のイベントを検索しています。
サブサーチを使えば、より実用で使える検索が可能です。
例えば、「SSHログでPasswordをFailしている怪しいIPを探して、そのIPアドレスでWebサイトにアクセスしている形跡はないかを探したい」という時は、
sourcetype=”access_*” [search sourcetype=”secure” “failed password for” | top limit=5 clientip | fields clientip]
とやると検索できます。
さらにこの結果を「時間単位にIPアドレスごとの件数」を表示させるには、以下のようにパイプを追加します。
sourcetype=”access_*” [search sourcetype=”secure” “failed password for” | top limit=5 clientip | fields clientip] | timechart count by clientip
さらに「Visualization」タブをクリックすると、簡単にグラフ化できます。すげー!