Simple Log Service でデータを収集した後、Object Storage Service (OSS) に転送して保存および分析できます。本トピックでは、OSS 転送タスク(旧バージョン)の作成方法について説明します。
OSS へのログ転送の旧バージョンは廃止されています。新バージョンをご参照ください。
前提条件
-
プロジェクトおよび Logstore が存在していること。詳細については、「プロジェクトと Logstore の作成」をご参照ください。
-
ログデータがすでに収集済みであること。詳細については、「データ収集」をご参照ください。
-
OSS バケットが、ご利用の SLS プロジェクトと同じリージョンに存在すること。詳細については、「バケットの作成」をご参照ください。
-
クラウドリソースへのアクセス権限付与を完了していること。
Alibaba Cloud アカウント間でのデータ転送や RAM ユーザーによる転送タスクの作成を行う場合は、必要な RAM 権限を付与する必要があります。詳細については、「OSS へのログ転送に関する RAM 権限の管理」をご参照ください。

背景情報
Simple Log Service では、Logstore のデータを自動的に OSS へアーカイブすることで、データの価値をさらに高めることができます。
-
OSS では、ライフサイクルルールを設定して、長期にわたるデータ保存が可能です。
-
E-MapReduce や Data Lake Analytics (DLA) などのデータ処理プラットフォーム、またはカスタムプログラムを用いて、OSS からデータを消費できます。
操作手順
-
転送機能を有効化すると、Simple Log Service は複数の転送インスタンスを並列で実行します。
-
転送インスタンスが生成された後は、そのステータスおよび OSS 内のデータを確認することで、転送タスクの動作を検証できます。
Simple Log Service コンソールにログインします。
Projects セクションで、対象のプロジェクトをクリックします。

-
タブで、対象 Logstore の左側にある > をクリックし、 を選択します。
-
Object Storage Service (OSS) 上にマウスカーソルを合わせ、+ アイコンをクリックします。
-
OSS LogShipper パネルで、以下のパラメーターを設定し、OK をクリックします。
[出荷バージョン] を [旧バージョン] に設定します。以下の表では、主要なパラメーターについて説明します。
パラメーター
説明
OSS shipper 名
転送タスクの名前です。
OSS バケット
送信先 OSS バケットの名前です。
重要-
バケットは事前に存在しており、Write-Once-Read-Many (WORM) ポリシーが無効化されており、SLS プロジェクトと同じリージョンに配置されている必要があります。WORM の詳細については、「保持ポリシー(WORM)」をご参照ください。
-
標準、低頻度アクセス(IA)、アーカイブ、コールドアーカイブストレージ、ディープコールドアーカイブストレージの各ストレージクラスのバケットにデータを転送できます。生成される OSS オブジェクトのデフォルトのストレージクラスは、バケットのストレージクラスと一致します。詳細については、「ストレージクラス」をご参照ください。
-
標準以外のストレージクラスには、最低保存期間および最低課金サイズが設定されています。送信先バケットのストレージクラスは、ご要件に合致するものを選択してください。詳細については、「ストレージクラスの比較」をご参照ください。
ファイル配信ディレクトリ
OSS バケット内のディレクトリです。ディレクトリ名は、前方スラッシュ(/)またはバックスラッシュ(\)で始めてはいけません。
OSS 転送タスクが作成されると、Logstore のデータはこのディレクトリに送信されます。
パーティションフォーマット
転送タスクの作成時刻に基づいて、OSS バケットのサブディレクトリを動的に生成するためのフォーマットです。フォーマットは前方スラッシュ(/)で始めてはいけません。デフォルト値は %Y/%m/%d/%H/%M です。例については、「パーティションフォーマット」をご参照ください。パラメーターの詳細については、strptime API をご参照ください。
OSS 書き込み用 RAM ロール
OSS バケットへのデータ書き込みを許可する権限を、OSS 転送タスクに付与します。
-
デフォルトロール:Alibaba Cloud システムロール AliyunLogDefaultRole を使用して OSS バケットにデータを書き込むようジョブを承認します。AliyunLogDefaultRole の ARN を入力します。ARN の取得方法については、「デフォルトロールを使用したデータへのアクセス」をご参照ください。
-
カスタムロール:カスタムロールを使用して OSS バケットにデータを書き込むようジョブを承認します。
まず、カスタムロールに対して OSS バケットへの書き込み権限を付与する必要があります。その後、OSS 書き込み用 RAM ロール フィールドにカスタムロールの ARN を入力します。ARN の取得方法は以下のとおりです:
-
Logstore と OSS バケットが同一 Alibaba Cloud アカウントに属する場合:「ステップ 2:RAM ロールに OSS バケットへの書き込み権限を付与する」をご参照ください。
-
Logstore と OSS バケットが異なる Alibaba Cloud アカウントに属する場合:「ステップ 2:RAM ロール role-b に OSS バケットへの書き込み権限を付与する」をご参照ください。
-
配送サイズ
各シャードから転送するデータ量です。これは、各 OSS オブジェクトにおける非圧縮データのサイズを制御します。値は 5~256 の整数で指定します。単位:MB。
シャードから転送するデータ量がこの値に達すると、新しい転送インスタンスが自動的に作成されます。
保存フォーマット
OSS へ転送されるデータの保存フォーマットです。詳細については、「JSON 形式」、「CSV 形式」および「Parquet 形式」をご参照ください。
圧縮
OSS に保存されるデータの圧縮方式です。
-
圧縮なし:データは圧縮されません。
-
圧縮(snappy):データは snappy アルゴリズムで圧縮されます。これにより、OSS バケット内のストレージ使用量を削減できます。
出荷間隔
各シャードの転送間隔です。値は 300~900 の整数で指定します。デフォルト値は 300 です。単位:秒。
シャードの転送間隔が経過すると、新しい転送インスタンスが自動的に作成されます。
-
OSS 内のデータの表示
データが OSS へ正常に転送された後は、OSS コンソール、API、SDK またはその他のツールを使用してデータにアクセスできます。詳細については、「オブジェクト管理」をご参照ください。
OSS オブジェクトパスの形式は以下のとおりです:
oss://OSS-BUCKET/OSS-PREFIX/PARTITION-FORMAT_RANDOM-ID
OSS-BUCKET は OSS バケット名、OSS-PREFIX はディレクトリプレフィックス、PARTITION-FORMAT はパーティションフォーマット(転送タスクの作成時刻を strptime API を使用して計算したもの)、RANDOM-ID は転送タスクの固有 ID です。
OSS バケットのディレクトリは、転送タスクの作成時刻によって決定されます。たとえば、2016 年 6 月 23 日 00:00:00 に作成された転送タスクは、2016 年 6 月 22 日 23:55 以降に Simple Log Service に書き込まれたデータを転送します。データは 5 分ごとに OSS へ転送されると仮定します。2016 年 6 月 22 日の全データを分析するには、2016/06/22 ディレクトリ内のすべてのオブジェクトを確認し、さらに 2016/06/23/00/ ディレクトリ内で最初の 10 分間に作成されたオブジェクトに 2016 年 6 月 22 日のデータが含まれているかを確認する必要があります。
パーティションフォーマット
転送タスクは、oss://OSS-BUCKET/OSS-PREFIX/PARTITION-FORMAT_RANDOM-ID の形式で OSS バケットのディレクトリに対応します。PARTITION-FORMAT は転送タスクの作成時刻から導出されます。以下の表は、2017 年 1 月 20 日 19:50:43 に作成された転送タスクの例を示しています。
|
OSS バケット |
OSS プレフィックス |
パーティションフォーマット |
OSS ファイルパス |
|
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 データを分析する際は、パーティション情報を活用するために、パーティションフォーマットを key=value 形式に設定できます。たとえば、パス oss://test-bucket/log_ship_oss_example/year=2022/mon=01/day=20/log_195043_1484913043351525351_2850008.parquet では、year、mon、day の 3 つのパーティションカラムが使用されます。
その他の操作
転送タスクを作成した後は、OSS Shipper ページでタスクの変更、転送の無効化、タスクステータスおよびエラーメッセージの表示、失敗したタスクの再実行などが可能です。
-
配送タスクを変更する
設定項目 をクリックして転送タスクを変更します。パラメーターの詳細については、本トピックの「操作手順」をご参照ください。
-
配送を無効化する
無効化 をクリックして転送タスクを無効化します。
-
タスクステータスおよびエラーメッセージの表示
Simple Log Service では、過去 2 日間のすべての転送タスクおよびそのステータスを表示できます。
-
タスクステータス
ステータス
説明
成功
転送タスクが正常に完了しました。
実行中
転送タスクが進行中です。しばらくしてから再度ステータスを確認してください。
失敗
自動リトライでは解決できないエラーにより、転送タスクが失敗しました。エラーメッセージに基づいて問題を特定し、タスクを再実行してください。
-
エラーメッセージ
転送タスクが失敗した場合、コンソールに該当するエラーメッセージが表示されます。
エラーメッセージ
原因
解決策
UnAuthorized
必要な権限が付与されていません。
以下の設定を確認してください:
-
OSS バケットの所有者が AliyunLogDefaultRole ロールを作成済みであるかを確認します。
-
ロールのポリシードキュメントに記載された Alibaba Cloud アカウント ID が正しいかを確認します。
-
AliyunLogDefaultRole ロールに OSS バケットへの書き込み権限が付与されているかを確認します。
-
RAM ロールの ARN が正しく設定されているかを確認します。
ConfigNotExist
構成が存在しません。
このエラーは通常、転送タスクが無効化された場合に発生します。タスクを再度有効化してから再実行してください。
InvalidOssBucket
OSS バケットが存在しません。
以下の設定を確認してください:
-
OSS バケットと Simple Log Service プロジェクトが同一リージョンにあるかを確認します。
-
バケット名のスペルミスがないかを確認します。
InternalServerError
Simple Log Service で内部エラーが発生しました。
タスクを再実行してください。
-
-
タスクの再実行
デフォルトでは、Simple Log Service は失敗したタスクをポリシーに従って自動的に再実行します。また、手動で再実行することも可能です。Simple Log Service は、過去 2 日間のすべての失敗したタスクを再実行します。タスクが失敗した場合、システムは最初の自動再実行まで 15 分、2 回目まで 30 分、3 回目まで 60 分待機します(以降、指数関数的に増加)。
失敗したタスクを即座に再実行するには、すべての失敗したタスクを再実行 をクリックするか、対象タスクの行にある 再実行 をクリックします。また、API や SDK を使用して特定のタスクを再実行することも可能です。
-