ログデータがすでにHerokuのビルトイン Logplex ルーターによって監視されている場合は、私たちの統合を利用して、New Relicでログデータを転送し、エンリッチすることができます。この統合は、 Heroku Syslog drains を使用しています。
HerokuのログをNew Relicに転送することで、ログ管理機能が強化され、ログデータの収集、処理、探索、クエリ、アラートなどが可能になります。
Herokusyslogドレインを作成する
ログ管理機能を有効にするには、まずHeroku Syslog drainを作成します。
New Relic のユーザーアカウントに、 Admin ロール が割り当てられていることを確認してください。
Heroku CLI をダウンロードしてインストールします。
Heroku CLIを使用してSyslogドレインを作成し、ログをストリーミングするアプリケーションにアタッチして、
YOUR_APP_NAME
をHerokuアプリケーションの名前に置き換えます。bash$$ heroku drains:add syslog+tls://newrelic.syslog.nr-data.net:6515 -a YOUR_APP_NAMEヨーロッパにお住まいの場合は、代わりに次のコマンドを実行してください。
bash$$ heroku drains:add syslog+tls://newrelic.syslog.eu.nr-data.net:6515 -a YOUR_APP_NAME次のコマンドを実行し、HerokuSyslogドレイントークンを
token
属性からコピーします。bash$$ heroku drains -a YOUR_APP_NAME --json{"addon": null,"created_at": "2018-12-04T00:59:46Z","id": "906262a4-e151-45d2-b35a-a2dc0ea9e688","token": "d.f14da5dc-106b-468d-b1bd-bed0ed9fa1e7","updated_at": "2018-12-04T00:59:47Z","url": "syslog+tls://newrelic.syslog.nr-data.net:6515}
Herokusyslogドレインを登録する
次に、新しく作成したHeroku Syslog drainをNew Relicに登録する必要があります。
New RelicのログUIにログインし、[データソースを追加]をクリックします。
Heroku Log ingestion の下のタイルをクリックします。
HerokuアプリケーションのログをストリーミングするNew Relicアカウントを選択し、 Continue をクリックします。
Heroku drain token の欄に、新しく作成したHeroku drain tokenを貼り付けます。
Add Heroku drain log をクリックして登録を完了します。
重要
Herokuは現在、Logplexから送信されるログのフォーマットのカスタマイズをサポートしていません。詳しくは、 Heroku's log format documentation をご覧ください。
Herokusyslogドレイントークンマッピングを削除します
これらの手順を実行して、NewRelicUIを介してHerokusyslogドレイントークンマッピングを削除します。
- NewRelicユーザーアカウントに管理者ロールが割り当てられていることを確認してください。
- NewRelicMarketplaceに移動します。
- 「Heroku」を検索します。
- [ログ]で、 Herokuタイルをクリックします。
- 複数のアカウントがある場合は、削除するドレイントークンマッピングを含むアカウントを選択して、[続行]をクリックします。それ以外の場合は、手順6に進みます。
- 削除するドレイントークンマッピングを見つけて、その横にある縦の3つのドットのアイコンをクリックします。次に、[ Herokuドレイントークンの削除]をクリックします。
- Herokuドレイントークンマッピングが削除されます。
これらの手順を実行して、RESTAPIを介してHerokusyslogドレイントークンマッピングを削除します。
- キータイプがUSERのAPIキーを検索または生成します。
- 以下のコマンドを実行して、New RelicアカウントからHerokuドレイントークンマッピングのリストを取得し、 YOUR_NR_LICENSE_KEYとYOUR_NR_ACCOUNT_IDの値を更新してください。
$curl -H 'api-key: <var>YOUR_NR_LICENSE_KEY</var>' https://log-syslog-configuration-api.service.newrelic.com/heroku-account-mappings?accountId=<var>YOUR_NR_ACCOUNT_ID</var>
フォーマットされた結果は次のようになります。
[
{
"herokuMappingId": 1549,
"drainToken": "YOUR_DRAIN_TOKEN",
"nrApiInsertKey": "YOUR_DRAIN_TOKEN_NR_API_KEY",
"createdAt": "2022-05-13T07:47:23",
"createdBy": "YOUR_EMAIL_ADDRESS"
}
]
削除するドレイントークンごとにherokuMappingId
が必要です。
ドレイントークンを削除するには、以下のコマンドを実行します。 YOUR_NR_LICENSE_KEY 、 YOUR_NR_ACCOUNT_ID 、および最後の手順で取得した
herokuMappingId
の値を必ず更新してください。bash$curl -XDELETE -H 'api-key: <varYOUR_NR_LICENSE_KEY</var>' https://log-syslog-configuration-api.service.newrelic.com/heroku-account-mappings/<herokuMappingId>?accountId=<var>YOUR_NR_ACCOUNT_ID</var>APIはHTTP204応答を返し、ドレイントークンマッピングが削除されます。
ログデータの閲覧
すべての設定が正しく行われ、データが収集されていれば、この2つの場所にデータログが表示されるはずです。
- NewRelicのログUI
- NRQL クエリを実行するための New Relic ツール NRQL クエリを実行するための New Relic ツール 。例えば、以下のようなクエリを実行することができます。
SELECT * FROM Log
当社のログ管理機能を有効にしてもデータが表示されない場合は、当社の 標準的なログのトラブルシューティング手順 に従ってください。
次のステップ
Logs UIを使用して、プラットフォーム全体のログデータを調べます。
- logs in context の機能を使ってログを転送することで、アプリケーションとプラットフォームの両方のパフォーマンスデータをより深く把握することができます。
- アラートの設定.
- データのクエリ と ダッシュボードの作成.
ログ転送を無効にする
ログ転送機能を無効にするには、 Heroku Syslog documentation に記載されている標準的な手順に従ってください。New Relicでは他に何もする必要はありません。