Help us understand the problem. What is going on with this article?

Splunkで手入力で複数件のモックデータを作る

概要

  • この記事ではSplunk 7.xを使っています
  • 業務でも、Splunkをログに取り込んで分析することがあると思います
  • Splunkでクエリを書くときに、デバッグに役に立つテクニックを紹介します

背景

  • Splunkのmakeresultsコマンドを用いると、モックデータ(ダミーデータ)を生成することができます
    • モックデータを1つつくるには公式ドキュメント| makeresults | eval newfield="avalue"のようにします
  • 正規表現を使って集計しているクエリの動作確認するために、手動で複数件モックデータを作りたいときに、やり方が分からずつまったので、まとめておきます
    • 別途、ファイルをアップロードして、それをモックデータとして使うこともできますが、今回は手軽に数件のモックデータを作りたいときのやり方です

  • 動物の数をログに落としていて、それを種類ごとに集計するクエリを書きたいため、このようなモックデータが欲しい
message:num_dogs=1, num_cats=0, num_humans=2, num_unicorns=0
message:num_dogs=1, num_cats=1, num_humans=0, num_unicorns=0
  • そのためのクエリ
    • makeresultsは通常クエリの一番最初にかかないといけませんが、appendコマンドでつなげることができます -> 参考: 公式ドキュメント
| makeresults 
| eval message_field="message:num_dogs=1, num_cats=0, num_humans=2, num_unicorns=0" 
| append 
    [| makeresults 
    | eval message_field="message:num_dogs=1, num_cats=1, num_humans=0, num_unicorns=0"]
  • クエリ実行結果 スクリーンショット 2019-09-09 19.45.54.png

つくったモックデータを使って動物の数を集計してみる

  • クエリ
| makeresults 
| eval message_field="message:num_dogs=1, num_cats=0, num_humans=2, num_unicorns=0" 
| append 
    [| makeresults 
    | eval message_field="message:num_dogs=1, num_cats=1, num_humans=0, num_unicorns=0"] 
| rex field=message_field "num_dogs=(?<num_dogs>\d+)" 
| rex field=message_field "num_cats=(?<num_cats>\d+)" 
| rex field=message_field "num_humans=(?<num_humans>\d+)" 
| rex field=message_field "num_unicorns=(?<num_unicorns>\d+)" | bucket _time span=30m
|  stats sum(num_dogs) as tot_dogs, sum(num_cats) as tot_cats, sum(num_humans) as tot_humans, sum(num_unicorns) as tot_unicorns by _time
|  fields _time, tot_dogs, tot_cats, tot_humans, tot_unicorns
  • クエリ実行結果 -> 想定通りきちんと集計できていますね! スクリーンショット 2019-09-09 19.46.29.png
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away