Simple Log Service (SLS) のコンソール、OpenAPI、Cloud Shell、CLI、SDK を使用して、ログまたはクエリと分析の結果をローカルマシンにダウンロードします。
ダウンロード方法
SLS では、コンソール、OpenAPI、Cloud Shell、CLI、SDK を使用して、ログまたはクエリと分析の結果をダウンロードできます。
-
CLI と SDK によるダウンロードでは、クエリベースのダウンロードにデータ量の制限はありません。ただし、ネットワークの不安定性によりダウンロードが中断される場合があります。
-
圧縮ダウンロードは、コンソールでのみサポートされています。
-
Logstore で取り込みデータ量課金が使用されている場合、クエリと分析の結果 (SQL 結果) のダウンロードは無料です。詳細については、「取り込みデータ量課金」をご参照ください。
-
Logstore で機能別課金が使用されている場合、クエリと分析の結果 (SQL 結果) のダウンロードには専用 SQL が必要で、料金が発生します。詳細については、「機能別課金の課金項目」をご参照ください。
|
比較項目 |
コンソール (推奨) |
OpenAPI |
CLI |
Cloud Shell |
SDK |
|
データ量の制限 |
|
|
|
|
|
|
デプロイ |
不要 |
不要 |
SLS CLI を手動でインストールします。 |
自動デプロイ。初回実行時は初期化をお待ちください。 |
SLS SDK を手動でインストールし、カスタムコードを記述します。 |
|
権限付与 |
手動設定 |
自動設定 |
手動設定 |
||
|
専用 SQL |
SQL 分析結果のダウンロードに必要です。 |
SQL 分析結果のダウンロードに必要です。 |
SQL 分析結果のダウンロードに必要です。 |
SQL 分析結果のダウンロードに必要です。 |
必要に応じてパラメータを設定します。 |
|
アウトバウンドインターネットトラフィック |
不要 |
不要 |
プロジェクトと同じリージョンの ECS インスタンスにツールをデプロイし、SLS プライベートエンドポイントを使用する場合、料金は発生しません。 |
プロジェクトが中国 (上海) リージョンにある場合、料金は発生しません。 |
プロジェクトと同じリージョンの ECS インスタンスにツールをデプロイし、SLS プライベートエンドポイントを使用する場合、料金は発生しません。 |
|
Network Attached Storage (NAS) 統合 |
不要 |
不要 |
必要に応じて手動設定します。 |
自動設定 |
必要に応じて手動設定します。 |
または、ログを Object Storage Service (OSS) に転送してから、そこからダウンロードすることもできます。詳細については、「OSS 転送タスクの作成 (新規)」をご参照ください。
操作手順
コンソール
SLS コンソールを使用して、ログまたはクエリと分析結果をローカルマシンにダウンロードできます。ダウンロード手順はどちらの場合も同様です。以下の手順では、ログのダウンロードを例に説明します。クエリと分析結果をダウンロードするには、クエリと分析ステートメントを実行し、グラフ タブで ログのダウンロード をクリックします。
-
ログが 1 タスクあたりの上限を超える場合、上限までのログのみがダウンロードされます。すべてのログを取得するには、時間範囲を狭めて複数回に分けてダウンロードしてください。
-
各 Alibaba Cloud アカウントでは、最大 3 つのダウンロードタスクを同時に実行でき、ダウンロードの総数に制限はありません。この制限を超えた場合、または複数の RAM ユーザーが同時にダウンロードを開始した場合は、実行中のタスクが完了するまで待ってから再試行してください。
-
ダウンロードレコードは 1 日後に自動的に削除されます。
-
ネットワークエラーが発生した場合、またはクエリが不正確な場合、システムはダウンロードタスクを自動的に再試行します。3 回の再試行後、タスクのステータスは失敗に変わります。
-
SLS コンソールにログインします。
-
[プロジェクト] セクションで、対象のプロジェクトをクリックします。
-
左側のナビゲーションペインで、を選択します。[ログストア] ページで、目的のログストアをクリックします。
-
クエリ文を入力し、時間範囲を選択します。
-
Rawデータ タブで、 を選択します。
-
ログのダウンロード ダイアログボックスで、次のパラメーターを設定し、OK をクリックします。
パラメータ
説明
[タスク名]
ダウンロードタスク名。
[ログの数量]
ダウンロードするログの数。
[データフォーマット]
CSV または JSON。
-
CSV:列名は最初の 100 個のログフィールドから取得されます。後続のログの新しいフィールドは、名前のない最終列に JSON 形式で保存されます。
-
JSON:各ログエントリは単一の JSON 行です。
[引用]
特殊文字を含むフィールドを囲み、意図しないエスケープを防ぎます。
[不正確な結果をダウンロード]
いいえ を選択すると、クエリ結果が不正確な場合にダウンロードが失敗します。
[圧縮方法]
gzip、lz4、zstd、またはなし。
圧縮を使用すると、大規模なデータセットのファイルサイズとダウンロード時間を大幅に短縮できます。
-
-
ダウンロードタスク ダイアログボックスで、タスクの ステータス が 成功 に変わるのを待ってから、ダウンロード をクリックしてログをローカルマシンに保存します。
別の方法として、Rawデータ タブで を選択して ダウンロードタスク ダイアログボックスを開き、ダウンロードレコードを表示できます。
OpenAPI
CreateDownloadJob API を呼び出して、ログダウンロードタスクを作成します。
-
ログが 1 タスクあたりの上限を超える場合、上限までのログのみがダウンロードされます。すべてのログを取得するには、時間範囲を狭めて複数回に分けてダウンロードしてください。
-
各 Alibaba Cloud アカウントでは、最大 3 つのダウンロードタスクを同時に実行でき、ダウンロードの総数に制限はありません。この制限を超えた場合、または複数の RAM ユーザーが同時にダウンロードを開始した場合は、実行中のタスクが完了するまで待ってから再試行してください。
-
ダウンロードレコードは 1 日後に自動的に削除されます。
-
ネットワークエラーが発生した場合、またはクエリが不正確な場合、システムはダウンロードタスクを自動的に再試行します。3 回の再試行後、タスクのステータスは失敗に変わります。
Cloud Shell
Cloud Shell は中国 (上海) にデプロイされています。他のリージョンの Logstore からダウンロードすると、アウトバウンドインターネットトラフィック料金が発生します。詳細については、料金をご参照ください。詳細については、「Cloud Shell を使用したログデータのダウンロード」をご参照ください。
CLI
大量のログの場合は、CLI を使用してください。
-
CLI をインストールします。詳細については、「CLI のインストール」をご参照ください。
-
AccessKey ペアを取得します。詳細については、「AccessKey ペア」をご参照ください。
-
ダウンロードコマンドを実行します。詳細については、「get_log_all」をご参照ください。
例:次のコマンドは、ログをダウンロードし、作業ディレクトリの
downloaded_data.txtに保存します。aliyunlog log get_log_all --project="aliyun-test-project" --logstore="aliyun-test-logstore" --from_time="2024-07-01 15:33:00+8:00" --to_time="2024-07-09 15:23:00+8:00" --query="status:200|select request_method as method,COUNT(*) as pv group by method order by pv" --region-endpoint="cn-hangzhou.log.aliyuncs.com" --format-output=json --access-id="LT***CyGg" --access-key="8P***zi" >> ./downloaded_data.txt
詳細については、「SLS CLI の使用」をご参照ください。
SDK
大量のログの場合は、SDK を使用してください。
SDK では、ログのダウンロードとクエリに同じ API を使用します。
次のコードは、Python SDK の例です。
import os
import time
from aliyun.log import LogClient
from aliyun.log import GetLogsRequest
# Simple Log Service のエンドポイントです。
endpoint = 'cn-qingdao.log.aliyuncs.com'
# この例では、環境変数から AccessKey ID と AccessKey Secret を取得する方法を示しています。
accessKeyId = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
accessKey = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
# プロジェクト名です。
project = 'your-project-name'
# Logstore 名です。
logstore = 'your-logstore-name'
client = LogClient(endpoint, accessKeyId, accessKey)
# GetLogsRequest の呼び出しでは、プロジェクト名と Logstore 名を実際の値に置き換える必要があります。
request = GetLogsRequest(project, logstore, fromTime=int(time()-3600), toTime=int(time()), topic='', query="*", line=100, offset=0, reverse=False)
# または
# request = GetLogsRequest(project, logstore, fromTime="2018-1-1 10:10:10", toTime="2018-1-1 10:20:10", topic='', query="*", line=100, offset=0, reverse=False)
res = client.get_logs(request)
res.log_print()
詳細については、「SDK リファレンス概要」をご参照ください。
> ログのダウンロード