【Splunk】tableはログを表にする

tableコマンドの説明を書きます。
以下の記事の派生記事です。
canada-lemon.hatenablog.com

tableは、選択したフィールドで表を作ってくれます。
それ以上でもそれ以下でもないです。

構文もシンプルです。
| table <フィールド名>

使用例1:サーチ結果を表形式で確認する

Excelに慣れた人なら表のほうが見やすいんじゃないでしょうか。

また、サーチ結果をエクスポートするとき、そのままだと全てのフィールドが出力されるので見辛いです。
tableで必要なフィールドのみ抽出してからエクスポートすれば、不要な情報を除外できます。*1
例えば、ログのタイムスタンプ、ホスト名、ユーザーエージェントだけ確認したいときはこのように指定します。

index=_internal sourcetype=splunkd_ui_access 
| table _time host useragent

「何が必要かわからないから取りあえず全部エクスポートしちゃえ」は後から後悔します。

使用例2:表の列を任意の順番に変更する

statsやtimechartなどの集計コマンドを使うと表が自動で作成されます。
その表に対してtableを使うことで、列の順番を変更できます。

使用例3:一部の列を削除する

使用例1でも少し触れましたが、不要な列を削除できます。
列の削除には残したいフィールド名を指定する消したいフィールド名を指定するの2つの手段があります。

例えばA,B,C,Dの4つのフィールドがあり、Cは不要だとします。
table でA,B,Dを指定するのが前者の手段で、Cを指定するのが後者の手段です。

列を削除するときは、フィールド名の前にマイナスをつけます。
上の例だと| table -Cです。

備考1:フィールド名の区切りはスペースでもカンマでも大丈夫

| table A B Cと書いても| table A,B,Cと書いても同じ結果が得られます。
他のコマンドで複数のフィールド名を指定するときも、同様にスペースとカンマの両方を使えます。

備考2:スペースを含むフィールド名はダブルクオーテーションで囲む

スペースを入れると別のフィールドとして認識されるので、スペースを含むフィールド名はダブルクオーテーションで囲みましょう。
そもそもフィールド名にスペースを入れるなと言われたらそれまでの話です。

備考3:フィールドの指定にはワイルドカードを使える

例えば| table date_*と書けばdate_から始まるフィールドをまとめて指定できます。

tableの説明は以上です。
ここまで読んでいただき、ありがとうございました。

Splunk頻出SPLシリーズ

*1:fieldsでも同じことは可能です