Simple Log Serviceを使用してログデータを収集し、ログデータをOSS (Object Storage Service) に送信して保存と分析を行うことができます。 このトピックでは、Simple log ServiceからOSSにログデータを送信する方法について説明します。
前提条件
プロジェクトと Logstore が作成済みである必要があります。 詳細については、「プロジェクトとLogstoreの作成」をご参照ください。
ログデータを収集済み。 詳細については、「データ収集の概要」をご参照ください。
Simple Log Serviceプロジェクトが存在するリージョンにOSSバケットが作成されます。 詳細については、「バケットの作成」をご参照ください。
Simple Log Serviceは、OSSリソースへのアクセスが許可されています。 [クラウドリソースアクセス許可] ページで、Simple Log ServiceにOSSリソースへのアクセスを許可できます。
RAMユーザーを使用して、Alibaba Cloudアカウント全体にログデータを送信する方法、または送信ルールを設定する方法の詳細については、「RAMコンソールでの権限付与の実行」をご参照ください。
背景情報
Simple Log Serviceは、ログストアからOSSバケットにログデータを自動的に送信できます。
OSSバケットに保存されているログデータのライフサイクルルールを設定できます。 ログデータを長期間保存するようにOSSバケットを設定できます。
E-MapReduceやdata Lake Analytics (DLA) などのデータ処理プラットフォームを使用するか、カスタムプログラムを使用してOSSバケットのログデータを消費できます。
出荷ログデータ
[プロジェクト] セクションで、管理するプロジェクトをクリックします。
タブで、Logstoreの > アイコンをクリックします。 次に、 を選択します。
ポインタをObject Storage Service (OSS) に移動し、[+] をクリックします。
[OSS LogShipper] パネルでパラメーターを設定し、[OK] をクリックします。
配送バージョンを旧バージョンに設定し、次の説明に基づいて他のパラメーターを設定する必要があります。
重要配送ルールを設定した後、複数の配送タスクを作成して同時に実行できます。 配送タスクが作成される頻度は、配送ルールを設定するときに指定する配送サイズと配送時間のパラメーターに基づいています。 パラメーターで指定された条件の1つが満たされると、出荷タスクが作成されます。
配送タスクの作成後、タスクのステータスとOSSに配送されるデータに基づいて、配送ルールが要件を満たしているかどうかを確認できます。
パラメーター
説明
OSSシッパー名
配送ルールの名前。
OSS バケット
ログデータを送信するOSSバケットの名前。
重要既存のOSSバケットの名前を指定する必要があります。 指定するOSSバケットは、Simple Log Serviceプロジェクトと同じリージョンに存在する必要があります。
File Deliveryディレクトリ
OSSバケット内のログデータを送信するディレクトリ。 値の先頭をスラッシュ (/) またはバックスラッシュ (\) にすることはできません。
OSS配布タスクが作成されると、Logstore内のデータがこのディレクトリに配布されます。
Shard形式
OSSバケット内のサブディレクトリの生成に使用されるパーティション形式。 サブディレクトリは、出荷タスクが作成された時刻に基づいて動的に生成されます。 デフォルトのパーティション形式は % Y/% m/% d/% H/% Mです。パーティション形式はスラッシュ (/) で始めることはできません。 パーティション形式の例の詳細については、「シャードフォーマット」をご参照ください。 パーティション形式のパラメーターの詳細については、「strptime」をご参照ください。
OSS書き込みRAMロール
OSSバケットへのデータの書き込みをOSS配布タスクに許可するために使用されるメソッドです。 有効な値:
デフォルトロール: OSS配布タスクがOSSバケットにデータを書き込むためのシステムロールAliyunLogDefaultRoleを引き受けることを指定します。 このオプションを選択すると、システムロールAliyunLogDefaultRoleのAlibaba Cloudリソース名 (ARN) が自動的に渡されます。
カスタムロール: OSS配布タスクがOSSバケットにデータを書き込むためのカスタムロールを引き受けることを指定します。 このオプションを選択した場合、カスタムロールにOSSバケットにデータを書き込む権限を付与する必要があります。 次に、OSS Write RAM roleフィールドにカスタムロールのARNを入力します。 詳細については、「」をご参照ください。RAMコンソールでの権限付与の実行.
ARNを取得する方法の詳細については、RAMロールのARNを取得するにはどうすればよいですか?
Shipping Size
シャード内のログデータのサイズ。 サイズに達すると、ログデータはOSSに送信されます。 このパラメーターの値は、OSSに送信され、オブジェクトに保存される生のログデータのサイズを決定します。 有効な値: 5 ~ 256 単位:MB。
発送するログデータのサイズが指定された値に達すると、発送タスクが自動的に作成されます。
Storage Format
ログデータの保存形式。 ログデータがOSSに送信された後、ログデータはさまざまな形式で保存できます。 詳細については、「JSON形式」、「CSV形式」、および「Parquet形式」をご参照ください。
圧縮
OSSに送信されるログデータを圧縮するかどうかを指定します。 有効な値:
No Compress: ログデータは抑制されません。
Compress(snappy): snappyアルゴリズムを使用してログデータを圧縮します。 これにより、OSSバケットで占有されるストレージ容量が少なくなります。 詳細については、「snappy」をご参照ください。
Shipping Time
シャードのログデータを発送する2つの発送タスクの間隔。 有効な値: 300〜900。 デフォルト値は 300 です。 単位は秒です。
間隔に達すると、出荷タスクが作成されます。
OSSデータの表示
ログデータがOSSに送信された後、OSSコンソールでログデータを表示できます。 OSS APIやOSS SDKなどの他の方法を使用してログデータを表示することもできます。 詳細については、「オブジェクトの管理」をご参照ください。
次のスクリプトは、OSSオブジェクトのURLの例を示しています。
oss://OSS-BUCKET/OSS-PREFIX/PARTITION-FORMAT_RANDOM-ID
OSS-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のサブディレクトリ内のすべてのオブジェクトを確認する必要があります。 また、6月23日00:10:00より前に生成されたオブジェクト、2016 2016/06/23/00/ サブディレクトリに、2016年6月22日に生成されたログデータが含まれているかどうかを確認する必要があります。
Shard形式
各配送タスクは、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 | 年=% Y /モン=% m /日=% 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、DLAなどのビッグデータプラットフォームを使用して、OSSデータを分析できます。 パーティション形式情報を使用する場合は、キー=値形式でpartition-formatを設定できます。 OSSオブジェクトのURL例: oss:// test-bucket/log_ship_oss_example/year=2017/mon=01/day=20/log_195043_1484913043351525351_2850008.parquet この例では、パーティションキー列として年、月、日を指定します。
次のステップ
配送タスクが作成されたら、配送ルールの変更、データ配送機能の無効化、配送タスクのステータスとエラーメッセージの表示、OSS配送ページでの配送タスクの再試行ができます。
配送ルールの変更
[設定] をクリックして配送ルールを変更します。 パラメーターの詳細については、「出荷ログデータ」をご参照ください。
データ配布機能を無効にする
[無効にする] をクリックして、データ配布機能を無効にします。
配送タスクのステータスとエラーメッセージの表示
過去2日間の配送タスクとタスクのステータスを表示できます。
タスクのステータス
ステータス
説明
成功
配送タスクが成功しました。
Running
配送タスクが実行中です。 タスクが後で成功するかどうかを確認します。
失敗した
配送タスクが失敗しました。 外部の原因でタスクを再試行できない場合は、エラーメッセージに基づいて障害をトラブルシューティングし、タスクを再試行してください。
エラーメッセージ
発送タスクが失敗した場合、そのタスクのエラーメッセージが返されます。
エラーメッセージ
原因
解決策
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を使用してタスクを再試行することもできます。
よくある質問
RAMロールのARNを取得するにはどうすればよいですか?
RAMコンソールにログインします。
左側のナビゲーションウィンドウで、[RAMロール] をクリックします。
[ロール] ページで、AliyunLogDefaultRoleロールを見つけ、ロールの名前をクリックします。
表示されるページで、[基本情報] セクションでRAMロールのARNを取得します。