4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

🐨コアラでもわかるSplunkシリーズ CSVを扱う

Last updated at Posted at 2020-05-08

やあ、みんな :koala:だよ
いつもの作者は「記事の内容がよくわからない」と言われて凹んだので、僕が呼ばれたよ
よろしくね。
今回は「CSVを読み込んで、出力するのがよくわからない」というリクエストを受けたので説明するよ。
Macosxで動かしているので、WindowsやLinuxの人はディレクトリやフォルダを読み替えてね。

SplunkでCSVを扱うコマンドについて

:koala: SplunkでCSVを扱うコマンドは何個かあるよ

:koala:最初の2つが読み込みで、あとの2つが出力するコマンドになるよ。リンク先にいくとSplunk>Docsになっているから暇があったら読んでね。

今回使うもの

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

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

単純にCSVを扱う

:koala:まず最初はCSVを作って、そのCSVを入力してみよう.
使うコマンドはoutputcsvinputcsv

outputcsvを使ってCSVを出力する

:koala:まずは、CSVがないと始まらないので、作ってみよう

timechart_sourcetype_top5.spl
| tstats count where index=_internal by _time span=1h sourcetype
| timechart count by sourcetype where sum in top5
| outputcsv result.csv

qiita.png
:koala:に注目。
Splunkからお知らせがあるみたいだよ。クリックして開いてみよう。
Results written to file `/Application/Splunk/var/run/splunk/csv/result.csv`

:koala:結果を_/Application/Splunk/var/run/splunk/csv/result.csv_に出力した
とでているね。
:koala:Splunkがファイルを作ったりした時は、このようにジョブに表示をしてくれるので、確かめよう

inputcsvを使ってCSVを読み込む

:koala:それじゃ先ほど作ったCSVを読み込んでみよう。
いったんSPLを全部消してね。

read_csv.spl
| inputcsv result.csv

inputcsv.png
:koala:読み込めたけど、列の順番がバラバラだ。Splunkの列の順番はアルファベット順になってしまうよ
:koala:tableコマンドで並び替えてね。

少しまとめ

:koala:outputcsvinputcsvを使ってCSVを出力して読み込んでみたよ。
でも、入出力する先が固定ということと、単純にCSVを扱うだけのコマンドなので、あんまり使い勝手がよくないよね。

検索した結果と合わせてみる。

:koala:やっぱりCSVを検索した結果と比較とかしてみたいよね。
そうなるとlookupコマンドが使いたいからinputlookupoutputlookupの出番だね。

outputlookupを使ってCSVを作る

:koala:今回は検索したフィールドと比較とかするのでこんなCSVを作ってみたよ

sourcetype_text.spl
index=_internal
| top 5 sourcetype
| fields sourcetype
| streamstats current=f count
| eval text=mvindex(split("Oh,Yeah,Good,Bad,even",","),count)
| table sourcetype text
| outputlookup soucetype_output.csv

outputlookup.png

:koala:が光っているね。確かめてみよう。
:koala:今回の場所はどこだったかな?
Results written to file `/Application/Splunk/etc/apps/search/lookups/sourcetype_output.csv`

:koala:outputlookupを使うと、Appの下のlookupsディレクトリに出力されるんだ
だから、Appを作って別にしてあげると、管理とかが楽になるよ。試してみてね。

:koala:Appの作り方はクラスメソッドの江口さんの記事かをみてね。

inputlookupを使ってCSVを確認する

check_soucetype_output.csv
| inputlookup soucetype_output.csv

:koala:rを抜かしているのに気づいたけど、そのままいくね。

sourcetype text
splunkd Oh
splunkd_ui_access Yeah
splunkd_access Good
splunk_web_service Bad
splunk_web_access even
:koala:結果を確認したところで、使ってみよう

inputlookupを使って、CSVの中のフィールドを出力する。

inputlookup_sample.spl
| tstats count as Counts where index=_internal by sourcetype
| inputlookup append=t soucetype_output.csv
| selfjoin sourcetype

:koala:今回もSplunkからお知らせがあるみたいだよ。クリックして開いてみようね。

今回の結果は

sourcetype Counts text
splunk_web_access 53 even
splunk_web_service 70 Bad
splunkd 426106 Oh
splunkd_access 1268 Good
splunkd_ui_access 11007 Yeah

:koala:CSVのtextフィールドに値がある_sourcetype_だけが残ったね。

いったん消してもらったあと

inputlookup_sample2.spl
| tstats count as Counts where index=_internal by sourcetype
| inputlookup append=t soucetype_output.csv

の結果と比べて欲しいな。

outlookupを使って、結果を更新する。

:koala:先ほどのCountsのある結果を出力してみよう。

outputlookup_sample.spl
| tstats count as Counts where index=_internal by sourcetype
| inputlookup append=t soucetype_output.csv
| selfjoin sourcetype
| outputlookup soucetype_output.csv

:koala:今回もSplunkからお知らせがあるみたいだよ。クリックして開いてみようね。

:koala:じゃ、確かめてみよう

check_soucetype_output.csv
| inputlookup soucetype_output.csv
Counts sourcetype text
53 splunk_web_access even
70 splunk_web_service Bad
428656 splunkd Oh
1294 splunkd_access Good
11511 splunkd_ui_access Yeah
:koala:やったー更新されているよ

outputlookupを使って追記する

:koala:ファイルを作った後、追記していきたいこともあるよね。

append_csv.spl
|inputlookup soucetype_output.csv
|outputlookup append=t soucetype_output.csv

:koala: outputlookup append=tで追記に変わるよ。
結果を確認してみると

check_soucetype_output.csv
| inputlookup soucetype_output.csv
Counts sourcetype text
53 splunk_web_access even
70 splunk_web_service Bad
428656 splunkd Oh
1294 splunkd_access Good
11511 splunkd_ui_access Yeah
53 splunk_web_access even
70 splunk_web_service Bad
428656 splunkd Oh
1294 splunkd_access Good
11511 splunkd_ui_access Yeah
:koala:きちんと追記されているね。

まとめ

:koala:今回はCSVを扱う4つのコマンドを使ってみて、どんなコマンドなのか説明してきたよ。
みんなわかったかな?

:koala: lookupについては触れなかったけど、大体CSVと一緒なのでやってみてね。

:koala:じゃ、リクエスト待ってます。 またね〜


:sweat: こんな感じでいいでしょうか?
https://docs.splunk.com/Documentation/Splunk/latest/Knowledge/ConfigureCSVlookups
ここら辺に触れられなかった

4
4
2

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
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?