ログ形式の変更
最終更新日 2021-10-25
Fastlyのリアルタイムログストリーミング機能では、選択したログエンドポイントで配信されるログメッセージの形式を変更できます。以下の形式の中から1つ選択できます。
- Blank はデフォルトです。プリフィックスはありません。ログメッセージのみです。このフォーマットは、JSON や CSV ファイルに書き込む場合に便利です。
- Classic は、RFC 3164 で定義される syslog の標準プリフィックスフォーマットです。
- Loggly は RFC 5424 をベースに構造化された syslog のプリフィックスフォーマットです。
- Logplex は Heroku スタイルのプリフィックス付き syslog フォーマットです。
エンドポイントを変更し、別の形式を使用する
多くのロギングエンドポイントは、コントロールパネルまたは API のどちらかを使用し、デフォルト以外のメッセージ形式を使用するように変更することができます。
コントロールパネルを使用する
コントロールパネルを使用し、ログエンドポイントの変更をするには、以下の手順に従ってください。
- Fastly コントロールパネルにログインします。
- Home ページから、該当するサービスを選択します。検索ボックスを使用して ID、名前、またはドメインで検索することができます。
- Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。ドメインページが表示されます。
- Logging リンクをクリックします。Logging endpoints ページが表示されます。
- 編集したいログエンドポイントの名前をクリックします。Edit this endpoint ページが表示されます。
- ページの下部にある Advanced options をクリックします。Advanced options が表示されます。
- Select a log line format セクションで、ログエンドポイントのログ形式を選択します。
- Update ボタンをクリックします。
- Activate ボタンをクリックして設定変更をデプロイします。
API を利用する
API を利用してログエンドポイントを変更するには、次のコマンドを実行します。
1
$ curl -X PUT -H 'Fastly-Key: FASTLY_API_TOKEN' -H 'Content-Type: application/json' 'https://api.fastly.com/service/<your Fastly service ID>/version/<version number>/logging/<logging endpoint>/<log name>' --data-binary '{"message_type":"<type>"}'
message_type
フィールドはオブジェクトごとのフィールドであることに留意してください。1つのログオブジェクトで変更しても、他のオブジェクトには反映されません。
例えば、blank
メッセージタイプを使用し、GCS Test
という名前の Google Cloud Storage のロギングエンドポイントを変更する場合、curl コマンドは以下のようになります。
1
$ curl -X PUT -H 'Fastly-Key: FASTLY_API_TOKEN' -H 'Content-Type: application/json' 'https://api.fastly.com/service/SU1Z0isxPaozGVKXdv0eY/version/1/logging/gcs/GCS%20Test' --data-binary '{"message_type":"blank"}'
log name
には、URL エンコードが必要なスペースが含まれています。(%20
のスペース)。
例
Classic 形式を選択した場合、ログメッセージは標準的な syslog 形式で送信されます。この形式のプリフィックスは以下のようになります (RFC 3164で定義されています)。
1
<134>2016-07-04T22:37:26Z cache-sjc3128 LogTest[62959]: <your log message>
プリフィックスの先頭にはメッセージ優先度 (常に <134>
、つまり Facility=Local0, Severity=Informational
) が来ます。続いてログが送信された日時 (2016-07-04T22:37:26Z
)、送信元のキャッシュノード (この場合は cache-sjc3128
)、ログの名前 (LogTest
)、そして送信するプロセスの ID (62959
) が表示されています。