【Splunk】フィールド名はなるべく英数字にする
こんにちは。
初歩的なことですが、自分が20分くらいハマったので備忘録として書きます。
端的に書くと、フィールド名はなるべく英数字で扱い、もし日本語にする必要があるなら最後にrenameしようという話です。
以下のSPLを実行します。
使用しているSPLコマンドがわからない場合は、以下の記事をご参照ください。
canada-lemon.hatenablog.com
| makeresults | eval prefix = "制約と" | eval suffix = "誓約" | eval sum = prefix + suffix | table prefix suffix sum
出力結果
prefix | suffix | sum |
---|---|---|
制約と | 誓約 | 制約と誓約 |
何の変哲もないフィールド結合です。
では、以下のSPLではどうでしょうか。
| makeresults | eval "前半" = "制約と" | eval "後半" = "誓約" | eval "結合" = 前半 + 後半 | table "前半" "後半" "結合"
エラーが出ました。
どうやら4行目に問題がありそうです。
フィールド名をダブルクオーテーションで囲ってみます。
| makeresults | eval "前半" = "制約と" | eval "後半" = "誓約" | eval "結合" = "前半" + "後半" | table "前半" "後半" "結合"
出力結果
前半 | 後半 | 結合 |
---|---|---|
制約と | 誓約 | 前半後半 |
なんと、フィールド名ではなく文字列として認識されてしまいました。
このように、フィールド名が日本語の場合、eval等で操作するときに不都合が生じます。
Splunkに取り込んだログのフィールド名が日本語になっていることは基本的に無いと思いますが、自分でフィールド名を定義するときは気をつけましょう。
今フィールドを操作する予定がなくても、後から操作したくなったときに困ります。
日本語にしたいときは最後にrenameするのが鉄則です。
| makeresults | eval prefix = "制約と" | eval suffix = "誓約" | eval sum = prefix + suffix | table prefix suffix sum | rename prefix as "前半" suffix as "後半" sum as "結合"
出力結果
前半 | 後半 | 結合 |
---|---|---|
制約と | 誓約 | 制約と誓約 |
ここまで読んでいただき、ありがとうございました。