Google Cloud PlatformのPub/SubトピックからNew Relicにログを転送する方法として、2種類の方法をサポートしています。
オプションの選択 以下は、お客様のビジネスニーズに最適なオプションを決定する際の参考になるでしょう。
GCPログフォワーディングオプション
考察
ヘッダーレスAPI
送信するログレコードごとに1回のAPIコールを実行するため、ログ量が少ない場合に最適です。 GCPサブスクリプションに追加費用は発生しません。 ログの量が増えてくると、このソリューションではNew Relicアカウントのクォータ制限に抵触する可能性があります。 データフロージョブ
ログレコードをバッチでグループ化してからNew Relicに送信するため、大容量のログに最適です。 APIコールの数を減らし、クォータの使用量を減らすことができます。 お客様の敷地内でDataflowジョブを実行するため、GCPサブスクリプションに追加費用が発生する場合があります。
GCPのログをヘッダーレスAPIを使ってNew Relicに送信するためのものです。
1.GCP Pub/SubのインジェストURLを生成します。 まず、GCP Pub/Sub トピックの取り込み URL を作成します。
Add data UI に移動し、 Logging をクリックして、 Google Cloud Platform をクリックします。
ログを転送する New Relic アカウントを選択し、 Continue をクリックします。
オプションです。次のステップで生成されるインジェストURLに送信されるすべてのログイベントに含まれるメタデータ(属性と値のペア)を設定します。
Generate URL をクリックします。
新しく生成された インジェストURL をコピーして、安全な場所に保管してください。
新しいインジェストURLを使って、New Relicにログを送信するPub/Subトピックを設定します。
2.GCP Pub/Sub Topicを作成します。 次に、インジェストURLが使用するGCP Pub/Subトピックを作成します。
Navigate to GCP Pub/Sub Console . トピックの作成 をクリックします。意味のある トピックID を入力し、必要に応じてその他のオプションを設定します。 トピックの作成 をクリックします。Pub/Subトピックを作成したら、そのトピックのサブスクリプションを作成します。
GCP Pub/Sub Consoleに戻る .
以前作成した Pub/Sub トピック をクリックします。
スクロールダウンして Subscriptions タブを選択し、 Create Subscription をクリックし、 Create a simple subscription を選択します。
Subscription ID を入力します。次に、 Delivery Type で、 Push を選択します。
Endpoint URL フィールドに、先に生成した ingest URL を貼り付けます。
必要に応じて残りの設定を行い、「 Create 」をクリックします。
4.ログをNew Relicに転送するためのルーティングシンクを作成します。 セットアップを終えるために、GCPのPub/Subトピックに、ログをNew Relicに転送するためのルーティングシンクを作成します。
Navigate to GCP Logs Router Console . Create Sink をクリックします。シンクの名前 と シンクの説明 を入力し、 Next をクリックします。Select sink service の下で、 Cloud Pub/Sub topic を選択し、以前作成した Pub/Sub topic を選択します。必要に応じて残りのフィルターを設定し、 Create sink をクリックして設定を完了します。 Dataflowジョブの使用 Dataflow ジョブを使用して GCP ログを New Relic に送信するには、弊社の Dataflow テンプレートを使用します。始める前に、ローカルコンピュータに以下のツールがあることを確認してください。
1.Google Cloud Platformのアカウントにログインします。 以下のコマンドを実行し、画面の指示に従ってGCPにログインし、クラウドプロジェクトを選択します。
ウィザードを使用して、使用するクラウドプロジェクトを選択し、オプションで、 gcloud
またはgsutil
を使用して作成するリソースのデフォルトの計算領域とゾーンを選択できます。以下のコマンドでは、デフォルトのプロジェクト、場所、または地域を想定していません。
2.DataflowTemplatesのGitHubリポジトリをクローンします。 以下のコマンドでDataflowTemplatesのGitHubリポジトリをクローンします。
git clone https://github.com/newrelic-forks/DataflowTemplates.git
先ほど作成したディレクトリを入力します。
その後、次のセクションに進み、追加のコマンドを実行します。
3.Dataflow forwarderをコンパイルして実行します。 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
4.Dataflowテンプレート用のGCPバケットを作成します。 以下のコマンドを実行して、生成されたDataflowテンプレートを格納するバケットをGCPに作成します。
$ gsutil mb -p ${PROJECT_ID} -l ${REGION} gs:// ${BUCKET_NAME}
5.サービスアカウントを作成します。 以下のコマンドを実行します。
サービスアカウントを作成します。
$ 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}
6.PubsubToNewRelicテンプレートをコンパイルして公開します。 次のコマンドを実行します。
> -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 \
7.テンプレートをDataflowジョブとして実行します。 次のコマンドを実行すると、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"
8.オプションです。Dataflowのログフォワーダジョブをチューニングします。 ここでは、Dataflowログフォワーダージョブの実行をさらに調整するために使用できるオプションのリファレンスを示します。
設定パラメータ
説明
licenseKey
必要です。
ニューレリック ライセンスキー .
inputSubscription
必要です。
ログを消費するために使用される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 では、他に何もする必要はありません。