この操作は、指定されたプロジェクトの Logstore 内のログデータをクエリします。
操作説明
Simple Log Service は、スケジュールされた SQL ジョブをサポートしています。詳細については、「スケジュールされた SQL ジョブの作成」をご参照ください。
リクエスト構文の Host は、プロジェクト名と Simple Log Service エンドポイントで構成されます。Host にはプロジェクト名を指定する必要があります。
AccessKey ペアを作成して取得します。詳細については、「AccessKey ペア」をご参照ください。
Alibaba Cloud アカウントに属する AccessKey ペアは、すべての API にアクセスする権限を持っています。これは高いセキュリティリスクをもたらします。API 呼び出しや日常の運用保守 (O&M) を行うには、RAM ユーザーを作成して使用することを強くお勧めします。RAM ユーザーは、Simple Log Service リソースにアクセスするために必要な権限を持っている必要があります。詳細については、「RAM ユーザーの作成と権限付与」をご参照ください。
-
プロジェクトの名前とリージョン、およびクエリしたいログが含まれる Logstore の名前を取得します。詳細については、「プロジェクトの管理」および「Logstore の管理」をご参照ください。
-
Simple Log Service はログクエリに制限を課しています。したがって、適切なクエリ文と分析文を設計し、合理的なクエリ時間範囲を設定する必要があります。詳細については、「ログクエリの制限」および「ログ分析の制限」をご参照ください。
-
ログをクエリする前にインデックスを設定する必要があります。詳細については、「インデックスの作成」をご参照ください。
-
クエリに一致するログの数が大幅に異なる場合、Simple Log Service API は、完全な結果を取得するためにこの操作を呼び出す必要がある回数を予測できません。各応答の x-log-progress ヘッダーの値を確認して、操作を再度呼び出す必要があるかどうかを判断します。繰り返される各呼び出しは、同数のクエリ容量単位 (CU) を消費します。
-
ログが Logstore に書き込まれると、GetHistograms および GetLogs 操作を使用してログがクエリ可能になるまでの待機時間は、ログのタイプによって異なります。Simple Log Service は、タイムスタンプに基づいてログを次の 2 種類に分類します。
リアルタイムデータ: ログのタイムスタンプは、現在のサーバー時間に対して (-180 秒, 900 秒] の時間範囲内にあります。たとえば、ログが UTC 2014-09-25 12:03:00 に生成され、サーバーによって UTC 2014-09-25 12:05:00 に受信された場合、ログはリアルタイムデータとして処理されます。これは通常、通常のシナリオで発生します。リアルタイムデータがクエリ可能になるまでの待機時間は約 3 秒です。
既存データ: ログのタイムスタンプは、現在のサーバー時間に対して [-7 × 86,400 秒, -180 秒) の時間範囲内にあります。たとえば、ログが UTC 2014-09-25 12:00:00 に生成され、サーバーによって UTC 2014-09-25 12:05:00 に受信された場合、ログは既存データとして処理されます。これは通常、データバックフィルのシナリオで発生します。
Simple Log Service は、ログ時間 (__time__ フィールド) とサーバー受信時間 (__tag__: receive_time フィールド) の差を計算します。差が (-180 秒, 900 秒] の範囲内にある場合、ログはリアルタイムデータです。差が [-7 × 86,400 秒, -180 秒) の範囲内にある場合、ログは既存データです。
Simple Log Service は、Java および Python のソフトウェア開発キット (SDK) で GetLogs 操作を使用する方法の例を提供します。詳細については、「Java の GetLogs の例」および「Python の GetLogs の例」をご参照ください。
権限付与
次の表に、この操作に必要な権限付与情報を示します。この情報を RAM アクセスポリシーステートメントの Action 要素に追加して、RAM ユーザーまたは RAM ロールにこの操作を呼び出す権限を付与できます。
| Action | リソース |
log:GetLogStoreLogs | acs:log:{#regionId}:{#accountId}:project/{#ProjectName}/logstore/{#LogstoreName} |
今すぐお試しください
テスト
RAM 認証
リクエスト構文
GET /logstores/{logstore}?type=log HTTP/1.1
パスパラメータ
|
パラメーター |
型 |
必須 / 任意 |
説明 |
例 |
| logstore |
string |
必須 |
データをクエリする Logstore。 |
example-logstore |
リクエストパラメーター
|
パラメーター |
型 |
必須 / 任意 |
説明 |
例 |
| project |
string |
必須 |
プロジェクトの名前。 |
ali-test-project |
| from |
integer |
必須 |
クエリする時間範囲の開始時刻。この時間は、ログデータが書き込まれるときに指定されるログ時間です。
説明
データが欠落しないように、クエリ時間を分単位にスナップします。分析文で時間範囲を指定した場合、分析文の時間範囲がクエリと分析に使用されます。 秒単位で時間を指定するには、from_unixtime 関数または to_unixtime 関数を使用して、分析文の時間フォーマットを変換します。例:
|
1627268185 |
| to |
integer |
必須 |
クエリする時間範囲の終了時刻。この時間は、ログデータが書き込まれるときに指定されるログ時間です。
説明
データが欠落しないように、クエリ時間を分単位にスナップします。分析文で時間範囲を指定した場合、分析文の時間範囲がクエリと分析に使用されます。 秒単位で時間を指定するには、from_unixtime 関数または to_unixtime 関数を使用して、分析文の時間フォーマットを変換します。例:
|
1627269085 |
| query |
string |
任意 |
検索文または分析文。詳細については、「クエリの概要」および「分析の概要」をご参照ください。
排他的 SQL 機能を使用するには、クエリパラメーターの分析文に 説明
クエリパラメーターに分析文 (SQL 文) が含まれている場合、line および offset パラメーターは無効です。これらのパラメーターを 0 に設定することをお勧めします。ページをめくるには、SQL 文で LIMIT 句を使用する必要があります。詳細については、「クエリと分析結果のページング」をご参照ください。 |
status: 401 | SELECT remote_addr,COUNT(*) as pv GROUP by remote_addr ORDER by pv desc limit 5 |
| topic |
string |
任意 |
ログの Topic。デフォルト値は空の文字列です。詳細については、「Topic」をご参照ください。 |
topic |
| line |
integer |
任意 |
このパラメーターは、クエリパラメーターが検索文の場合にのみ有効です。リクエストに対して返されるログの最大数を指定します。値の範囲は 0 から 100 です。デフォルト値は 100 です。ページングされたクエリの詳細については、「クエリと分析結果のページング」をご参照ください。 |
100 |
| offset |
integer |
任意 |
このパラメーターは、クエリパラメーターが検索文の場合にのみ有効です。クエリの開始行を指定します。デフォルト値は 0 です。ページングされたクエリの詳細については、「クエリと分析結果のページング」をご参照ください。 |
0 |
| reverse |
boolean |
任意 |
タイムスタンプの降順でログを返すかどうかを指定します。精度は分レベルです。
重要
|
false |
| powerSql |
boolean |
任意 |
排他的 SQL 機能を使用するかどうかを指定します。詳細については、「排他的 SQL 機能の有効化」をご参照ください。
powerSql パラメーターを使用するだけでなく、query パラメーターを使用して排他的 SQL 機能を有効にすることもできます。 |
false |
レスポンスフィールド
|
フィールド |
型 |
説明 |
例 |
|
array |
ログの配列。各要素はログです。 |
||
|
object |
ログの配列。各要素はログです。 |
[{'remote_addr': '198.51.XXX.XXX', 'pv': '1', '__source__': '', '__time__': '1649902984'}, {'remote_addr': '198.51.XXX.XXX', 'pv': '1', '__source__': '', '__time__': '1649902984'}, {'remote_addr': '198.51.XXX.XXX', 'pv': '1', '__source__': '', '__time__': '1649902984'}, {'remote_addr': '198.51.XXX.XXX', 'pv': '1', '__source__': '', '__time__': '1649902984'}, {'remote_addr': '198.51.100.XXX', 'pv': '1', '__source__': '', '__time__': '1649902984'}] |
例
成功レスポンス
JSONJSON
[
{
"test": "test",
"test2": 1
}
]
エラーコード
完全なリストについては、「エラーコード」をご参照ください。
変更履歴
完全なリストについては、「変更履歴」をご参照ください。