• /
  • ログイン
  • 無料アカウント

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

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

問題を作成する

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-Keyheaders または query parameters に含まれていることを確認してください。 ログのJSONの例を参照.
  5. JSON メッセージを POST リクエストで、New Relic アカウントの適切な HTTP エンドポイントに送信します。
  • 米国: https://log-api.newrelic.com/log/v1
  • EU: https://log-api.eu.newrelic.com/log/v1
  1. いくつかのトラフィックを生成し、数分待ってから、 あなたのアカウント のデータをチェックしてください。

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

HTTPヘッダー

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

ヘッダー

対応値

コンテンツタイプ

必須

  • アプリケーション/json
  • json
  • アプリケーション/gzip
  • gzip

Gzip 形式の JSON も受け付けます。圧縮されたJSONを送信する場合は、 Content-Type: application/json and Content-Encoding: gzip headersを含めてください。

認証

ライセンスキー は、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リクエストを入力する

New Relic のデータベースに保存されているタイプ

boolean

boolean

整数

整数

ロング

ロング

フロート

フロート

ダブル

ダブル

文字列

string (なお、文字列値が文字列化されたJSONの場合は、パースされ、そのフィールドが変数として抽出されます。 JSONメッセージの属性パース を参照ください )

配列

(未対応)

上限値および文字の制限

注意

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

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

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

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

以下は、 メッセージ 属性の例です。

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

として扱われます。

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

ログJSONの例

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

例えば、ログエントリの属性に複合 ユーザー 属性がある場合を紹介します。

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

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

属性

"アクション"

"ログイン"

"user.id"

123

"user.name"

"alice"

ログのPOSTメッセージの例

ログ POST メッセージの例です。

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 のメッセージでは、以下のようなログメッセージが New Relic に保存されます。

属性

"ログタイプ"

"accesslogs"

"サービス"

"login-service"

"ホスト名"

"login.example.com"

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

属性

"timestamp"

1550086450124

"メッセージ"

"ユーザー「xyz」がログアウトしました。"

"auditId"

123

JSON POSTリクエストの例

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

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"
   }

次のステップ

New Relic One UI を使って、プラットフォーム全体のロギングデータを調べることができます。

問題を作成する
Copyright © 2022 New Relic Inc.