Simple Log Service (SLS) のリージョン、プロジェクト、Logstore、ログ、およびその他のデータ構造について説明します。
以下の概念は、SLS のデータモデルを説明するものです。
リージョン
リージョンは、Alibaba Cloud のサービスノードです。ユーザーのアクセスレイテンシーを低減するために、さまざまなリージョンにサービスをデプロイします。
プロジェクト
プロジェクトは、SLS におけるリソース分離と制御のための基本的な管理単位です。プロジェクトを使用して、アプリケーションのすべてのログとログソースを管理します。
Logstore
Logstore は、SLS におけるログ収集、ストレージ、消費の単位です。各 Logstore はプロジェクトに属し、1 つのプロジェクトに複数の Logstore を含めることができます。ベストプラクティス: ログタイプごとに 1 つの Logstore を作成してください。たとえば、操作ログ、アプリケーションログ、アクセスログを生成する big-game という名前のゲームアプリケーションの場合、big-game という名前のプロジェクトを 1 つ作成し、ログタイプごとに 1 つずつ、合計 3 つの Logstore を作成します。
ログ
| フィールド | 説明 | 要件 |
| time | 予約済みフィールド。ログが生成された時刻で、通常はログタイムスタンプから抽出されます。 | 整数。UNIX タイムスタンプ (秒単位) (1970 年 1 月 1 日 00:00:00 UTC からの経過秒数) です。 |
| topic | ログを分類するためのカスタムフィールド。たとえば、アクセスログをサイトごとに分類します。 | 空文字列を含む、最大 128 バイトの任意の文字列。デフォルトは空文字列です。 |
| source | ログソース (発生元のマシンの IP アドレスなど)。 | 最大 128 バイトの任意の UTF-8 エンコード文字列。デフォルトは空文字列です。 |
| content | ログの内容。1 つ以上のキーバリューペアで構成されます。 | キー: UTF-8 文字列、最大 128 バイト。使用可能な文字:英字、数字、アンダースコア (_)。数字で始めることはできません。予約キー:
|
| tags | ログタグ:
|
辞書形式。キーと値は両方とも文字列です。コンソールでは、タグは __tag__: というプレフィックス付きで表示されます。 |
トピック
Logstore 内のログは、トピックによって分類できます。ログを書き込むときにトピックを指定し、クエリ時にトピックでフィルタリングします。たとえば、ユーザー ID をトピックとして使用すると、各ユーザーは自身のログのみを表示できます。分類が不要な場合は、すべてのログに同じトピックを使用します。
次の例は、生の Nginx アクセスログを SLS データモデルにマッピングする方法を示しています。Nginx サーバーの IP アドレスは 10.10.10.1 です:
10.1.1.1 - - [01/Mar/2012:16:12:07 +0800] "GET /Send?AccessKeyId=82251054** HTTP/1.1" 200 5 "-" "Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2"
| フィールド | 内容 | 説明 |
| topic | なし | デフォルト値 (空文字列) が使用されます。 |
| time | 1330589527 | 生ログのタイムスタンプから変換された、正確なログ生成時刻 (秒単位)。 |
| source | 10.10.10.1 | サーバーの IP アドレスがログソースとして使用されます。 |
| content | キーバリューペア | ログの具体的な内容。 |
| キー | 値 |
| ip | 10.1.1.1 |
| method | GET |
| status | 200 |
| length | 5 |
| ref_url | - |
| browser | Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2 |
ログ (複数形)
ログの集まりです。
LogGroup
ログのグループです。
LogGroupList
結果を返すための LogGroup の集まりです。
エンコーディング方式
Content-Type ヘッダーで方式を指定します。| 意味 | 説明 | Content-Type |
| Protobuf | Protobuf でエンコードされたデータモデル。 | application/x-protobuf |
Protobuf 形式の詳細については、「データエンコーディング方式」をご参照ください。
Protobuf では一意のキーバリューペアは必須ではありませんが、キーが重複すると未定義の動作を引き起こす可能性があります。
フィールドは、Protobuf のフィールド番号の順序でエンコードしてください。順序が正しくないフィールドは、解析に失敗する可能性があります。