• ログイン今すぐ開始

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

Log APIの紹介

ログ転送ソリューション がニーズに合わない場合は、Log API を使用して HTTP エンドポイント経由で New Relic に直接ログデータを送信することができます。

Log API を試してみませんか? New Relic のアカウントを作成してください 無料でご利用いただけます。クレジットカードは必要ありません。

HTTPエンドポイント

お使いのNew Relicアカウントに該当するエンドポイントを使用してください。

米国(US)のエンドポイント。

https://log-api.newrelic.com/log/v1

European Union (EU)のエンドポイントです。

https://log-api.eu.newrelic.com/log/v1

HTTP設定

Log APIを使ってログデータをNew Relicアカウントに送信する。

  1. Get your New Relic license key.
  2. JSON ペイロードの 制限と制限文字 を確認してください。
  3. 必須の headersbody フィールドを使用して、JSON メッセージを生成します。
  4. Api-KeyまたはLicense-Keyヘッダーまたはクエリパラメータに含まれていることを確認してください。ログのJSONの例を参照してください。
  5. POSTリクエストでJSONメッセージをNewRelicアカウントの適切なHTTPエンドポイントに送信します。
  • 私たち: https://log-api.newrelic.com/log/v1
  • EU: https://log-api.eu.newrelic.com/log/v1
  1. いくつかのトラフィックを生成し、数分待ってから、 あなたのアカウント のデータをチェックしてください。

当社のログ管理機能を有効にしてもデータが表示されない場合は、当社の トラブルシューティング手順 に従ってください。

HTTPヘッダー

HTTPヘッダーを作成する際には、以下のガイドラインを参考にしてください。

ヘッダー

対応値

Content-Type

必須

  • application/json
  • json
  • application/gzip
  • gzip

Gzip圧縮されたJSONフォーマットが受け入れられます。圧縮されたJSONを送信する場合は、 Content-Type: application/json }ヘッダーとContent-Encoding: gzipヘッダーを含めてください。

認証

ライセンスキー は、Log API へのリクエストを認証するためのもので、提出したログメッセージが書き込まれる New Relic アカウントを決定します。ライセンスキーは、HTTP ヘッダーまたはクエリ文字列パラメーターとして渡す必要があります。

オプション1:HTTPヘッダーを使った認証

以下のようにカスタムHTTPヘッダーを追加して、ライセンスキーを渡します。

ヘッダー

対応値

Api-Key

A New Relic ライセンスキー 。また、 クエリパラメータで送信することもできます

オプション 2: クエリ文字列パラメータを使用した認証 ("ヘッダレス" 認証 )

ライセンスキーは、URLのクエリストリングパラメータとして渡すこともできます。これは、カスタムHTTPリクエストヘッダーを許可していないクラウドベースのソースからログを送信する際に便利です。

例: https://LOG_API_ENDPOINT/log/v1?Api-Key=YOUR_API_KEY_HERE

問い合わせパラメータ

価値

Api-Key

あなたの ライセンスキー 。また、 HTTPヘッダーで送信することもできます

JSONボディ

JSONメッセージは、簡略化された属性セットまたは詳細な属性セットのいずれかを使用して送信できます。

対応する属性タイプ

属性は、以下のいずれのタイプでもよい。

JSONリクエストを入力する

NewRelicデータベースに保存されているタイプ

boolean

boolean

integer

integer

long

long

float

float

double

double

string

string (文字列値が文字列化されたJSONである場合、その値は解析され、そのフィールドは変数として抽出されることに注意してください。JSONメッセージ属性の解析を参照してください)

配列

(未対応)

上限値および文字の制限

注意

顧客向けのアプリケーションのコード内から当社のAPIを呼び出すことは避けてください。これは、パフォーマンスの問題を引き起こしたり、応答時間が遅い場合にアプリケーションをブロックする可能性があります。この方法で行う必要がある場合は、パフォーマンスの問題を回避するために、当社のAPIを非同期に呼び出してください。

Log APIに送信するログの制限。

  • ペイロード合計サイズ: POSTあたり最大1MB(10^6バイト)。圧縮の使用を強く推奨します。
  • ペイロードは UTF-8 としてエンコードする必要があります。
  • イベントごとの属性の数。最大255個
  • 属性名の長さ:255文字
  • 属性値の長さ:最初の4,094文字は、 messageなどの同じ名前のLogイベントフィールドとしてNRDBに格納されます。文字列値が4,094文字を超える場合、長い文字列をblobとして格納します。

一部の特定の属性には、追加の制限があります。

  • accountId:これは予約した属性名です。この名前が含まれている場合は、取り込み中に破棄されます。
  • entity.guidentity.name、およびentity.type:これらの属性は、エンティティを識別するために内部で使用されます。メトリックデータポイントの属性セクションでこれらのキーとともに送信される値によって、UIのエンティティが見つからない、またはテレメトリが予期されるエンティティと関連していないなどの未定義の動作が発生する場合があります。詳細については、エンティティの合成を参照してください。
  • eventType:これは予約した属性名です。この名前が含まれている場合は、取り込み中に破棄されます。
  • timestamp:Unixエポックのタイムスタンプである必要があります。タイムスタンプは、秒数かミリ秒数で定義できます。

重要

タイムスタンプが48時間を超えるペイロードは削除される場合があります。

Log APIに送信されるログのレート制限。

  • Log APIに送信されるHTTPリクエストの最大レート:300,000リクエスト/分
  • Log APIに送信される非圧縮Log JSONバイトの最大レート:10GB/分

レートリミット違反

レートリミットを超えると、Log APIの動作に影響が出ます。このような場合は、以下の手順に従ってください。

ログのペイロードフォーマット

有効なJSONペイロードであれば何でも受け付けます。ペイロードは、 UTF-8 としてエンコードされている必要があります。

JSONメッセージ属性

JSONメッセージの属性解析

ログ管理機能は、すべてのmessage属性をJSONとして解析します。解析されたメッセージの結果のJSON属性がイベントに追加されます。 message属性がJSONでない場合は、そのまま残されます。

message属性の例を次に示します。

{
"timestamp": 1562767499238,
"message": "{\"service-name\": \"login-service\", \"user\": {\"id\": 123, \"name\": \"alice\"}}"
}

として扱われます。

{
"timestamp": 1562767499238,
"service-name": "login-service",
"user": {
"id": 123,
"name": "alice"
}
}

ログJSONの例

属性は、文字列や数値などのスカラ型JSONです。また、複合(または ネストした )オブジェクトにすることもできます。複合属性は、関連付けられた属性がフラット化された名前で保存されます。

たとえば、ログエントリの属性に含まれる複合user属性は次のとおりです。

"attributes": {
"action": "login",
"user": {
"id": 123,
"name": "alice"
}
}

これにより、以下の属性がログイベントとともに保存されます。

属性

価値

"action"

"login"

"user.id"

123

"user.name"

"alice"

ログのPOSTメッセージの例

ログPOSTメッセージの例:

bash
$
POST /log/v1 HTTP/1.1
$
Host: log-api.newrelic.com
$
Content-Type: application/json
$
Api-Key: <YOUR_LICENSE_KEY>
$
Accept: */*
$
Content-Length: 319
$
[{
$
"common": {
$
"attributes": {
$
"logtype": "accesslogs",
$
"service": "login-service",
$
"hostname": "login.example.com"
$
}
$
},
$
"logs": [{
$
"timestamp": <TIMESTAMP_IN_UNIX_EPOCH><,
$
"message": "User 'xyz' logged in"
$
},{
$
"timestamp": <TIMESTAMP_IN_UNIX_EPOCH,
$
"message": "User 'xyz' logged out",
$
"attributes": {
$
"auditId": 123
$
}
$
}]
$
}]

このPOSTメッセージにより、次のログメッセージがNewRelicに保存されます。

属性

価値

"logtype"

"accesslogs"

"service"

"login-service"

"hostname"

"login.example.com"

ストアドログのブロック属性の例を示します。

属性

価値

"timestamp"

1550086450124

"message"

"User 'xyz' logged out"

"auditId"

123

JSON POSTリクエストの例

ここでは、JSONのPOSTリクエストの例を紹介します。

bash
$
POST /log/v1 HTTP/1.1
$
Host: log-api.newrelic.com
$
Content-Type: application/json
$
Api-Key: <YOUR_LICENSE_KEY>
$
Accept: */*
$
Content-Length: 133
$
{
$
"timestamp": <TIMESTAMP_IN_UNIX_EPOCH>,
$
"message": "User 'xyz' logged in",
$
"logtype": "accesslogs",
$
"service": "login-service",
$
"hostname": "login.example.com"
$
}

次は何ですか?

プラットフォーム全体のログデータを調べます

Copyright © 2022 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.