5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

New Relic の Azure 統合で使用するクライアントシークレットを更新するには

Last updated at Posted at 2024-10-17

 New Relic の Azure 統合は設定時にAzure Entra ID で発行したクライアントシークレットを使用します。シークレットには有効期限が設定されているため、期限を迎える前に更新する必要があります。期限が過ぎてしまうと Azure のメトリクスが取得できなくなり、Azure の PaaS 等の監視ができなくなってしまいます。
 今回はクライアントシークレットを更新する2つの方法を紹介します。

今回のポイント

この記事で紹介している方法は、次の2つです。

  1. Infrastructure の UI から更新する方法
    GUI上からクライアントシークレットを更新する方法を紹介します。
  2. NerdGraph で更新する方法
    New Relic の設定が実行できる GraphQL API(NerdGraph) を使って更新する方法を紹介します。

最新のアップデートの詳細はこちら
New Relic アップデート一覧

無料のアカウントで試してみよう!
New Relic フリープランで始めるオブザーバビリティ!

更新手順

Infrastructure の UI から更新する

 Azure のクライアントシークレットを更新する際は、Infrastructure のメニューを使用します。Azure を選択して現在設定されている Azure 統合の Provider account や 統合の一覧を確認します。更新対象の Provider account を選択したら Edit accountを選択します。
infrastructure.png

 Edit account の画面を開くと Client Secret が空欄で表示されます。ここに新しく作成したクライアントシークレットを入力して Save changesをクリックします。
edit-account.png

すると更新する項目の確認画面が表示されます。今回は Client Secret のみを更新しているので1つだけ表示されています。
確認画面.png

複数の項目を更新しようとすると更新した項目が列挙されます。
確認画面_複数.png

Save changes を選択すれば更新作業は完了です。

NerdGraph を使って更新する方法

 New Relic の設定をAPI経由で実行できる GraphQL API(NerdGraph) を使って更新する方法を紹介します。関連する New Relic の NerdGraph の公式ドキュメントはこちらです。

NerdGraph API Explorer の設定

 今回は NerdGraph を使用するために GUI で GraphQL を実行できるツール New Relic の NerdGraph API Explorer を使って設定します。ツールの詳しい使い方はこちらのチュートリアルを確認して下さい。

 All capabilities > Apps > NerdGraph API explorer でツールにアクセスできます。
NerdGraph API Explorer.png

User API Key を入力して submit するとクエリを実行する準備は完了です。
UserAPIKey.png

パラメータの確認

mutationの例が下記のように記載されているので設定するパラメータを確認していきます。

mutation {
  cloudUpdateAccount(
    accountId: <NR_ACCOUNT_ID>
    accounts: {
      azure: {
        linkedAccountId: <NR_LINKED_ACCOUNT_ID>, 
        clientSecret: <azure_secret_token>
      }
    }
  ) {
    linkedAccounts {
      id
      name
      authLabel
      createdAt
      updatedAt
    }
  }
}

<NR_ACCOUNT_ID> は、New Relic のアカウントIDです。
<NR_LINKED_ACCOUNT_ID> は、Azure 統合の Provider account の ID を設定します。UI上だと以下の画面で確認が可能です。

NR_LINKED_ACCOUNT_ID.png
<azure_secret_token> にAzureで作成したクライアントシークレットを設定します。

 私の環境でそれぞれ値を設定すると下記のようになります。

mutation {
  cloudUpdateAccount(
    accountId: 3720297
    accounts: {
      azure: {
        linkedAccountId: 172051, 
        clientSecret: "ppppp~pppppppp~pppp0000PPPP000PPPP"
      }
    }
  ) {
    linkedAccounts {
      id
      name
      authLabel
      createdAt
      updatedAt
    }
  }
}

実行結果の確認

 実行すると下記のような結果が返ってくると更新は成功です。レスポンスの内容はクエリ実行時に指定できるのでカスタマイズしたい方は試してみて下さい。

{
  "data": {
    "cloudUpdateAccount": {
      "linkedAccounts": [
        {
          "authLabel": "9xx99xx9-x99x-9x9x-9x99-9999x99x9999",
          "createdAt": 1685326733,
          "id": 172051,
          "name": "Azure_NR_integration",
          "updatedAt": 1729095314
        }
      ]
    }
  }
}

 更新に失敗すると下記のようなレスポンスが表示されます。この例では linkedAccountId を不正に変更しています。message にエラーの原因も表示されているので、エラーになった際は message の内容を確認して下さい。

{
  "data": {
    "cloudUpdateAccount": null
  },
  "errors": [
    {
      "message": "Linked account 172052 was not found",
      "path": [
        "cloudUpdateAccount"
      ],
      "extensions": {
        "errorClass": "SERVER_ERROR"
      },
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ]
    }
  ]
}

最後に

New Relic の Azure 統合を利用する際には、クライアントシークレットの更新は必要不可欠な運用です。GUI を使って簡単に更新することができるようになっていますし、NerdGraph を使った自動化にも対応しています。運用に合わせて更新方法を検討してみて下さい。

その他

New Relicでは、新しい機能やその活用方法について、QiitaやXで発信しています!
無料でアカウント作成も可能なのでぜひお試しください!

New Relic株式会社のX(旧Twitter)Qiita OrganizationOrganizationでは、
新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。

無料のアカウントで試してみよう!
New Relic フリープランで始めるオブザーバビリティ!

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?