New Relic の Azure 統合は設定時にAzure Entra ID で発行したクライアントシークレットを使用します。シークレットには有効期限が設定されているため、期限を迎える前に更新する必要があります。期限が過ぎてしまうと Azure のメトリクスが取得できなくなり、Azure の PaaS 等の監視ができなくなってしまいます。
今回はクライアントシークレットを更新する2つの方法を紹介します。
今回のポイント
この記事で紹介している方法は、次の2つです。
-
Infrastructure の UI から更新する方法
GUI上からクライアントシークレットを更新する方法を紹介します。 -
NerdGraph で更新する方法
New Relic の設定が実行できる GraphQL API(NerdGraph) を使って更新する方法を紹介します。
最新のアップデートの詳細はこちら
New Relic アップデート一覧
無料のアカウントで試してみよう!
New Relic フリープランで始めるオブザーバビリティ!
更新手順
Infrastructure の UI から更新する
Azure のクライアントシークレットを更新する際は、Infrastructure のメニューを使用します。Azure を選択して現在設定されている Azure 統合の Provider account や 統合の一覧を確認します。更新対象の Provider account を選択したら Edit accountを選択します。
Edit account の画面を開くと Client Secret が空欄で表示されます。ここに新しく作成したクライアントシークレットを入力して Save changesをクリックします。
すると更新する項目の確認画面が表示されます。今回は Client Secret のみを更新しているので1つだけ表示されています。
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 でツールにアクセスできます。
User API Key を入力して submit するとクエリを実行する準備は完了です。
パラメータの確認
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上だと以下の画面で確認が可能です。
<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 フリープランで始めるオブザーバビリティ!