tencent cloud

Tencent Cloud EdgeOne

ログ分析検索ステートメントの使用方法

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-16 11:38:31
AI翻訳・品質チェック済み
ログ分析は、コンソールのビジュアルインターフェースまたは検索ステートメントを通じてログデータをフィルタリングおよび統計処理できます。本記事では、検索ステートメントの構文構造、サポートされるフィルタ項目、およびステートメントモードでSQLを組み合わせて統計分析を実行する方法について説明します。

フィルタ条件タイプ

ログ分析のフィルタ条件は3種類に分けられます:
1. ログソース(必須):ログタイプ(レイヤー7アクセスログまたはマネージドルールログ)とデータアベイラビリティーゾーンを選択します。
2. 時間範囲(必須):選択した時間範囲内のデータを表示します。詳細については、ログ分析のクエリ時間範囲を変更する方法をご参照ください。
3. その他のフィルタ条件:サポートされるフィルタ項目に基づいてカスタムフィルタリングします。ログタイプによってサポートされるフィルタ項目は異なります。詳細については、サポートされるフィルタ項目をご参照ください。

検索モードと結果表示

検索バーは2つのモードを提供します。検索バー左側のモード切り替えコントロールで切り替えます。
モード
説明
インタラクティブモード
フィルタ項目、演算子、値を選択して、フィルタ条件を1つずつ追加します。同じグループ内の条件はANDで接続され、異なるグループ間はORで接続されます。
インタラクティブモードからステートメントモードに切り替えると、追加済みのフィルタ条件は検索ステートメントに変換されて入力ボックスに入力され、条件は失われません。
ステートメントモード
検索ステートメントでフィルタ条件を記述し、パイプ記号 | を使用して SQL を連結し、統計分析を行うことができます。
検索を実行すると、ページは検索ステートメントの内容に基づいて異なる結果を表示します:
検索ステートメントにSQLが含まれない場合、デフォルトで「元のログ」ページが表示されます。
検索ステートメントにSQLが含まれる場合、実行後は「統計結果」ページに留まり、統計テーブルが表示されます。テーブル上部には結果ダウンロードの入口が提供されます。「元のログ」ページにはフィルタ条件に一致したログデータが同時に表示され、自由に切り替えることができます。




検索ステートメント構造

完全な検索ステートメントは、フィルタ条件とSQL統計ステートメントの2つの部分で構成され、パイプ記号|で連結されます:
[フィルタ条件] | [SQL]
フィルタ条件:元のログに対して行レベルのフィルタリングを行います。構文については、後述のフィルタ条件構文をご参照ください。
SQL:フィルタ後の結果に対して集計統計を行います。構文については、後述のSQL統計構文をご参照ください。SQL部分は省略可能です。省略した場合、一致した元のログのみが返されます。

フィルタ条件構文

式の構造

ログ分析のフィルタ条件式は、フィルタ項目、演算子、値の3つの部分で構成されます​​。その形式は下図の通りです:

フィルタ項目:${…} 形式の組み込みログフィールドです。例えば ${RequestHost}、${EdgeResponseStatusCode} です。
演算子:フィルタ項目と値の関係を判断します。例えばin、>です。
値:文字列、数値、またはリストです。文字列値は単一引用符で囲み、角括弧内に配置する必要があります。例えば['POST']です。数値は直接記述できます。例えば>500です。
複数のフィルタ条件間の関係:複数のフィルタ条件間は「且」関係を採用し、同一フィルタ条件に複数の値が含まれる場合、複数の値間は「或」関係を採用します。例えば、${ClientRegion} in ['SG','TH'] AND ${EdgeResponseStatusCode} in [404]は、以下の条件を同時に満たすログデータを検索することを表します:クライアントの国/地域がシンガポールまたはタイであり、かつエッジレスポンスステータスコードが404であること。

演算子

論理演算子

複数のフィルタ条件は論理演算子で組み合わせることができます:
演算子
説明
AND
左右両側のフィルタ条件がすべて成立した場合にのみヒットします。
OR
左右両側のフィルタ条件のいずれかが成立した場合に即座にヒットします。
NOT
右側のフィルタ条件を反転します。
演算子の優先順位はNOT > AND > ORです。論理演算子は大文字と小文字を区別しません。andとANDは同等です。

一致演算子

名前
演算子
説明
例
等しい
in
フィルタ項目の値が指定されたリスト内にある
${RequestHost} in ['example.com', 'demo.com']
等しくない
not ${…} in
フィルタ項目の値が指定されたリスト内にない
not ${RequestMethod} in ['GET']
より大きい
>
フィルタ項目の数値が指定された値より大きい
${EdgeResponseTime} > 500
各フィールドでサポートされるマッチング演算子については、サポートされるフィルタ項目を参照してください。

SQL統計構文

フィルタ条件の後にパイプ記号|でSQL文を連結すると、フィルタ条件に一致したログに対して集計統計を行うことができます。SQLはMySQLスタイルの構文を採用し、以下の規則に従います:
ログフィールドは二重引用符で囲む必要があります。例えば"ClientIP"です。
FROM句を作成する必要はありません。集計対象はパイプ記号の左側でフィルタされたログデータです。
Top 100クライアントIPのリクエスト数を統計することを例にすると、SQLは段階的に構築できます:
select "ClientIP", count(*) as cnt:クライアントIPとそのログ件数を選択します。count(*)で件数を統計し、as cntで結果列に名前を付けます。
group by "ClientIP":クライアントIPごとにグループ化し、各IPの件数をそれぞれ集計します。
order by cnt desc:件数の降順で並べ替えます。
limit 100:上位100行のみを返します。
連結後の完全な検索ステートメントは以下の通りです:
${RequestHost} in ['example.com'] | select "ClientIP", count(*) as cnt group by "ClientIP" order by cnt desc limit 100

検索ステートメント例

1. 指定したドメインで応答時間が500msを超えるリクエストをフィルタリングします:
${RequestHost} in ['example.com'] and ${EdgeResponseTime} > 500
2. 指定したドメインでステータスコードが404または500のリクエストをフィルタリングします:
${RequestHost} in ['example.com'] and ${EdgeResponseStatusCode} in ['404', '500']
3. レイヤー7アクセスログから、指定ルールをトリガーし、処理方法がブロックまたは観察であるリクエストをフィルタリングします:
${SecurityRuleID} in ['2123456789'] and ${SecurityAction} in ['Deny', 'Monitor']
4. マネージドルールログから、リクエストパスがマネージドルールに一致し、最終的にブロックされたリクエストをフィルタリングします:
${SecurityMatchingPosition} in ['Full request path'] and ${SecurityAction} in ['drop']
5. 指定したドメインでステータスコードごとのリクエスト数を集計し、件数の降順で並べ替えます:
${RequestHost} in ['example.com'] | select "EdgeResponseStatusCode", count(*) as cnt group by "EdgeResponseStatusCode" order by cnt desc
6. 指定されたドメインでアクセス数上位100のクライアントIPとその割合を統計します:
${RequestHost} in ['example.com'] | select "ClientIP", count(*) as cnt, round(count(*)*100.0/(select count(*)), 2) as pct group by "ClientIP" order by cnt desc limit 100
7. 指定したドメインにおける平均応答時間と最大応答時間を統計します:
${RequestHost} in ['example.com'] | select avg("EdgeResponseTime") as avg_time, max("EdgeResponseTime") as max_tim

サポートされるフィルタ項目

L7アクセスログ

ログタイプが「レイヤー7アクセスログ」の場合、以下のフィルタリング条件をサポートします。各フィールドの詳細な説明と値については、レイヤー7アクセスログを参照してください。

共通フィールド

フィルタ項目名
ログフィールド名
データ型
演算子
ログ時間
LogTime
等しい
リクエストID
RequestID
String
等しい、等しくない
コンテンツ識別子
ContentID
String
等しい、等しくない
リクエスト完了時間
EdgeEndTime
等しい、より大きい
エッジ関数サブリクエスト
EdgeFunctionSubrequest
Integer
等しい、等しくない
エッジ関数親リクエストID
ParentRequestID
String
等しい、等しくない

リクエスト情報

フィルタ項目名
ログフィールド名
データ型
演算子
リクエストドメイン
RequestHost
String
等しい
リクエストメソッド
RequestMethod
String
等しい、等しくない
リクエスト時間
RequestTime
等しい
リクエストURL
RequestUrl
String
等しい、等しくない
リクエストURLパラメータ
RequestUrlQueryString
String
等しい、等しくない
Referer
RequestReferer
String
等しい、等しくない
User-Agent
RequestUA
String
等しい、等しくない
HTTPプロトコル
RequestProtocol
String
等しい、等しくない
HTTP/HTTPS
RequestScheme
String
等しい、等しくない
TLSバージョン
RequestSSLProtocol
String
等しい、等しくない
リクエストステータス
RequestStatus
String
等しい、等しくない
リクエスト範囲
RequestRange
String
等しい
リクエスト長(バイト)
RequestBytes
Integer
等しい、より大きい
リクエスト本文長(バイト)
RequestBodyBytes
Integer
等しい、より大きい
エッジノードポート
RemotePort
Integer
等しい、等しくない

クライアント情報

フィルタ項目名
ログフィールド名
データ型
演算子
クライアントIP
ClientIP
String
等しい、等しくない
クライアントの国/地域
ClientRegion
String
等しい、等しくない
クライアント行政区(中国本土)
ClientState
String
等しい、等しくない
クライアントキャリア
ClientISP
String
等しい、等しくない
デバイスタイプ
ClientDeviceType
String
等しい、等しくない
クライアントポート
ClientPort
Integer
等しい、等しくない
クライアント接続ID
ClientConnectionID
String
等しい、等しくない

レスポンス情報

フィルタ項目名
ログフィールド名
データ型
演算子
キャッシュ状態
EdgeCacheStatus
String
等しい、等しくない
レスポンスステータスコード
EdgeResponseStatusCode
Integer
等しい、等しくない
レスポンス総長(バイト)
EdgeResponseBytes
Integer
等しい、より大きい
レスポンス本文長(バイト)
EdgeResponseBodyBytes
Integer
等しい、より大きい
内部処理時間(ミリ秒)
EdgeInternalTime
Integer
等しい、より大きい
レスポンス全体時間(ミリ秒)
EdgeResponseTime
Integer
等しい、より大きい

エッジサーバー情報

フィルタ項目名
ログフィールド名
データ型
演算子
エッジサーバーID
EdgeServerID
String
等しい、等しくない
エッジサーバーIP
EdgeServerIP
String
等しい、等しくない
エッジノードの国/地域
EdgeServerRegion
String
等しい、等しくない
エッジノード行政区(中国本土)
EdgeServerRegionTopDivision
String
等しい、等しくない
エッジ異常情報
EdgeException
String
等しい、等しくない

オリジンサーバー情報

フィルタ項目名
ログフィールド名
データ型
演算子
オリジン解決時間(ミリ秒)
OriginDNSResponseDuration
Double
等しい、より大きい
オリジンサーバーIP
OriginIP
String
等しい、等しくない
オリジンリクエストヘッダー時間(ミリ秒)
OriginRequestHeaderSendDuration
Double
等しい、より大きい
オリジンレスポンスヘッダー待機時間(ミリ秒)
OriginResponseHeaderDuration
Double
等しい、より大きい
オリジンレスポンスステータスコード
OriginResponseStatusCode
Integer
等しい、等しくない
オリジンTLSバージョン
OriginSSLProtocol
String
等しい、等しくない
オリジンTCPハンドシェイク時間(ミリ秒)
OriginTCPHandshakeDuration
Double
等しい、より大きい
オリジンTLSハンドシェイク時間(ミリ秒)
OriginTLSHandshakeDuration
Double
等しい、より大きい

セキュリティ保護情報

フィルタ項目名
ログフィールド名
データ型
演算子
処理方法
SecurityAction
String
等しい、等しくない
ルールID
SecurityRuleID
String
等しい、等しくない
ルールカテゴリ
SecurityModule
String
等しい、等しくない
Botインテリジェント分析特徴
BotCharacteristic
String
等しい、等しくない
ネットワーク攻撃リスクレベル
BotClassAttacker
String
等しい、等しくない
悪意のあるBotリスクレベル
BotClassMaliciousBot
String
等しい、等しくない
ネットワークプロキシリスクレベル
BotClassProxy
String
等しい、等しくない
スキャナーリスクレベル
BotClassScanner
String
等しい、等しくない
アカウント乗っ取り攻撃リスクレベル
BotClassAccountTakeOver
String
等しい、等しくない
Botタグ
BotTag
String
等しい、等しくない
リクエストJA3フィンガープリント
JA3Hash
String
等しい、等しくない

マネージドルールログ

ログタイプが「マネージドルールログ」の場合、以下のフィルタリング条件をサポートします。各フィールドの詳細な説明と値については、マネージドルールログを参照してください。

リクエスト情報

フィルタ項目名
ログフィールド名
データ型
演算子
サイト
RequestHost
String
等しい、等しくない
リクエストID
RequestID
String
等しい、等しくない
リクエスト時間
RequestTime
等しい
リクエストメソッド
RequestMethod
String
等しい、等しくない
User-Agent
RequestUA
String
等しい、等しくない
リクエストURI
RequestURI
String
等しい、等しくない
リクエストボディ(先頭10KB)
RequestBody
String
等しい、等しくない

クライアント情報

フィルタ項目名
ログフィールド名
データ型
演算子
クライアントIP
ClientIP
String
等しい、等しくない
クライアントの国/地域
ClientCountry
String
等しい、等しくない

セキュリティ保護情報

フィルタ項目名
ログフィールド名
データ型
演算子
ルールID
SecurityRuleID
String
等しい、等しくない
ルールカテゴリ
SecurityModule
String
等しい、等しくない
処理方法
SecurityAction
String
等しい、等しくない
マッチングフィールド
SecurityMatchingField
String
等しい、等しくない
マッチング位置
SecurityMatchingPosition
String
等しい、等しくない










ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック