Simple Log Service を使用してログデータを収集し、Object Storage Service (OSS) に転送して保存および分析できます。このトピックでは、Simple Log Service から OSS にログデータを転送する方法について説明します。
OSS へのログ転送の旧バージョンは廃止されました。新バージョンを参照してください。
前提条件
プロジェクトとログストアが作成されていること。詳細については、「プロジェクトとログストアを作成する」をご参照ください。
ログデータが収集されていること。詳細については、「データ収集の概要」をご参照ください。
Simple Log Service プロジェクトが存在するリージョンに OSS バケットが作成されていること。詳細については、「バケットを作成する」をご参照ください。
Simple Log Service が OSS リソースにアクセスする権限を持っていること。Cloud Resource Access Authorization ページで、Simple Log Service に OSS リソースへのアクセス権限を付与できます。
Alibaba Cloud アカウント間でログデータを転送する方法、または RAM ユーザーを使用して転送ルールを構成する方法の詳細については、「RAM コンソールで権限付与を実行する」をご参照ください。

背景情報
Simple Log Service は、ログストアから OSS バケットにログデータを自動的に転送できます。
OSS バケットに保存されているログデータのライフサイクルルールを構成できます。OSS バケットを構成して、ログデータを長期間保存できます。
E-MapReduce や Data Lake Analytics (DLA) などのデータ処理プラットフォームを使用するか、カスタムプログラムを使用して、OSS バケットからログデータを使用できます。
ログデータを転送する
転送ルールを構成すると、Simple Log Service は複数のインスタンスを同時に実行します。
転送インスタンスが作成された後、ジョブステータスと OSS に転送されたデータに基づいて、転送ルールが要件を満たしているかどうかを確認できます。
Simple Log Service コンソール にログインします。
[プロジェクト] セクションで、管理するプロジェクトをクリックします。

タブで、ログストアを見つけ、[>] をクリックし、 を選択します。
ポインタを [Object Storage Service (OSS)] に移動し、[+] アイコンをクリックします。
[OSS LogShipper] パネルで、パラメータを構成し、[OK] をクリックします。
[転送バージョン] を [旧バージョン] に設定し、以下の説明に基づいて他のパラメータを構成します。
パラメータ
説明
OSS Shipper 名
転送ルールの名前。
OSS バケット
ログデータを転送する OSS バケットの名前。
重要Write Once Read Many (WORM) 機能が無効になっている既存の OSS バケットにのみデータを転送できます。バケットは Simple Log Service プロジェクトと同じリージョンに存在する必要があります。WORM 機能の詳細については、「保存ポリシー」をご参照ください。
標準、低頻度アクセス (IA)、アーカイブ、コールドアーカイブ、またはディープコールドアーカイブストレージタイプの OSS バケットにデータを転送できます。デフォルトでは、転送されたデータを格納する生成された OSS オブジェクトのストレージタイプは、指定された OSS バケットのストレージタイプと同じです。詳細については、「ストレージタイプの概要」をご参照ください。
標準ストレージタイプではない OSS バケットには、最小保存期間と最小請求サイズという制限が適用されます。OSS バケットを作成するときは、ビジネス要件に基づいてストレージタイプを指定することをお勧めします。詳細については、「ストレージタイプ間の違い」をご参照ください。
ファイル配信ディレクトリ
OSS バケット内のログデータを転送するディレクトリ。値はスラッシュ (/) またはバックスラッシュ (\) で始めることはできません。
OSS 転送タスクが作成されると、ログストア内のデータはこのディレクトリに転送されます。
シャード形式
OSS バケットにサブディレクトリを生成するために使用されるパーティション形式。サブディレクトリは、転送タスクが作成された時刻に基づいて動的に生成されます。デフォルトのパーティション形式は %Y/%m/%d/%H/%M です。パーティション形式はスラッシュ (/) で始めることはできません。パーティション形式の例の詳細については、「シャード形式」をご参照ください。パーティション形式のパラメータの詳細については、「strptime」をご参照ください。
OSS 書き込み RAM ロール
OSS 転送タスクに OSS バケットへのデータ書き込みを承認するために使用されるメソッド。
[デフォルトロール]: OSS データ転送ジョブが AliyunLogDefaultRole システムロールを担って OSS バケットにデータを書き込むことを指定します。このオプションを選択すると、AliyunLogDefaultRole システムロールの Alibaba Cloud リソースネーム (ARN) が自動的に指定されます。ARN の取得方法の詳細については、「デフォルトロールを使用してデータにアクセスする」をご参照ください。
[カスタムロール]: OSS データ転送ジョブがカスタムロールを担って OSS バケットにデータを書き込むことを指定します。
このオプションを選択した場合は、カスタムロールに OSS バケットにデータを書き込む権限を付与する必要があります。次に、[OSS 書き込み RAM ロール] フィールドにカスタムロールの ARN を入力します。ARN の取得方法については、ビジネスシナリオに基づいて、次のいずれかのトピックを参照してください。
ログストアと OSS バケットが同じ Alibaba Cloud アカウントに属している場合は、「手順 2: RAM ロールに OSS バケットにデータを書き込む権限を付与する」に記載されている手順に従って ARN を取得します。
ログストアと OSS バケットが異なる Alibaba Cloud アカウントに属している場合は、「手順 2: ロール b RAM ロールに OSS バケットにデータを書き込む権限を付与する」に記載されている手順に従って ARN を取得します。
転送サイズ
シャード内のログデータのサイズ。このサイズに達すると、ログデータは OSS に転送されます。このパラメータの値は、OSS に転送され、オブジェクトに保存される生のログデータのサイズを決定します。有効な値: 5 ~ 256。単位: MB。
転送するログデータのサイズが指定された値に達すると、転送タスクが自動的に作成されます。
ストレージ形式
ログデータのストレージ形式。ログデータが OSS に転送されると、ログデータはさまざまな形式で保存できます。詳細については、「JSON 形式」、「CSV 形式」、および「Parquet 形式」をご参照ください。
圧縮
OSS に転送されるログデータを圧縮するかどうかを指定します。有効な値:
圧縮なし: ログデータは圧縮されません。
圧縮 (snappy): snappy アルゴリズムを使用してログデータを圧縮します。これにより、OSS バケットでのストレージ容量が少なくなります。詳細については、「snappy」をご参照ください。
転送時間
シャードのログデータを転送する 2 つの転送タスクの間隔。有効な値: 300 ~ 900。デフォルト値: 300。単位: 秒。
間隔に達すると、転送タスクが作成されます。
OSS データを表示する
データが OSS に転送された後、OSS コンソールでデータを表示できます。OSS API や OSS SDK などの他の方法を使用してデータを表示することもできます。詳細については、「オブジェクトを管理する」をご参照ください。
OSS オブジェクトの URL は、次の形式です。
oss://OSS-BUCKET/OSS-PREFIX/PARTITION-FORMAT_RANDOM-IDOSS-BUCKET は OSS バケットの名前です。OSS-PREFIX は OSS バケット内のディレクトリです。PARTITION-FORMAT は、サブディレクトリを生成するために使用されるパーティション形式です。サブディレクトリは、strptime 関数を使用して転送タスクが作成された時刻に基づいて生成されます。strptime 関数の詳細については、「strptime」をご参照ください。RANDOM-ID は、転送タスクの一意の識別子です。
サブディレクトリは、転送タスクが作成された時刻に基づいて生成されます。たとえば、転送タスクが 2016 年 6 月 23 日 00:00:00 に作成されたとします。2016 年 6 月 22 日 23:55:00 以降に Simple Log Service に書き込まれたデータは OSS に転送されます。データは 5 分間隔で転送されます。2016 年 6 月 22 日のログデータを分析する場合は、2016/06/22 サブディレクトリ内のすべてのオブジェクトを確認する必要があります。2016/06/23/00/ サブディレクトリ内の 2016 年 6 月 23 日 00:10:00 より前に生成されたオブジェクトに、2016 年 6 月 22 日に生成されたログデータが含まれているかどうかも確認する必要があります。
シャード形式
各転送タスクは、oss://OSS-BUCKET/OSS-PREFIX/PARTITION-FORMAT_RANDOM-ID 形式の OSS オブジェクト URL に対応しています。PARTITION-FORMAT は、サブディレクトリを生成するために使用されるパーティション形式です。サブディレクトリは、転送タスクが作成された時刻に基づいて生成されます。次の表は、2017 年 1 月 20 日 19:50:43 に作成された転送タスクのさまざまなパーティション形式を示しています。
OSS バケット | OSS プレフィックス | パーティション形式 | OSS オブジェクトの URL |
test-bucket | test-table | %Y/%m/%d/%H/%M | oss://test-bucket/test-table/2017/01/20/19/50_1484913043351525351_2850008 |
test-bucket | log_ship_oss_example | year=%Y/mon=%m/day=%d/log_%H%M%S | oss://test-bucket/log_ship_oss_example/year=2017/mon=01/day=20/log_195043_1484913043351525351_2850008.parquet |
test-bucket | log_ship_oss_example | ds=%Y%m%d/%H | oss://test-bucket/log_ship_oss_example/ds=20170120/19_1484913043351525351_2850008.snappy |
test-bucket | log_ship_oss_example | %Y%m%d/ | oss://test-bucket/log_ship_oss_example/20170120/_1484913043351525351_2850008 説明 この形式を使用すると、Hive などのプラットフォームが OSS バケット内のログデータを解析できない場合があります。この形式は使用しないことをお勧めします。 |
test-bucket | log_ship_oss_example | %Y%m%d%H | oss://test-bucket/log_ship_oss_example/2017012019_1484913043351525351_2850008 |
Hive、MaxCompute、Data Lake Analytics (DLA) などのビッグデータプラットフォームを使用して OSS データを分析できます。パーティション形式情報を使用する場合は、OSS オブジェクトの URL で PARTITION-FORMAT を key=value 形式で設定できます。OSS オブジェクトの URL の例: oss://test-bucket/log_ship_oss_example/year=2022/mon=01/day=20/log_195043_1484913043351525351_2850008.parquet。この例では、年、月、日がパーティションキー列として指定されています。
次のステップ
転送タスクが作成された後、[OSS Shipper] ページで、転送ルールを変更したり、データ転送機能を無効にしたり、転送タスクのステータスとエラーメッセージを表示したり、転送タスクを再試行したりできます。
転送ルールを変更する
[設定] をクリックして、転送ルールを変更します。パラメータの詳細については、「ログデータを転送する」をご参照ください。
データ転送機能を無効にする
[無効にする] をクリックして、データ転送機能を無効にします。
転送タスクのステータスとエラーメッセージを表示する
過去 2 日間の転送タスクとタスクのステータスを表示できます。
タスクステータス
ステータス
説明
成功
出荷タスクは成功しました。
実行中
出荷タスクは実行中です。 後でタスクが成功するかどうかを確認してください。
失敗
出荷タスクは失敗しました。 外部要因によりタスクを再試行できない場合は、エラーメッセージに基づいて障害をトラブルシューティングし、タスクを再試行してください。
詳細については、「メディア」をご参照ください。
配送タスクが失敗した場合、タスクに対してエラーメッセージが返されます。
エラーメッセージ
原因
解決策
UnAuthorized
配送タスクに必要な権限がないために返されるエラーメッセージです。
エラーを修正するには、次の構成を確認します。
OSS バケットが属する Alibaba Cloud アカウントに AliyunLogDefaultRole ロールが作成されているかどうかを確認します。
ポリシーで構成されている Alibaba Cloud アカウント ID が有効かどうかを確認します。
AliyunLogDefaultRole ロールに OSS バケットへのデータ書き込み権限が付与されているかどうかを確認します。
AliyunLogDefaultRole ロールの ARN が有効かどうかを確認します。
ConfigNotExist
タスクの構成が存在しないために返されるエラーメッセージです。
ほとんどの場合、このエラーはデータ配送機能が無効になっているために発生します。データ配送機能を有効にし、タスクの配送ルールを構成してから、タスクを再試行することをお勧めします。
InvalidOssBucket
指定された OSS バケットが存在しないために返されるエラーメッセージです。
エラーを修正するには、次の構成を確認します。
指定された OSS バケットが Simple Log Service プロジェクトと同じリージョンにあるかどうかを確認します。
指定されたバケットの名前が有効かどうかを確認します。
InternalServerError
Simple Log Service で内部エラーが発生したために返されるエラーメッセージです。
配送タスクを再試行します。
配送タスクをリトライする
デフォルトでは、Simple Log Service は、配送タスクが失敗した場合、リトライポリシーに基づいて配送タスクをリトライします。配送タスクを手動でリトライすることもできます。デフォルトでは、Simple Log Service は過去 2 日間のすべての失敗したタスクをリトライします。 2 回の連続するリトライ間の最小間隔は 15 分です。タスクが最初に失敗した場合、Simple Log Service は 15 分後にタスクをリトライします。タスクが 2 回目に失敗した場合、Simple Log Service は 30 分後にタスクをリトライします。タスクが 3 回目に失敗した場合、Simple Log Service は 60 分後にタスクをリトライします。以降のリトライでも同じ方法が使用されます。
失敗したタスクをすぐにリトライするには、タスクの右側にある [すべての失敗したタスクを再試行] または [再試行] をクリックします。 API 操作を呼び出すか、SDK を使用してタスクをリトライすることもできます。