【Splunk】searchはログを検索する
searchコマンドの説明を書きます。
以下の記事の派生記事です。
canada-lemon.hatenablog.com
searchはその名の通りログを検索するコマンドです。
SPLを実行するとき、先頭に他のコマンドがない場合は、暗黙的にsearchコマンドが使われています。 例えば、| search index=_internal
と入力してSPLを実行すると、最初のsearch部分が自動的に省略されてindex=_internal
になります。
構文例
| search (検索したい条件)
使用例1:内部ログを検索する
以下のようなSPLを入力することで、Splunk自体のログを検索できます。
index=_internal sourcetype=splunkd "INFO"
上の例では、indexとsourcetypeを指定した上で、"INFO"という文字列を含むログを検索しています。
使用例2:生徒名で検索する
searchを使って生徒を検索してみます。
以下のSPLを実行してダミーデータを用意します。
4人の生徒の英数国の点数です。
makeresults
ってなんぞや?という方は以下の記事をご参照ください。
canada-lemon.hatenablog.com
| makeresults format=csv data="Class,Name,English,Math,Japanese 2年1組,Alfred,90,60,70 2年1組,Gascoigne,80,80,80 2年2組,Gehrman,60,100,50 2年2組,Ludwig,70,70,90" | table Class Name English Math Japanese
Class | Name | English | Math | Japanese |
---|---|---|---|---|
2年1組 | Alfred | 90 | 60 | 70 |
2年1組 | Gascoigne | 80 | 80 | 80 |
2年2組 | Gehrman | 60 | 100 | 50 |
2年2組 | Ludwig | 70 | 70 | 90 |
ワイルドカードを使って、NameがAで始まる生徒を検索してみます。
| makeresults format=csv data="Class,Name,English,Math,Japanese 2年1組,Alfred,90,60,70 2年1組,Gascoigne,80,80,80 2年2組,Gehrman,60,100,50 2年2組,Ludwig,70,70,90" | table Class Name English Math Japanese | search Name=A*
Class | Name | English | Math | Japanese |
---|---|---|---|---|
2年1組 | Alfred | 90 | 60 | 70 |
このように、Alfredのみが表示されました。
ちなみに、whereを使って同様の検索をする場合はこうなります。
| makeresults format=csv data="Class,Name,English,Math,Japanese 2年1組,Alfred,90,60,70 2年1組,Gascoigne,80,80,80 2年2組,Gehrman,60,100,50 2年2組,Ludwig,70,70,90" | table Class Name English Math Japanese | where LIKE(Name,"A%")
searchのほうがシンプルに書けますね。
備考1:サブサーチでsearchコマンドを忘れないように
joinなどでサブサーチを行うとき、SPLの構造は以下のようになります。
サーチ文A | join [サーチ文B]
このとき、サーチ文Aの先頭にはsearchが不要ですが、サーチ文Bには必要です。AとBをそれぞれ独立して検索し、後でサブサーチとして結合する書き方にしていると、うっかり忘れがちです。(10敗)
本記事ではsearchコマンドの説明をしました。
ここまで読んでいただき、ありがとうございました。
Splunk頻出SPLシリーズ