7.1. 検索インタフェース
ログの検索インタフェースは、メニューの Search
リンクから遷移することができます。
7.1.1. Message Count
検索画面には、デフォルトの状態でログ件数の棒グラフが表示されています。
棒グラフの中をドラッグすることで、検索の時間帯を変更することもできます。
7.1.2. All Message
検索画面には、初期条件での検索結果が表示されています。
デフォルトでは、Timestampとsourceフィールドの値が表示されています。
7.2. 検索方法
検索は、以下のフォームに値を入力して行ないます。
検索条件のフォーマットは以下の通りです。
sshというワードを含むログを検索する場合、以下のように入力します。:
sshまたはloginというワードを含むログを検索する場合、以下のように入力します。:
ssh loginというワードを含むログを検索する場合、以下のように入力します。:
typeフィールドにsshというワードが含まれるログを検索する場合、以下のように入力します。:
typeフィールドにsshまたはloginというワードが含まれるログを検索する場合、以下のように入力します。:
Note
Elasticsearch 2.x および 5.x は空白でクエリを分割することができたため type: (ssh login)
という記載方法でも同様に検索できました。しかし、Elasticsearch 6.0 からは空白での分割ができなるなったため、用語の間に OR
などの演算子を含める必要があります。
typeフィールドにssh loginというワードが含まれるログを検索する場合、以下のように入力します。:
typeというフィールドが存在するログを検索する場合、以下のように入力します。:
typeというフィールドが存在しないログを検索する場合、以下のように入力します。:
上記の通り、デフォルトの条件はORになります。AND条件で検索したい場合は、明示的にANDを入力します。:
"ssh login" AND source:example.org
NOTもANDと組み合わせて利用できます。:
"ssh login" AND NOT source:example.org
ワイルドカードを利用して、部分一致検索を行なうこともできます。:
source:*.org
source:exam?le.org
source:exam?le.*
Note
ワイルドカードを利用するためには、server.confの allow_leading_wildcard_searches
の値が true
になっている必要があります。ワイルドカードを利用する場合、非常に多くのメモリを消費することがあるため注意が必要です。
検索ワードの後ろにチルダを付与することで、あいまい検索を行なうこともできます。
あいまい検索は、レーベンシュタイン距離で実装されており、チルダの後ろにヒットするワードの距離を指定できます。:
数値フィールドであれば、値の範囲を指定することもできます。
[]は直後の値を含む検索を行ない、{}を使った場合は、直後の値を含まない検索になります。両方を組み合わせて使うこともできます。:
http_response_code:[ 500 TO 504 ]
http_response_code:{ 400 TO 404 }
byte:{ 0 TO 64 ]
http_response_code:[ 0 TO 64 }
範囲演算子を使うこともできます。:
http_response_code:>400
http_response_code:<400
http_response_code:>=400
http_response_code:<=400
検索条件に、以下の値が含まれる場合、バックスラッシュでエスケープすることができます。:
&& || : \ / + - ! ( ) { } [ ] ^ " ~ * ?
7.3. 時間帯検索
次のフォームに値を入力することで、時間帯を絞って検索ができます。時間を絞ることで、より素早い検索が可能になり、またシステムへの負荷を軽減することができます。
時間帯は、次の3つの種類から選択することができます。
相対時間
- 現在から1時間前など相対的な範囲で検索を行なうことができます。
- 検索条件を保存して毎回同じ条件で検索したい場合などに有効です。
絶対時間
キーワード
7.4. 検索条件の保存
Save
ボタンをクリックすることで、現在の検索条件を保存することができます。
保存した条件は、 Load
ボタンから呼び出すことができます。
リストの中から保存した条件を削除することもできます。
保存した検索条件を呼び出したあと、その条件を更新したり、新しい条件として名前を付けて保存を行うこともできます。
7.5. 検索結果
検索結果は All Messages
に表示されます。デフォルトでは、Timestampとsourceフィールドの値が表示されています。
表示するフィールドを変更するには、右側にある Action
表示ボタンから Edit
を選択します。
編集画面の左側 FIELDS
のプルダウンメニューから、表示するフィールドを変更することができます。
7.6. 検索結果の加工(Decoratorの使用)
デコレータを使用することで、保存されたログの形式を変更することなく、検索結果の表示を変更することができます。
デコレータを適用するためには、編集画面の左側 DECORATORS
のプルダウンメニューから、利用するデコレータを選択することでデコレータを設定できます。
各デコレータの解説は次の通りです。
7.6.1. Pipeline Processor Decorator
登録済みのPipe lineを使用して、値を一時的に整形するデコレータです。
7.6.2. Lookup table
登録済みのLookup tableを使用して、値を一時的に整形するデコレータです。
7.6.3. Syslog Severity Mapper
Syslogのレベルを人間が読みやすい文字列に変換をするためのデコレータです。
例えば、Syslogのレベルを表す level
フィールドに登録されているデータを Warning(4)
などに変換できます。
このデコレータを使用するためには、以下のフィールドが必要です。
- 変換元のフィールド: 数値のsyslogレベル
- 変換先のフィールド: 変換した値を一時的に保存する任意のフィールド
7.6.5. Hyperlink String
フィールドの値をハイパーリンクにするためのデコレータです。
7.7. CSVエクスポート
検索結果をCSV形式でエクスポートできます。
検索バーの右側にある …
ボタンから Export to CSV
を選択します。
検索画面に複数のメッセージテーブルが含まれている場合、どのメッセージテーブルを利用するか選択する必要があります。
また、テーブルごとに検索結果をCSV形式でエクスポートすることも可能です。
結果は、検索条件や選択したフィールドによって変化します。
出力されるCSVの形式は以下のとおりです。
- 一行目はヘッダ(フィールド名)
- 区切り文字は,(カンマ)
- 囲い文字は"(ダブルクオート)
例:
"timestamp","source","message"
"2018-01-29T02:27:36.271Z","example.org","2018-01-29T02:27:36.271Z GET /posts/45326/edit [200] 60ms"