native cloud seminar

はじめに

New Relicでは主要パブリッククラウドとの連携を行うことができます。今回はGoogle Cloudとの連携方法について、ドキュメントをもとに順を追って説明します。

こちらがGoogle Cloud との接続方法のドキュメントです。あわせてご確認ください。
https://docs.newrelic.com/jp/docs/infrastructure/google-cloud-platform-integrations/get-started/connect-google-cloud-platform-services-new-relic/

連携方法

New RelicとGoogle Cloudとの連携は、対象のGoogle Cloud projectに対しNew Relicより一定間隔で情報を取得することで実現しています。  
それでは、実際の手順を見ていきましょう。

連携手順

連携方法は次の2ステップです。

1. 対象のGoogle CloudプロジェクトでStackdriver Monitoring APIを有効化する
2. 対象のGoogle Cloudプロジェクトに対し、Cloud Integrationで使用するNew Relicのサービスアカウントを認証する

それでは、具体的な手順を見ていきましょう
 

1. 対象のGoogle CloudプロジェクトでCloud Monitoring APIを有効化する

最初に、Google CloudのWeb UIよりStackdriver Monitoring APIを有効化します。

APIs & Servicesから ENABLE APIS AND SERVICE を選択し、API Libraryの検索窓より "monitoring" と入力してください。
一覧のより "Stackdriver Monitoring API" を選択し、Enableボタンをクリックしてください。
 

monitoring_api

また、WebUIを利用せずCLIを使用しAPIを有効化していただくことも可能です。CLI派の方はこちらのコマンドをご利用ください。

gcloud services enable monitoring --project=PROJECT_ID

2. 対象のGoogle Cloudプロジェクトに対し、Cloud Integrationで使用するNew Relicのサービスアカウントを認証する

次に、New RelicのコントロールパネルよりGoogle Cloudとの連携を進めます。

  1. Infrastructure画面よりGCPタブを選択します
  2. リンク"Set up Google Cloud Platform integrations."を選択してください  
     
integration01
  1. 認証方式を選択します  
    • 組織のポリシー上、New Relicのサービスアカウントを自プロジェクトに認証することに問題がないのであれば、Service Accountによる連携を推奨いたします。  
  2. サービスアカウントの認証処理を行います  
    • New RelicのWebUIに表示されている連携用サービスアカウントのアドレスをコピーします。  
       
integration02
  1. Google CluodのWebコンソールに移り、IAM & Admin > IAM を開きます  
  2. IAM画面上部にある "+GRANT ACCESS" を選び、権限設定を開始します  
     
integration03
  1. Add principalsに手順4でコピーしたアドレスをペーストします
  2. Assign rolesより、Viewerを選択します 
    ※Viewerの名称を持つroleが多いので、Basic > Viewerの順で選択すると探しやすいです。
  3. ADD ANOTHER ROLEを選択し、Service Usage Consumerを選択します
integration04
  1. 全て設定したら、SAVEボタンを押し保存します
  2. New RelicのWeb UIに戻り、次の項目へ進めます  
  3. Step 3: Add projectsで認証が完了するまでしばらく(数分間)待ちます
  4. 下記画像のように `The authentication for New Relic to fetch data from Google was successful.` と表示されたら、認証されたプロジェクトにチェックを入れNextを押します 
integration05
  1. データ取得対象のGoogle Cloudサービスを選択し、Nextを押します
integration06
  1. 以上で連携完了です
integration07

サービスアカウントに設定するロールについて

サービスアカウントにはロールroles/viewerを割り当てることが強く推奨されています。
当該ロールを割り当てることで、Google Cloudで新しいサービスがリリースされた際に都度サービスアカウントに対して変更を行うことなく追従できるためです。
ただし、要件によってはGoogle Cloudから見て外部のサービスに対しての許可を最小限にしたいといったケースがあるかと思います。そのような場合はカスタムロールとして共通で要求されるロールと、サービス単位でのロールの設定の設定を行っていただくことが可能です。

詳細については下記URLにてご参照いただけます。
https://docs.newrelic.com/docs/infrastructure/google-cloud-platform-integrations/get-started/integrations-custom-roles/
 

連携に成功しているか確認する

それでは実際に連携が成功しているか確認していきましょう。  
連携の設定が終わると、GCP serviceの項目にデータを取得しているサービス一覧が表示されます。  
 

integration08

DASHBOARD列にあるリンクをクリックすることで、データが取得できているか確認することができます。  
今回の例では、Cloud SQL dashboardを確認していきます。
 

integration09

無事にmetrics gcp.cloudsql.database.cpu.utilization の値がグラフに反映されていることがわかります。

New Relicで取得できるmetricsについて

そのほか、New Relicで取得できるmetricsは下記のドキュメントに記載されています。

New Relic - GCP integration metrics  
https://docs.newrelic.com/docs/infrastructure/google-cloud-platform-integrations/get-started/gcp-integration-metrics/

まとめ

以上でGoogle Cloudとの連携方法の説明は終わりです。
本記事でNew Relicで情報を取得する領域を広げて可観測性を高め、お客様のサービス品質向上の一助となれば幸いです。