Azure Native New Relic Serviceによる、新しい形のAzure・New Relic連携

# はじめに
本記事は [New Relic 使ってみた情報をシェアしよう！ by New Relic Advent Calendar 2023](https://qiita.com/advent-calendar/2023/newrelic) シリーズ 3 の 6日目の記事です。

AzureとNew Relicをネイティブに統合する **Azure Native New Relic Service** なるものが今年の7月にGAとなりました。

https://azure.microsoft.com/en-us/updates/general-availability-azure-native-new-relic-service/

どんなサービスなのか、さっそく試してみましょう。

# 前提条件
Azure Native New Relic Serviceの利用設定にあたり、Azureサブスクリプションの管理者権限が必要となります。
また、以下で紹介する手順はNew Relicのアカウントを持っていることを前提にしています。

# 設定方法

あらかじめお使いのブラウザでNew Relicのコンソールにログインしておきましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274613/641ac4ff-78dc-3bb5-05df-fa04518f2340.png)


Azureサブスクリプションに対し、New Relicのリソースプロバイダーを登録します。

```bash
SUBSCRIPTION_ID=$(az account show --query id -o tsv)
az provider register --namespace NewRelic.Observability --subscription $SUBSCRIPTION_ID
```

次にAzureポータルから **Azure Native New Relic Service** のメニューを表示し作成ボタンをクリックします。  
すると、新しくNew Relicのアカウントを作成するか、もしくは既に所持しているNew Relicのアカウントをリンクするかの2択が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274613/8734c27b-1b18-11b5-d77f-129798658ed1.png)

今回は[昨年作った既存のNew Relicアカウント](https://qiita.com/ussvgr/items/53ea2b6f8eb128778d8c)をリンクする方法で進めます。  
`Linking with existing New Relic account` のCreateボタンをクリックし、新規作成画面に移ります。

作成画面では、サブスクリプション・リソースグループ・リソース名を入力します。リージョンは現状 East US のみが選択できます。  
`New Relic Account` の欄にNew RelicアカウントのIDがリスト表示されるので、リンクするアカウントを選択します。  

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274613/bba19f22-1f4a-4f7b-37fb-47bb91ce452f.png)

次の `Metrics + logs` の欄ではAzureからNew Relicにメトリック・ログを送信する対象リソースの条件を、タグベースで設定できます。  
こちらはリソース作成後でも設定変更できるので、いったんすべてのチェックを外して進めます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274613/5bb72d9e-89ea-6575-2985-723d2b38fd1f.png)

あとは必要に応じてタグの設定をしてリソースを作成します。  
作成が完了すると `New Relic` というリソース種別でAzureポータル上に表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274613/4f8d13bd-4b26-c69f-692d-6676ceb38a2d.png)

# Azure側からログ・メトリックの送信設定
どのようにAzureからNew Relicにデータを連携するのか、実際に設定してみましょう。

Azure Native New Relic Service は **Azure Native** と名の付くとおり、Azureの機能と密に連携されています。New Relicにログを連携する設定は、各リソースの **診断設定** から行います。
そうです、通常Log Analyticsワークスペースやストレージアカウントに保存する設定を行う、診断設定の画面です。
旧来のIntegrationではサービスプリンシパルを発行しNew Relicのコンソール側に認証情報を入力する形で設定していましたが、Azure Native New Relic Service はAzure側からNew Relicに送信するデータを指定する形で設定を行うのが大きな違いです。

診断設定の宛先として、**パートナー ソリューションに送信** という項目があります。これにチェックを付け、前の項で作成したNew Relicのリソースを指定することで、ログを送信できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274613/4c2575a8-5484-c8f1-bbbe-70ffc765eb26.png)

でも1リソースづつ設定するの面倒だし…とお思いの方、ご安心ください。一括で複数リソースの診断設定を投入する方法が準備されています。
作成したNew Relicリソースの `Metric and logs` から、メトリック/ログそれぞれについて送信の設定ができます。
デフォルトではNew Relicサブスクリプションと同じサブスクリプションのリソースのすべてが対象となりますが、Azureリソースに付与するタグを利用して適用範囲をフィルタリングすることもできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274613/4a337da4-09f7-68b0-2c7a-455d5b86b805.png)

また、`Monitored resources` メニューからは、リソースごとにNew Relicにログ・メトリックを連携しているかどうかを一覧で確認できます。
設定もれによって監視できていなかった…といった悲劇を防ぐことができるイカす機能ではないかと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274613/9db54881-54d5-52ac-c09a-76bc77247873.png)

# AzureとNew Relic請求元の一本化（未検証）
Azure Native New Relic Serviceの大きな特徴として、**請求をAzure Marketplaceに一本化できる** という点が挙げられるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274613/1287bac1-edf4-2204-b0a9-447957670357.png)
ただ、私の環境でこのボタンをクリックすると、とんでもない高額なプランしか表示されず、試すことができませんでした…。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274613/c4ad3bec-30d8-31ee-534f-545a3c4707c4.png)

今回既存のNew Relicアカウントを利用していますが、Azure上から新規でNew Relicアカウントを作ることもできそうです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274613/d7edd2ee-80a7-565f-0240-426ae769058e.png)

しかし、次の画面で本来表示されるべきPlanやBilling Termといったメニューが表示されず、これ以上進めることができませんでした。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274613/0ec0498f-49b3-819f-e0d6-6fcc7b4a60c6.png)

[Azure MarketplaceにあるAzure Native New Relic Service](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/newrelicinc1635200720692.newrelic_liftr_payg) からリソースを作成しようとすると、`マーケット 'JP' で使用できるプランがありません` というエラーメッセージが表示されてしまうので、日本では利用できないのかもしれません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274613/4922787f-5454-7a38-bd15-9f32cdece721.png)

Azureの請求と一本化できて他の契約面が不要となるとグッと導入のハードルが下がるので、この機能はぜひ使えるようになってほしいところです。今後の発展に期待したいと思います。

# おわりに
AzureとNew Relicの統合機能のご紹介でした。
Azure上の監視サービスとしてはAzure Monitorがありますが、特にログの検索まわりがKustoと呼ばれる独自クエリ言語を使用していることから、馴染みがない方からすると非常に取っつきづらいです。
Azure Monitorと似たような設定の簡便さでNew Relicが利用できるというのは、大きなメリットだと思います。登場したばかりで設定がこなれてない箇所もありますが、Azureの監視に課題を持たれている方は一度使ってみてはいかがでしょうか。