ログは、システムで発生する変更の抽象概念です。 時系列に並べられたレコードのシーケンスであり、特定のオブジェクトに対する操作と結果に関する情報が含まれています。 ログファイル、イベント、バイナリログ、メトリックは、ログキャリアの種類です。 ログファイルは 1 つ以上のログで構成されており、そのログには単一のシステムイベントが記述されています。 ログは、Log Service で処理される最小データ単位です。
Log Service は半構造化データモデルを使用してログを定義します。 半構造化データモデルには、トピック、時間、コンテンツ、ソース、タグのデータフィールドが含まれます。
下表に示されるように、Log Service には異なるデータ フィールドの形式要件があります。
データフィールド | 説明 | 形式 |
---|---|---|
Topic | 複数のログに使用するユーザー定義のフィールド。 たとえば、アクセスログにサイト別のマークを付けることができます。 | null 文字列を含む 128 バイトまでの任意の文字列 (デフォルト:null 文字列) |
Time | これはログ内の予約フィールドであり、ログが生成された時刻を示すためのフィールドです。 ほとんどの場合、ログ内の時間に基づいて直接生成されます。 | UNIX タイムスタンプ形式の整数 (単位:秒)。 このフィールドは、1970-1-1 00:00:00 UTC からの秒数を示します。 |
Content | ログの特定のコンテンツを記録するためのフィールドです。 コンテンツは 1 つ以上のコンテンツ項目で構成され、各コンテンツ項目はキー値ペアです。 | キーは、最大 128 バイトの長さの UTF-8 でエンコードされた文字列です。 名前には、数字、アンダースコア、ハイフンを使用できます。 数字で始めることはできません。また、次のキーワードはすべて使用できません。
|
Source | このフィールドは、ログのソースを示します。 (たとえば、ログを生成するマシンの IP アドレス) | 最大 128 バイトの文字列の長さ。 このフィールドはデフォルトで null です。 |
Tags | ログタグには次のものがあります。 | 辞書形式。 キーと値はどちらも文字列です。 コンソール内のログを照会すると、タグが __tag__: プレフィックスを表示します。
|
ログは、実際のシナリオではさまざまな形式で使用されます。 次の例では、元の NGINX アクセスログを Log Service のログデータ モデルにマップする方法を示します。
たとえば、NGINX サーバーの IP アドレスは、10.249.201.117
です。 このサーバーの元のログは以下の通りです。
10.1.168.193 - - [01/Mar/2012:16:12:07 +0800] "GET /Send? AccessKeyId=8225105404 HTTP/1.1" 200 5 "-" "Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2"
次の例は、元のログを Log Service のログデータモデルにマップする方法を示しています。
データフィールド | コンテンツ | 説明 |
---|---|---|
Topic | "" | デフォルトの null 文字列が使用されます。 |
Time | 1330589527 | ログが生成時のタイムスタンプ このパラメーターを 1970-1-1 00:00:00 UTC からの秒数に設定します。 この時刻は元のログのタイムスタンプから変換されます。 |
Content | Key-value pair | ログの特定のコンテンツ。 |
Source | "10.249.201.117" | サーバーの IP アドレスをログソースとして使用します。 |
Tags | なし | 自分または Log Service がタグを追加します。 |
次の表に示すように、ログの元のコンテンツを抽出し、抽出したコンテンツをキーと値のペアに結合する方法を決定できます。
キー | 値 |
---|---|
ip | "10.1.168.193" |
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" |