edit-icon download-icon

OSS へのログの転送

最終更新日: May 31, 2018

Log Serviceは、Logstore データを Object Storage Service (OSS)に自動的にアーカイブして、より多くのログ機能を実現します。

  • OSS データは、長期間のログストレージのライフサイクル設定をサポートします。
  • 自己構築プログラムや他のシステム(たとえば、E-MapReduce)を使用して OSS データを使用することができます。

機能の利点

Log Service を使用して OSS にログを送信すると、次の利点があります。

  • 使いやすさ。Log Service Logstore データをコンソールで OSS に同期するように設定できます。

  • 効率を改善しました。Log Service のログ収集は、異なるマシンからのログを繰り返し収集して OSS にインポートすることなく、異なるマシンのログを集中管理します。

  • 管理のしやすさ。OSS への出荷ログは、Log Service ロググループを完全に再利用できます。異なるプロジェクトのログとログストアは、異なる OSS バケットディレクトリに自動的に出荷され、OSS データ管理が容易になります。

前提条件

  1. Log Service を有効にし、プロジェクトとログストアを作成し、ログデータを収集します。

  2. OSS を有効にし、 Log Service プロジェクトが存在するリージョンにバケットを作成します。

  3. RAM アクセスコントロールを有効にします。

  4. Log Service プロジェクトと OSS バケットは、同じリージョンに配置する必要があります。クロスリージョンのデータ転送がサポートされていません。

手順

ステップ 1. Resource Access Management (RAM)の承認

迅速な認証

出荷タスクを実行する前に、 Log Service に OSS への書き込み権限が与えられている必要があります。

RAMクイック認証ページ RAM クイック認証ページに移動し、表示されたページで[同意する]をクリックします。承認が完了した後、 Log Service には対応する OSS への書き込み許可が与えられます。

注意

ステップ 2. Log Service で OSS 出荷ルールを設定する

  1. [Log Service コンソール]にログインする。

  2. プロジェクト一覧 ページでプロジェクト名をクリックします。

  3. Logstore を選択し、左側のナビゲーションペインで LogShipper - 転送 > OSS をクリックします。

  4. 有効をクリックし、 OSS LogShipper の設定を行い、確認をクリックします。

OSS 出荷設定を完了するには、次の表を参照してください。

設定項目説明値の範囲
OSS Shipping Name OSS 出荷の名前。名前は 3〜63 文字で、小文字、数字、ハイフン( - )、アンダースコア(_)を含むことができ、小文字の文字または数字で始まり、末尾に入力する必要があります。
OSS BucketOSS バケットの名前。 既存のバケット名でなければならず、OSS バケットが Log Service プロジェクトと同じリージョンにあることを確認してください。
OSS Prefix OSS の接頭辞。Log Service から OSS に同期されたデータは、このバケットディレクトリに格納されます。既存の OSS 接頭辞でなければなりません。
Partition Format %Y、%m、%d、%H、および %M を使用して、パーティション文字列を生成する LogShipper タスクの作成時間をフォーマットします。これは、OSS に書き込まれるオブジェクトファイルのディレクトリ階層を定義します。スラッシュ(/)は、OSS ディレクトリのレベルを示します。次の表は、OSS 接頭辞とパーティション形式を使用して OSS ターゲットファイルパスを定義する方法を示しています。 書式設定の詳細については、Strptime API を参照してください。
RAM Role Arn と RAM の役割の名前。RAM ロールはアクセス許可を制御するために使用され、OSS バケット所有者がロールを作成するための ID です。RAM 役割の ARN はこの役割の基本情報で見ることができます。 たとえば、acs:ram::45643:role/aliyunlogdefaultroleのようになります。
Shipping Size LogShipper タスクの作成間隔を自動的に制御し、圧縮されていない OSS オブジェクトの最大サイズを設定します。 値の範囲は 5 〜 256 です。単位は MB です。
Compression OSS データストレージの圧縮方法。
Storage Format ログデータの保存形式は OSS に出荷されます。JSONParquetCSVの 3 つの形式がサポートされています。
Shipping Time LogShipper タスク間の時間間隔。 デフォルト値は 300 です。値の範囲は 300-900 です。単位は秒です。

1

1

注: Log Service は、バックエンドでのデータ配送を同時に実装します。大量のデータは、複数の shipping スレッドによって処理される可能性があります。各配送スレッドは、サイズと時間に基づいてタスクの生成頻度を共同で決定します。いずれかの条件が満たされると、出荷スレッドがタスクを作成します。

パーティションフォーマット

各 LogShipper タスクは、oss://OSS-BUCKET/OSS-PREFIX/PARTITION-FORMAT_RANDOM-IDのパス形式で OSS ファイルに書き込まれます。LogShipper タスクの作成時刻をフォーマットして、PARTITION-FORMATを取得します。例として、2017-01-20 19:50:43 で作成した LogShipper タスクを使用して、パーティション形式の使用方法を説明します。

OSS バケット OSS プレフィックス パーティションフォーマット OSS ファイルパス
test-bucket test-table %Y/%m/%d/%H/%M oss://test-bucket/test-table/2017/01/20/19/50/43_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
test-bucket log_ship_oss_example %Y%m%d%H oss://test-bucket/log_ship_oss_example/2017012019_1484913043351525351_2850008

Hive や MaxCompute などの大きなデータプラットフォームを使用して OSS データを分析します。パーティションデータを使用するには、ディレクトリの各レベルを key = value 形式(Hive 形式のパーティション)に設定します。

例えば、oss://test-bucket/log_ship_oss_example/year=2017/mon=01/day=20/log_195043_1484913043351525351_2850008.parquet は、年、月、日の 3 つのレベルのパーティションに設定できます。

LogShipper タスク管理

LogShipper 機能を有効にすると、Log Service 定期的にバックエンドの LogShipper タスクを開始します。コンソールで LogShipper タスクのステータスを表示できます。

LogShipper のタスク管理では、次のことが可能です。

  • 過去 2 日間の LogShipper タスクをすべて表示し、ステータスを確認します。LogShipper タスクのステータスは、 Success Failed Running です。ステータス Failed は、LogShipper タスクが外部の理由でエラーが発生したため、再試行できないことを示します。この場合、手動で問題を解決する必要があります。

  • 2 日以内に作成された失敗した LogShipper タスクについては、タスクリストで障害を引き起こす外部の理由を表示できます。外部エラーを修正したら、失敗したタスクを別々に、またはバッチで再試行できます。

手順

  1. [Log Service コンソール]にログインします。

    Project List ページでプロジェクト名をクリックします。

  2. ログストアを選択し、左側のナビゲーションペインで LogShipper - 転送 > OSS をクリックします。

    タスクの開始時刻、タスクの終了時刻、ログが受信された時刻、データ行、タスクの状態などの情報を表示できます。

    LogShipper タスクが失敗すると、対応するエラーメッセージがコンソールに表示されます。デフォルトでは、ポリシーに基づいてタスクが再試行されます。タスクを手動で再試行することもできます。

タスクを再試行する

一般に、ログデータは Logstore に書き込まれてから 30 分以内に OSS に同期されます。

デフォルトでは、Log Service はアニーリングポリシーに基づいて過去 2 日間のタスクを再試行します。再試行の最小間隔は 15 分です。1 回失敗したタスクは 15 分後に再試行でき、2 回失敗したタスクは 30 分後(2 x 15 分)に再試行でき、3 回失敗したタスクは 60 分後に再試行できます(2 x 30 分)。

失敗したタスクをただちに再試行するには、コンソールで[再試行すべての失敗したタスク]をクリックするか、タスクを指定して API/SDK を使用して再試行します。

失敗したタスクのエラー

タスクの失敗を引き起こす次の一般的なエラーを参照してください。

エラーメッセージエラー原因 取り扱い方法
UnAuthorized No permission. 以下を確認してください:
  • OSS ユーザーが役割を作成しました。
  • 役割の説明のアカウント ID が正しい。
  • この役割には、OSS バケットを書く権限が与えられています。
  • role-arn が正しく構成されています。
ConfigNotExistThe configuration does not exist.このエラーは、通常、出荷ルールの削除によって発生します。出荷ルールを再設定した後、タスクを再試行してください。
InvalidOssBucket The OSS bucket does not exist.以下を確認してください:
  • OSS バケットは、Log Service プロジェクトと同じ地域にあります。
  • バケット名が正しく設定されています。
InternalServerErrorThe internal error of Log Service.タスクを再試行します。

OSS データストレージ

コンソールまたは API/SDK を使用して、OSS データにアクセスできます。

コンソールの OSS データにアクセスするには、OSS コンソールにログオンし、左側のナビゲーションペインでバケット名をクリックします。次に、ファイルをクリックして、 Log Service から出荷されたデータを表示します。

OSS の詳細については、OSS document を参照してください。

ブジェクトのアドレス

oss:// OSS-BUCKET/OSS-PREFIX/PARTITION-FORMAT_RANDOM-ID

  • パスフィールドの説明

    • OSS-BUCKETOSS-PREFIXOSS 示すバケットはそれぞれ名前とディレクトリの接頭辞を、ユーザによって設定されます。INCREMENTIDは、システムによって追加された乱数です。
    • %Y, %m, %d, %H, and %Mは、%Y/%m/%d/%H/%Mとして定義されます。M は年、月、日、時、分をそれぞれ示す。strptime API を使用して、ログサービスで LogShipper タスクが作成された時間を計算します。
    • RANDOM-IDは LogShipper タスクの一意の識別子です。
  • ディレクトリ時間

OSS データディレクトリは、作成された LogShipper タスクの時間に従って設定されます。5 分ごとにデータが OSS に出荷されると仮定します。2016-06-23 00:00:00 に作成された LogShipper タスクは、2016-06-22 23:55 以降に Log Service に書き込まれたデータを提供します。2016/06/22 ディレクトリのすべてのオブジェクトに加えて、2016-06-22 の終日の完全なログを分析するには、2016/06/23/00 の最初の 10 分間のオブジェクト/ディレクトリには 2016-06-22 のログが含まれています。

オブジェクトの格納形式