やあ、みんな だよ
いつもの作者は「
の記事もわかりづらいですね」と言われて凹んだので、僕が呼ばれたよ。よろしくね。
今回はちょっと初心に戻って、ログに書いている値で集計してみるよ
Macosxで動かしているので、WindowsやLinuxの人はディレクトリやフォルダを読み替えてね。
今回使うもの


時間:
過去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 |
この関数を使用して、検索文字列 (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 |
Splunkの一番新しいのを使っていると、こんなこともできるよ。
TERM()
もPREFIX()
もログに書かれている文字列で検索しているんだ。
詳しくはTERMはこっちなんだ。意外と使いづらいけど、使えるときは使ってね。
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 |
![]() |
意外と思いつかないけど、集計するには便利だよ。
まとめ
いくつかの方法を説明してきたけど、大丈夫だよね?
検索したときに使ったキーワードで数を数えるのって、意外と困るときがあるかもしれないけど、どれかの方法を使ってみてね
じゃ、またね〜
リクエストまってま〜す