LoginSignup
0
0

More than 3 years have passed since last update.

🐨コアラでもわかるSplunkシリーズ ログに書いている値で集計する

Posted at

やあ、みんな :koala:だよ

:koala:いつもの作者は「:koala:の記事もわかりづらいですね」と言われて凹んだので、僕が呼ばれたよ。よろしくね。

:koala:今回はちょっと初心に戻って、ログに書いている値で集計してみるよ

Macosxで動かしているので、WindowsやLinuxの人はディレクトリやフォルダを読み替えてね。

今回使うもの

スクリーンショット 2020-05-11 20.31.59.png
:koala:今回は、この起動した時のそのままの画面を使用するよ。
真っ黒い背景にSPL(エス・ピー・エル)を書いていくので、それを赤枠の中、ここにサーチを入力...と書いているところにコピー&ペーストしてもらって、🔍をクリックすると動くよ

:koala:時間:過去24時間やモード:スマートモードは変更しないでね

ログに書いている値で集計する。

その1

aggregate_words.spl
index=_internal TERM("SUCCESS") OR TERM("ERROR")
| eval status=case(searchmatch("SUCCESS"),"SUCCESS",searchmatch("ERROR"),"ERROR",true(),NULL)
| stats count by status
status count
ERROR 16
SUCCESS 26

:koala:searchmatch()

この関数を使用して、検索文字列 (X) がイベントに一致した場合に TRUE を返します。

なので、文字列だよ。match()と違って正規表現じゃないよ。

その2

aggregate_words2.spl
| tstats count where index=_internal TERM("status") by PREFIX("status=") sourcetype
status= sourcetype count
skipped scheduler 4
success scheduler 25

:koala:Splunkの一番新しいのを使っていると、こんなこともできるよ。

:koala:TERM()PREFIX()もログに書かれている文字列で検索しているんだ。

:koala:詳しくはTERMはこっちなんだ。意外と使いづらいけど、使えるときは使ってね。

:koala:PREFIXはこっちだよ。これも読んでみてね。

その3

aggregate_words3.spl
index=_internal TERM("SUCCESS") OR TERM("ERROR")
| rex "(?i)(?<status>success|error)"
| stats count by status sourcetype
status sourcetype count
ERROR splunk_web_service 2
ERROR splunkd 7
ERROR splunkd_ui_access 4
SUCCESS splunkd_ui_access 27
error splunk_web_service 4
success scheduler 25
success splunkd 1

:koala:正規表現でその文字を抽出してフィールド名をつけてあげているよ。

:koala:意外と思いつかないけど、集計するには便利だよ。

まとめ

:koala:いくつかの方法を説明してきたけど、大丈夫だよね?

:koala:検索したときに使ったキーワードで数を数えるのって、意外と困るときがあるかもしれないけど、どれかの方法を使ってみてね

:koala:じゃ、またね〜

:koala:リクエストまってま〜す

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0