ヘルプ アプリケーションログ管理 アプリケーションログのクエリ言語
Site24x7 アプリケーションログにより、ログの収集、統合、インデックス化、検索を行うことができます。ログプロファイルとログタイプを追加しすることでログ管理を設定できます。
これらログはクエリ言語で検索してフィルターでき、容易に管理できます。
オペレーター | 詳細 |
logtype | ログタイプを指定 |
monitor_name | 特定の監視からログを検索 |
monitor_group | 特定の監視グループからログを検索 |
tags | タグが付与されている監視からログを検索 |
and | 前のクエリを含むというクエリ制限を追加 |
or | 前のクエリを除外するというクエリ制限を追加 |
ratio | 2つの異なる検索条件にマッチするログメッセージの数の比を表示 |
groupby | 特定の項目で繰り返されている値の数を表示 |
timeslice | 特定の間隔に基づいてログの時間を表示 |
is empty | 関連する項目がnull値である |
is not empty | 関連する項目がnull値でない |
sum | 項目の選択した値の合計を返す |
min | 項目の最小値を返す |
max | 項目の最大値を返す |
avg | 項目の平均値を返す |
sd | 標準偏差値を返す |
distinct | 異なる値のみを返す |
count_distinct | 異なる値の数を返す |
count | クエリにマッチするログメッセージの数を返す |
include | 検索結果から選択した項目のみを表示 |
exclude | 検索結果から選択した項目を除外して表示 |
before | 検索時間から1時間、1日、1週間前のクエリ結果を返す |
having | groupbyクエリに条件を適用し、その結果を取得 |
sort | いくつかの項目で値をソートした結果を返す |
STARTSWITH | 指定された検索条件で始まる値を指定 |
LIKE | 値にアスタリスクを用いて検索条件を使用可能 |
in | 複数の'or'と'='を用いることと同義 |
notin | 複数の'and'と'!='を用いることと同義 |
histo | 数値項目のヒストグラムを取得 |
range | ヒストグラムの範囲を変更 |
range interval | ヒストグラムの一定間隔の結果を返す |
tophits | グループ化した要素の直近の値を取得 |
percentage | 比率を100として表示 |
percentile and percents | 指定された割合のデータが存在する値 |
項目が数の項目の場合、その値にマッチするオペレーター(>, <, =, !=, <=, or >=)を利用できます。
オペレーター | 詳細 |
> | より大きい |
< | より小さい |
= | 等しい |
>= | より大きいか等しい |
<= | より小さいか等しい |
項目値の単位を生データの単位ではなく変換して取得することもできます。
たとえば、timetaken項目の単位はミリ秒です。そのため、クエリを次のように記述できます。
上記を次のように記述することもできます。
項目が文字項目または数値項目でない場合、以下のオペレーター(=, !=)と"CONTAINS"を利用できます。
オペレーター | 詳細 |
= | 等しい |
!= | 等しくない |
CONTAINS | 部分文字列がある |
DOES NOT CONTAIN | その値を含まない結果を返す |
クエリの一般的なフォーマットは次のようになります:
クエリ言語を用いた検索は、次のフォーマットで可能です:
このフォーマットでは次のようになります:
サンプルクエリ:
この例では次のようになります:
結果: このクエリは、ログタイプ"Syslog"でアプリケーション項目が"systemd"を含むのログエントリーを取得します。
次の例のように複数の条件を使用できます。
このクエリでは、監視名とアプリケーションのクエリ項目がログの検索に使用されます。
監視名"Zylker-server"および"kernel"を監視名にもつアプリケーションが表示されます。
このクエリでは、括弧内の条件が一緒にグループ化されています。
アプリケーション項目に"kernel"または"systemd"を含むエントリーすべてが結果に表示されます。
クエリの最後に timeslice(期間)を追加することにより、クエリで選択された合計期間のテーブルを作成します。クエリで選択されたtimesliceとログエントリーの数により分割されます。可能なtimesliceの値は単位 d (day / 日)、h (hour / 時間)、 m (minute / 分) を用います。
提供された条件のいずれかにマッチする値を返します。
上記クエリでは、すべての GET / POST / PUT メソッドリクエストを取得します。
2つのクエリ出力間の比を表示できます。
orを使用して2つの条件を比較し、その比を検索結果に表示します。timesliceを使用して、特定の時間間隔で、割合をフィルターできます。
入力された項目についての内訳とその数を表示します。
上記クエリでは、項目"application"についての内訳とその数が表示されます。
これにより、ログの数値項目について最小、最大、平均を表示します。
このクエリは、timetakenの値について計算された値を取得します。
データの標準偏差値を検索できます。これはデータセットの変動量を確認するのに役立ちます。
sdを用いて、応答時間や要した時間などのメトリックの平均値からの変動を把握します。
クエリ例として次のように用います。
ログ全体の応答量の標準偏差値を返します。
指定した項目のテーブルを取得できます。
上記により、異なるスレッド名とその数が表示されます。
指定した項目の数とグラフを取得します。
クエリの最後にcountを用いることにより、クエリにマッチするログメッセージの合計数を取得できます。
例として、上記の条件にマッチするログメッセージの数を次のように表示します。
次の検索により、aggregation計算の値のコラムを追加したgroupbyテーブルが表示されます。
上記では、 ユニークなstemuriのMin、Max、Avg、Countを表示します。
次の検索により、aggregation計算の値を追加したtimesliceテーブルが表示されます。
上記では、 1時間のtimesliceでMin、Max、Avg、Count が表示されます。
次の検索により、groupbyの値のコラムを追加したtimesliceテーブルが表示されます。左から右に、列は次のように表示されます。
timeslice、count、value(s)
上記では、項目"application"で同じ値をもつ、日次のtimesliceのログエントリー数が表示されます。
次の検索により、複数のgroupbyのテーブルが表示されます。
上記では、複数のgroupby条件でグルーピングされます。
指定した項目を含めて結果に表示します。
上記では、結果にapplication, messageが追加されて表示されます。
指定した項目を結果から除外して表示します。
上記では、結果からmessage pidを除いた状態で表示します。
1時間、1日、1週間前のクエリ結果を表示できます。
クエリ結果よりも前の値を取得したい場合にbeforeを使用してください。
上記では、クエリ実行時間から1週間前の平均応答サイズを取得しています。
groupbyクエリに追加条件を適用してその結果を出力します。
上記では、平均応答サイズが10240を超過しているリクエストURLを取得しています。.
様々な項目でリクエストをソートします。
クエリ結果をいくつかの値で整理や分類を行いたい場合に、sortを使用します。
上記では、平均応答サイズの値でソートしたリクエストURLの結果を表示します。
指定された検索条件で始まる値を取得します。LIKEと*を末尾に用いた結果と同様のクエリです。例として、STARTSWITH "Log"とLIKE "Log*"の検索は同じ値を返します。
上記では、Microで始まるすべてのリソースを取得します。
これは大文字と小文字が区別され、値にアスタリスクが付いた検索条件を使用できます。
例として、LIKE "Log*n"というクエリの場合はLogonとLoginの両方がマッチします。
上記では、Microsoft Security Auditing、Microsoft Windows Auditingなどのリソースを取得します。
複数の'or'と'='を用いたクエリと同様の働きをします。クエリセットの全ての値が比較されます。
例えば、Status in("200","404","500")と(status="200" or status="404" or status="500")は同じ結果が取得されます。
上記では、(referer="Refer 2" or referer="Refer 1")と同じ結果が取得されます。
複数の'and'と'!='を用いたクエリと同様の働きをします。クエリセットの全ての値が比較されます。
例えば、status notin("200","404","500")と(status!="200" and status!="404" and status!="500")は同じ結果が取得されます。
上記では、(referer!="Refer 2" or referer!="Refer 1")と同じ結果が取得されます。
数値項目のヒストグラムを取得します。これはgroupbyと同様の働きをしますが、共通の値ではなく、値の範囲で返されます。
上記では、応答サイズのヒストグラムが取得されます。
メモ:
histogramとgroupbyを用いて、ログデータをさらに分割して分析できます。
例1:
ヒストグラムで指定した範囲の結果取得します。rangeはhistoの後に指定します。
上記では、指定した値の範囲でヒストグラムが取得されます。
ヒストグラムで指定した時間範囲の結果を取得します。range intrevalはhistoの後に指定します。
range intervalがヒストグラム項目の後に指定されている場合、その指定した時間範囲でヒストグラムが取得されます。
上記では、値の1秒間の時間範囲でヒストグラムが取得されます。
tophitsをgroupbyと使用して、グループ化された要素から直近の値を抽出します。
上記により、トピックオフセットやラグ数といった様々なトピックステータスの現在の値を取得できます。
ログから一般的な統計情報を抽出します。
上記により、失敗したリクエストのパーセンテージを表示できます。
パフォーマンスデータをより正確に表示します。
上記により、リクエストの処理時間の95パーセンタイルで表示します。
次の検索により、averageとpercentileの両方の値をトレンド線で生成します。aggregation、percentile、timesliceクエリでは、特定の期間のパーセンタイル値を集約して表示します。
例えば、時間ベースで平均とパーセンタイル結果を表示したい場合は、次の組み合わせを使用してください。
毎回タイピングする代わりに、最近の検索履歴から最近の検索を再使用できます。次の手順で確認できます: