ログストリーミング: New Relic Logs
- English
- 日本語
Fastly のリアルタイムログストリーミング機能によって、New Relic Logs にログファイルを送信することができます。
Fastly ではサードパーティのサービスに関する設定等のサポートは行っておりません。詳細は Fastly's Terms of Service をご参照ください。
前提条件
Fastly サービスのログエンドポイントとして New Relic Logs を追加する前に、以下が必要です。
- New Relic アカウント を登録します。
- ライセンスキーを取得します。
ログエンドポイントとして New Relic Logs を追加する
以下の手順で New Relic Logs をログエンドポイントとして追加します。
- Deliver サービス
- Compute サービス
リモートログストリーミングの設定に関するガイドの情報をご確認ください。
- New Relic Logs エリアで、Create endpoint をクリックします。
- 以下の要領で Create a New Relic Logs endpoint ページの各フィールドに入力します。
Name フィールドに、エンドポイントの分かりやすい名前を入力します。
Placement エリアで、生成された VCL のどこにログコールを配置するかを選択します。有効な値は、形式のバージョンのデフォルトとなしです。詳細については、ログの配置の変更に関するガイドをご覧ください。
Log format フィールドに、オプションでログフォーマットに使用するための Apache 形式の文字列や VCL 変数を入力します。詳細はフォーマットの例のセクションを参照してください。
- License key / Insert key フィールドに、New Relic のライセンスキーまたは Insert API キーを入力します。
- Region コントロールから、ログを配信するリージョンを選択します。
Create をクリックして、新しいログ記録エンドポイントを作成します。
Activate メニューから、Activate on Production を選択して、設定の変更をデプロイします。
フォーマットの例
New Relic Logs に送られるデータは、JSON オブジェクトとして直列化する必要があります。New Relic Logs にデータを送信する際に推奨される書式指定文字列の例を以下に示します。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253{ "timestamp": %{time.start.msec}V, "cache_status":"%{regsub(fastly_info.state, "^(HIT-(SYNTH)|(HITPASS|HIT|MISS|PASS|ERROR|PIPE)).*", "\\2\\3") }V", "client_ip":"%h", "client_device_type":"%{client.platform.hwtype}V", "client_os_name":"%{client.os.name}V", "client_os_version":"%{client.os.version}V", "client_browser_name":"%{client.browser.name}V", "client_browser_version":"%{client.browser.version}V", "client_as_name":"%{client.as.name}V", "client_as_number":"%{client.as.number}V", "client_connection_speed": "%{client.geo.conn_speed}V", "client_port": %{client.port}V, "client_rate_bps":%{client.socket.tcpi_delivery_rate}V, "client_recv_bytes":%{client.socket.tcpi_bytes_received}V, "client_requests_count":%{client.requests}V, "client_resp_body_size_write": %{resp.body_bytes_written}V, "client_resp_header_size_write": %{resp.header_bytes_written}V, "client_resp_ttfb": %{time.to_first_byte}V, "client_rtt_us":%{client.socket.tcpi_rtt}V, "content_type":"%{Content-Type}o", "domain": "%{Fastly-Orig-Host}i", "fastly_datacenter": "%{server.datacenter}V", "fastly_host": "%{server.hostname}V", "fastly_is_edge": %{if(fastly.ff.visits_this_service == 0, "true", "false")}V, "fastly_region": "%{server.region}V", "fastly_server": "%{json.escape(server.identity)}V", "host": "%v", "origin_host":"%v", "origin_name":"%{req.backend.name}V", "request":"%{req.request}V", "request_method":"%m", "request_accept_charset":"%{json.escape(req.http.Accept-Charset)}V", "request_accept_language":"%{json.escape(req.http.Accept-Language)}V", "request_referer":"%{json.escape(req.http.Referer)}V", "request_user_agent":"%{json.escape(req.http.User-Agent)}V", "resp_status":"%s", "response": "%{resp.response}V", "service_id":"%{req.service_id}V", "service_version": "%{req.vcl.version}V", "status":"%s", "time_start":"%{begin:%Y-%m-%dT%H:%M:%SZ}t", "time_end":"%{end:%Y-%m-%dT%H:%M:%SZ}t", "time_elapsed":%D, "tls_cipher":"%{json.escape(tls.client.cipher)}V", "tls_version":"%{json.escape(tls.client.protocol)}V", "url":"%{json.escape(req.url)}V", "user_agent":"%{json.escape(req.http.User-Agent)}V", "user_city":"%{client.geo.city.utf8}V", "user_country_code":"%{client.geo.country_code}V", "user_continent_code":"%{client.geo.continent_code}V", "user_region":"%{client.geo.region}V"}タイムスタンプをログに記録する
Fastly のログにタイムスタンプフィールドがある場合は、Epoch が New Relic のタイムスタンプをオーバーライドするため、ミリ秒で指定する必要があります。含まれていない場合は、Fastly によってタイムスタンプが生成されます。
New Relic Instant Observability の事前構築済み Fastly ダッシュボードを使う
New Relic I/O は、何百ものツールとテクノロジー向けにコミュニティが貢献したクイックスタートのオープンソースエコシステムです。New Relic と協力して、重要と考えられる特定の重要な指標をハイライトする事前構築済みダッシュボードを開発しました。ダッシュボードの設定が簡単で、カスタマイズしたい場合に備えてコードはオープンソースになっています。
推奨される拡張ログ形式を使用するようにサービスを設定する
事前構築済みのダッシュボードには、特定のフィールドが存在することが予想されるため、推奨されるログ形式の使用をお勧めします。ただし、自分自身の目的でフィールドを追加したり、作成した既存のダッシュボードとの後方互換性を維持するのを止める必要はありません。一部のフィールドを送信しなかった場合、ダッシュボードは壊れないものの、特定のチャートにはデータが含まれません。
Fastly ダッシュボードをインストールする
Fastly ダッシュボードクイックスタートをインストールする手順に従ってください。
New Relic マーケットプレイスから Fastly ダッシュボードクイックスタートを選択します。

Install quickstart をクリックします。

Begin installation をクリックします。

Done または Skip this step をクリックします。

See your data をクリックします。

Fastly ダッシュボードが表示されます。

Compute でリモートログストリーミングを設定する方法に関するガイドの情報を確認してください。また、開発者向けドキュメントには、サポートされている言語で書かれた Compute コードを含む、ログ機能に関する情報の詳細が記載されています。
- New Relic Logs エリアで、Create endpoint をクリックします。
- 以下の要領で Create a New Relic Logs endpoint ページの各フィールドに入力します。
名前フィールドに、Computeコードで指定したエンドポイント名を入力してください。例えば、Rustのコード例では、名前は
my_endpoint_nameとなっています。- License key / Insert key フィールドに、New Relic のライセンスキーまたは Insert API キーを入力します。
Create をクリックして、新しいログ記録エンドポイントを作成します。
Activate メニューから、Activate on Production を選択して、設定の変更をデプロイします。
New Relic Instant Observability の事前構築済み Fastly ダッシュボードを使う
New Relic I/Oは、コミュニティが貢献したさまざまなモニタリングクイックスタートを備えたオープンソースのエコシステムです。New Relic と協力し、重要なメトリクスをハイライトする事前構築済みダッシュボードを開発しました。コードはオープンソースであるため、カスタマイズすることができます。

ログメッセージの設定
New Relic Logs に送られるデータは、JSON オブジェクトとして直列化する必要があります。JSON オブジェクトには、次のフィールドが含まれます:
timestamp: リクエストが発生した場合。New Relic タイムスタンプをオーバーライドするには、Epoch 以降、タイムスタンプをミリ秒単位で指定する必要があります。タイムスタンプが含まれていない場合は、Fastly によってタイムスタンプが生成されます。client_ip: HTTP リクエストを行ったクライアントの IP アドレス。url: リクエストの URL。resp_status: リクエストの HTTP ステータスコード。client_resp_header_size_write: レスポンスヘッダーのサイズ。client_resp_body_size_write: レスポンスボディのサイズ。fastly_datacenter: 現在のインスタンスが実行されている FASTLY_POP の3文字の識別コード。time_elapsed: リクエストが開始された時間。service_id: 現在のリクエストを処理する Fastly サービスの識別子。
よりわかりやすい JSON ログオブジェクトの推奨例を以下に示します。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253{ "timestamp": 1661976797605, "cache_status": "ERROR", "client_ip": "127.0.0.1", "client_device_type": "Chromebook", "client_os_name": "Ubuntu", "client_os_version": "17.10 (Artful Aardvark)", "client_browser_name": "Firefox", "client_browser_version": "113.0", "client_as_name": "zayo bandwidth", "client_as_number": "1234", "client_connection_speed": "broadband", "client_port": 63850, "client_rate_bps": 0, "client_recv_bytes": 74, "client_requests_count": 1, "client_resp_body_size_write": 56789, "client_resp_header_size_write": 1234, "client_resp_ttfb": 1.342, "client_rtt_us": 6818, "content_type": "text/html; charset=utf-8", "domain": "example.com", "fastly_datacenter": "HNL", "fastly_host": "cache-hnl00001", "fastly_is_edge": true, "fastly_region": "US-Pacific", "fastly_server": "cache-hnl00001-HNL", "host": "example.com", "origin_host": "example.com", "origin_name": "n/a", "request": "GET", "request_method": "GET", "request_accept_charset": "utf-8", "request_accept_language": "en-US", "request_referer": "", "request_user_agent": "curl/7.68.0", "resp_status": "503", "response": "Backend unavailable, connection timeout", "service_id": "000q0j0WE0f00z0KEVj5I0", "service_version": "29", "status": "503", "time_start": "2023-05-18T23:21:52Z", "time_end": "2023-05-18T23:21:53Z", "time_elapsed": 237, "tls_cipher": "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", "tls_version": "TLS 1.2", "url": "/", "user_agent": "curl/7.68.0", "user_city": "san francisco", "user_country_code": "US", "user_continent_code": "NA", "user_region": "CA"}JSON オブジェクトに予想されるフィールドがすべて含まれていない場合、事前構築されたダッシュボードは壊れませんが、特定のチャートにはデータが含まれません。
期待されるフィールドに加えて、自身の目的に応じて JSON オブジェクトに選択したフィールドを含めたり、構築した既存のダッシュボードとの後方互換性を維持したりすることもできます。
Fastly ダッシュボードをインストールする
Fastly ダッシュボードクイックスタートをインストールする手順に従ってください。
- New Relic マーケットプレイス から Fastly ダッシュボードクイックスタートを選択するか。
- Install quickstart をクリックします。
- Begin installation をクリックします。
- Done または Skip this step をクリックします。
- See your data をクリックします。 Fastly ダッシュボードが表示されます。