Google Cloud PlatformのPub/SubトピックからNew Relicにログを転送する方法として、2種類の方法をサポートしています。
オプションの選択
以下は、お客様のビジネスニーズに最適なオプションを決定する際の参考になるでしょう。
GCPログフォワーディングオプション | 考察 |
---|
ヘッダーレスAPI | - 送信するログレコードごとに1回のAPIコールを実行するため、ログ量が少ない場合に最適です。
- GCPサブスクリプションに追加費用は発生しません。
- ログの量が増えてくると、このソリューションではNew Relicアカウントのクォータ制限に抵触する可能性があります。
|
データフロージョブ | - ログレコードをバッチでグループ化してからNew Relicに送信するため、大容量のログに最適です。
- APIコールの数を減らし、クォータの使用量を減らすことができます。
- お客様の敷地内でDataflowジョブを実行するため、GCPサブスクリプションに追加費用が発生する場合があります。
|
GCPのログをヘッダーレスAPIを使ってNew Relicに送信するためのものです。
まず、GCP Pub/Sub トピックの取り込み URL を作成します。
Integrations & Agents UIに移動し、 Loggingをクリックして、 Google Cloud Platformをクリックします。
ログを転送する New Relic アカウントを選択し、 Continueをクリックします。
オプションです。次のステップで生成されるインジェストURLに送信されるすべてのログイベントに含まれるメタデータ(属性と値のペア)を設定します。
Generate URLをクリックします。
新しく生成されたingest URLをコピーして安全な場所に保管してください。
新しいインジェストURLを使って、New Relicにログを送信するPub/Subトピックを設定します。
次に、インジェストURLが使用するGCP Pub/Subトピックを作成します。
Navigate to GCP Pub/Sub Console.
Create Topic
をクリックします。
意味のある
Topic ID
を入力し、必要に応じて他のオプションを構成します。
Create Topic
をクリックします。
Pub/Subトピックを作成したら、そのトピックのサブスクリプションを作成します。
GCP Pub/Sub Consoleに戻る.
以前作成した Pub/Sub トピック をクリックします。
下にスクロールしてSubscriptionsタブを選択し、 Create SubscriptionをクリックしてCreate a simple subscriptionを選択します。
Subscription ID入力してください。 次に、 Delivery Typeの下でPushを選択します。
Endpoint URLフィールドに、以前に生成した取り込み URLを貼り付けます。
必要に応じて残りの設定を構成し、 Createをクリックします。
セットアップを終えるために、GCPのPub/Subトピックに、ログをNew Relicに転送するためのルーティングシンクを作成します。
Navigate to GCP Logs Router Console.
Create Sink
をクリックします。
Sink name
と
Sink description
を入力し、
Next
をクリックします。
Select sink service
の下で
Cloud Pub/Sub topic
を選択し、以前に作成したPub/Sub トピックを選択します。
必要に応じて残りのフィルターを設定し、
Create sink
をクリックしてセットアップを完了します。
Dataflowジョブの使用
Dataflow ジョブを使用して GCP ログを New Relic に送信するには、弊社の Dataflow テンプレートを使用します。始める前に、ローカルコンピュータに以下のツールがあることを確認してください。
以下のコマンドを実行し、画面の指示に従ってGCPにログインし、クラウドプロジェクトを選択します。
ウィザードを使用して、使用するクラウドプロジェクトを選択し、オプションで、 gcloud
またはgsutil
を使用して作成するリソースのデフォルトの計算領域とゾーンを選択できます。以下のコマンドでは、デフォルトのプロジェクト、場所、または地域を想定していません。
以下のコマンドでDataflowTemplatesのGitHubリポジトリをクローンします。
$git clone https://github.com/newrelic-forks/DataflowTemplates.git
先ほど作成したディレクトリを入力します。
その後、次のセクションに進み、追加のコマンドを実行します。
Dataflowフォワーダーをコンパイルして実行するために必要な構成を設定するには、 DataflowTemplates
ディレクトリで次のコマンドを実行します。必要な値は次のとおりです。
PROJECT_ID
BUCKET_NAME
NR_LICENSE_KEY
INPUT_SUBSCRIPTION_NAME
その他のデフォルト値はそのままで構いません。
PROJECT_ID=<your_project_id>
BUCKET_NAME=<a_nonexisting_gcs_bucket_name>
NR_LICENSE_KEY=<your_newrelic_license_key>
INPUT_SUBSCRIPTION_NAME=<your_pubsub_input_subscription_name>
SERVICE_ACCOUNT_NAME=nr-dataflow-forwarder-sa
SERVICE_ACCOUNT_KEY_FILENAME=service-account-key.json
JOB_NAME=nr-log-forwarder
以下のコマンドを実行して、生成されたDataflowテンプレートを格納するバケットをGCPに作成します。
$gsutil mb -p ${PROJECT_ID} -l ${REGION} gs://${BUCKET_NAME}
以下のコマンドを実行します。
サービスアカウントを作成します。
$gcloud iam service-accounts create ${SERVICE_ACCOUNT_NAME}
サービスアカウントに権限を付与します。
$gcloud projects add-iam-policy-binding ${PROJECT_ID} --member="serviceAccount:${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com" --role="roles/owner"
サービスアカウントキーファイルの生成
$gcloud iam service-accounts keys create ${SERVICE_ACCOUNT_KEY_FILENAME} --iam-account=${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com
GOOGLE_APPLICATION_CREDENTIALS
環境変数を使用して、サービスアカウントキーファイルを参照します。これは、後続のコマンドで使用されるためです。
$export GOOGLE_APPLICATION_CREDENTIALS=${SERVICE_ACCOUNT_KEY_FILENAME}
次のコマンドを実行します。
> -Dexec.mainClass=com.google.cloud.teleport.templates.PubsubToNewRelic \
> -Dexec.cleanupDaemonThreads=false \
> --project=${PROJECT_ID} \
> --enableStreamingEngine \
> --stagingLocation=gs://${BUCKET_NAME}/staging/ \
> --gcpTempLocation=gs://${BUCKET_NAME}/temp/ \
> --templateLocation=gs://${BUCKET_NAME}/template/PubsubToNewRelic \
> --runner=DataflowRunner \
次のコマンドを実行すると、Pub/Subトピックから読み取るDataflowジョブを使用してログの出荷が開始されます。
$gcloud dataflow jobs run ${JOB_NAME} \
> --gcs-location=gs://${BUCKET_NAME}/template/PubsubToNewRelic \
> --parameters "inputSubscription=projects/${PROJECT_ID}/subscriptions/${INPUT_SUBSCRIPTION_NAME},licenseKey=${NR_LICENSE_KEY}"
このコマンドでは、この2つの値だけが必要です。
ヨーロッパのアカウントでは、値としてhttps://log-api.eu.newrelic.com/log/v1
を使用してlogsApiUrl
パラメータも追加する必要があります。
$gcloud dataflow jobs run ${JOB_NAME} \
> --gcs-location=gs://${BUCKET_NAME}/template/PubsubToNewRelic \
> --parameters "inputSubscription=projects/${PROJECT_ID}/subscriptions/${INPUT_SUBSCRIPTION_NAME},licenseKey=${NR_LICENSE_KEY},logsApiUrl=https://log-api.eu.newrelic.com/log/v1"
ここでは、Dataflowログフォワーダージョブの実行をさらに調整するために使用できるオプションのリファレンスを示します。
設定パラメータ | 説明 |
---|
licenseKey Required.
| New Relic 。 |
inputSubscription Required.
| ログを消費するために使用されるCloud Pub/Subサブスクリプションです。このフォーマットを使用します。 projects/<project-id>/subscriptions/<subscription-name>
|
logsApiUrl
| New Relic の Log API の URL です。これは、Dataflow パイプラインが実行される VPC からルーティングされます。 デフォルト: https://log-api.newrelic.com/log/v1
ヨーロッパ地域。 https://log-api.eu.newrelic.com/log/v1
|
batchCount
| 1つのHTTP POSTリクエストでNew Relicに送信する前に、バッチに集約するログレコードの最大数。 デフォルト: 100 |
flushDelay
| フルバッチではない最後のログレコードを受信してから、New Relicにフラッシュする前に、追加のログ(最大batchCount )を待機する秒数。 デフォルト: 2 |
parallelism
| 並列リクエストの最大数。 デフォルト: 1 |
disableCertificateValidation
| SSL証明書の検証を無効にする。 デフォルト: false |
useCompression
| NewRelicのLogsAPIに送信されたペイロードを(GZIPで)圧縮します。 デフォルト: true |
tokenKMSEncryptionKey
| トークンのKMS暗号化キー。このフォーマットを使用します。 projects/{gcp_project}/locations/{key_region}/keyRings/{key_ring}/cryptoKeys/{kms_key_name}
デフォルト: null |
このドキュメントはインストールの役に立ちましたか?
次は何ですか?
ログ UIを使用して、プラットフォーム全体のログ データを調べます。
ログ転送を無効にする
ログ転送機能を無効にするには、 Google Cloud Platform のドキュメント に記載されている標準的な手順に従ってください。New Relic では、他に何もする必要はありません。