はじめに
アロハ~♪
New Relic Trailblazer やっております、CTC システムマネジメントの 「すぎぴー」こと杉浦です☆
今回、直近で New Relic にて Limited Preview となった OCI (Oracle Cloud Infrastructure) のインテグレーションをやってみましたが、Preview であることもあり、2025 年 11 月上旬のタイミングでのドキュメント上では行間を読まないと躓いてしまう箇所が多々ありましたので、これからやろうと思っていた方の参考になればと思います。
なお、こちらの記事は Qiita Advent Calendar 2025 参加のものとなります。
(注意)本記事は、2025/12/5時点の情報となり、また Limited Preview であるため、今後、仕様や UI 等が変わってしまう可能性がございます。既に私が検証している最中にも手順への改修がいくつかあったので、うまくいかない場合は最新の公式ドキュメント側も併せて参照ください。
参考ドキュメント:Oracle Cloud Infrastructure (OCI) integration
さっそく、OCI Integration やってみよう!
OCI インテグレーションには、現状、以下3つのインテグレーション方法があります。
1.OCI と ORM (Oracle Resource Manager)の連携自動化
2.OCI アカウントを手動連携
3.Terraform の OCI Cloud Integration モジュールによる自動化
本記事では、1.の ORM スタックを自動デプロイして、必要なポリシー、インストゥルメントのネームスペース、ロググループを設定する手順にて、メトリクスやログのデータを New Relic へ転送する流れを記述します。
全体的な流れ
※途中から対応される際、以下ステップごとにハイパーリンクしていますのでクリックして飛んでください。
0. 事前準備
OCI 環境を New Relic へインテグレーションしますので、New Relic アカウントや OCI アカウントなども含め、以下を準備してください。
New Relic セットアップ
- New Relic アカウント
- Infrastructure monitoring 権限を持った New Relic ユーザ
- 有効な Ingest License Key
- New Relic へデータ流入を許可するための認証情報
- 有効な User Key
- NerdGraph (GraphQL API) などを介して、New Relic のデータ取得やアラート設定の変更などをプログラムから行うための認証情報
- OCI の Limited Preview 申請 ※下記のように Opted in となっていることが前提
OCI セットアップ
- OCI アカウント
- 対象とする環境が設定されているドメインの
IAM_DOMAIN_URL -
Client credentialのnewrelic-token-exchange-app
※詳細は次のステップにて確認ください
なお、OCI 環境上に何等かのリソースがあると New Relic 上で可視化したものを閲覧できるのでベストです!
1. OCI Workload Identity Federation (WIF) 認証セットアップ
OCI の Workload Identity Federation を使用して New Relic と統合します。
1.1 アイデンティティドメインアプリケーションを作成
ここでは 2 つの OAuth アプリケーションを作成。
一つは管理者用で、もう一つが New Relic 連携用となります。
公式ドキュメントにも記述されているが、管理者用アプリケーションには高い権限が付与されるため、WIF 設定が完了次第、セキュリティの観点から無効化することを推奨します。
(1) メニューから Identity & Security を選択し、Domains より対象ドメインを選択。
私の場合は、画像の通り、無償の Default のドメインのまま、今回のインテグレーションを進めています。

(2) Integrated applications タブを選択し、Add application をクリック。

(3) Confidential Application (機密アプリケーション)を選択し、画面右下の Launch workflow をクリックし、ワークフローを起動。

(4) Name に newrelic-ida-app を入力し、Submit をクリックし、アプリを作成。

(5) 新しく作成されたアプリ(newrelic-ida-app)の OAth configuration タブに移動し、Edit OAuth configuration をクリック。

(6) OAuth Configuration にて以下の通り設定し、Submit をクリック。
- Client configuration 配下の
Configure this application as a client nowを選択
(7) 作成したアプリの Actions より Activate をクリック。
以下画像の通り、アプリ名の隣のステータスが Active と表示されれば有効化されている。

(8) 生成された Client secret を三点リーダーからコピーし、保管。

(9) ステップ 1 から 8 までを繰り返し、New Relic 連携用アプリケーションを作成し、生成された Client secret を保管。作成する際、以下の点のみ異なりますのでご注意ください。
- アプリケーション名:
newrelic-token-exchange-app - Add app roles のトグル有効不要
1.2 アイデンティティドメイン管理トークンを生成
Service users の作成と 信頼設定を行うためのアクセストークンを生成する。
(1) 対象 Domain の Details タブより Domain URL をコピーし、保管。

(2) Cloud Shell を開き、以下コマンドにて OAuth トークンを Base64 形式にエンコード実施。
export OAUTH_TOKEN=$(echo -n "<client id>:<cllient secret>" | base64 -w 0)
エンコード出来ているか、以下コマンドで確認。
echo $OAUTH_TOKEN
OAUTH_TOKEN と同じように IAM_DOMAIN_URL も変数に入れておく。
export IAM_DOMAIN_URL=https://idcs-xxxxxxxxxxxxxxxx.identity.oraclecloud.com:443
検証のタイミングでは、上記のエンコードの部分が公式ドキュメントの手順に含まれていなかったため、次のステップでエラーとなってしまった。
(3) 以下コマンドにてトークンを生成。生成されたトークンは後ほど IDA_Access_Token として使用するため、安全に保管。
curl --location 'https://$IAM_DOMAIN_URL/oauth2/v1/token' \
--header 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' \
--header 'Authorization: Basic $OAUTH_TOKEN' \
--data 'grant_type=client_credentials&scope=urn:opc:idm:__myscopes__'
私の環境だけかもしれませんが、上記をそのまま実行しても以下エラー結果となってしまいました。なぜか変数がうまく読み込まれなかったようなので、同じエラー結果となる場合は変数の部分は中身を直接コマンドに貼り付けて実行してみてください。($IAM_DOMAIN_URL と $OAUTH_TOKEN の箇所)
1.3 IAM Group、Service User を作成し、Policy を構成
New Relic 統合専用の Group、User、Policy を作成する。
1.Group を作成
(1) Identity & Security にて対象 Domain を選択し、User management タブより Create Group をクリック。

(2) グループ名にプレフィックスとして newrelic を含む形で Create をクリックし、グループを作成。(以下では newrelic-svc-user-group を入力)

2.IAM Policy を作成
(1) Identity & Security の メニューから Policies 選択し、Create Policy をクリック。

(2) 各項目に以下を入力し、Create をクリックし、Policy を作成。
- Name:
newrelic-svc-user-policy - Description:
newrelic-svc-user-policy※ Description も記入が必須です。 - Compartment:
対象ドメインを選択 - Policy Builder:
ボックス内に以下ポリシーをそのまま入力
※ Group 名が異なる場合は、作成された Group 名へ変更ください。
Allow group newrelic-svc-user-group to read all-resources in tenancy
3.Service user の作成
API 呼び出しに使う Service user を作成し、New Relic 統合認証に使用します。
(1) IDA_Access_Token を使用し、以下コマンドにてプレフィックスに newrelic を持つサービスユーザーを作成します。コマンド実行結果後に出力される内容も保管しておく。
(以下ではユーザー名を newrelic-wif-svc-user としています)
curl --location 'https://$IAM_DOMAIN_URL/admin/v1/Users' \
--header 'Authorization: Bearer $IDA_Access_Token' \
--header 'Content-Type: application/json' \
--data '{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User": {
"serviceUser": true
},
"userName": "newrelic-wif-svc-user"
}'
※上記前のステップ同様に $IAM_DOMAIN_URL や $IDA_Access_Token が読み込まれない場合は、直接コマンドに貼り付けて実行ください。
(2) 作成されたサービスユーザーは、前のステップで作成した Group (newrelic-svc-user-group) の Users タブから Assign user to group をクリックし、newrelic-wif-svc-user を選択し、Add をクリックして登録する。

4.Identity Propagation Trust 作成
Identity Propagation Trust は以下コマンドにて作成。
curl --location 'https://$IAM_DOMAIN_URL/admin/v1/IdentityPropagationTrusts' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $IDA_Access_Token' \
--data '{
"active": true,
"allowImpersonation": true,
"issuer": "$NR_ISSUER_NAME",
"name": "$NAME_OF_TRUST_BEING_SETUP",
"oauthClients": ["$CLIENT_ID_OF_NEWRELIC_TOKEN_EXCHANGE_APP"],
"publicKeyEndpoint": "$NR_PUBLIC_JWKS_URL",
"impersonationServiceUsers": [{
"rule": "sub eq $NR_SUBJECT_NAME",
"value": "$OCI_SVC_USER_UUID"
}],
"subjectType": "User",
"type": "JWT",
"schemas": ["urn:ietf:params:scim:schemas:oracle:idcs:IdentityPropagationTrust"]
}'
各項目は以下のように直接値を置き換えてください。
- IAM_DOMAIN_URL: Identity & Security > Domains > Choose Domain in which OAuth applications are created > Details >
Domain URL - IDA_Access_Token: ステップ 1.2 にて作成した
IDA_Access_Token - NAME_OF_TRUST_BEING_SETUP:
Token Trust JWT to UPST - CLIENT_ID_OF_NEWRELIC_TOKEN_EXCHANGE_APP: Identity & Security -> Domains -> Choose Domain in which OAuth applications are created > Integrated application > newrelic-token-exchange-app >
client-id - OCI_SVC_USER_UUID: 3.Service user の作成 のサービスユーザー作成コマンド結果の中にある location の末尾にある /Users/ 後の 32 桁ほどの英数字
- New Relic アカウントにてご利用のリージョンに合わせて下記項目の値を貼り付けてください
New Relic US リージョン
| 項目 | 値 |
|---|---|
| NR_ISSUER_NAME | newrelic-oci-us-production-issuer |
| NR_SUBJECT_NAME | newrelic-oci-us-production-user |
| NR_PUBLIC_JWKS_URL | https://publickeys.newrelic.com/r/oci-cmp/us/c5623ba5-1cc7-491a-8ec3-eeee809374f7/jwks.json |
New Relic EU リージョン
| 項目 | 値 |
|---|---|
| NR_ISSUER_NAME | newrelic-oci-eu-production-issuer |
| NR_SUBJECT_NAME | newrelic-oci-eu-production-user |
| NR_PUBLIC_JWKS_URL | https://publickeys.eu.newrelic.com/r/oci-cmp/eu/f923dba9-84a8-491c-b714-6c0e61b90c5b/jwks.json |
2. New Relic インテグレーション設定
(1) OCI インテグレーションを始めるには、まず New Relic へログインし、one.newrelic.com > Integrations & Agents へ遷移後、検索バーより OCI と入力。Oracle Cloud をクリック。
(2) OCI インテグレーションをする New Relic アカウントを選択して、Continue をクリック。

(3) OCI セットアップの概要が表示されるが、前のステップで対応済みの内容となるので、そのまま Continue をクリック。

(4) OCI インテグレーションにて取得したいデータの種類を選択し、Continue をクリック。(ここでは Metrics と Logs の両方を選択)

(5) OCI インテグレーション方法にて本記事では Automate OCI with Oracle Resource Manager を選択し、クリック。

(6) 前提に記述した Ingest License Key と User Key を選択。作成されていない場合は、このタイミングで作成し、Deploy to OCI をクリック。

3. OCI にて Terraform 実行
前段の Deploy to OCI ボタンをクリック後、OCI へ画面遷移します。
ログインしていない場合は、ログイン画面からとなります。
以下のようにスタックの作成画面となります。
(1) Oracle 使用条件 を確認し、チェックボックスにチェックを入れて同意し、他はそのまま画面左下の Next をクリック。

(2) 変数の構成において、New Relic の Ingest License API Key と User API Key を入力。

(3) 次にNew Relic Account ID と New Relic 上で表示させたい OCI Integration の名前を入力。

(4) 最後、OCI WIF Configuration 内に newrelic-token-exchange-app の Client ID, Client Secret, OCI Domain URL を入力し、その後、画面左下の Next をクリック。

(5) 確認画面にて内容を確認し、画面左下の Create をクリック。

(6) 裏で Terraform が動き出し、実行に成功すれば以下画面のように SUCCEEDED となり、ログの末尾には Apply complete! Resources: 10 added, 0 changed, 0 destroyed. と表示されることを確認。

もし、Terraform のジョブ実行に失敗した場合は、Stacks に戻り、対象のジョブを削除すると Terraform の Destroy が実行され、中途半端に作成されてしまったものを削除可能です。
削除したら、手順を見直して、抜け漏れ等ないか確認した上でやり直してみてください。
(7) New Relic UI に戻り、Continue をクリック後、See your data をクリック、または Infrastructure > OCI より OCI Instrumentation を続行。

4. New Relic にて OCI Instrumentation 追加
(1) 統合した Provider account を選択し、画面中央の Add Instrumentation をクリック。

(2) 取得したい対象の namespaces を選択し、画面右上の Deploy to OCI をクリック。

(3) OCI Integration 時と同様に OCI のスタック作成画面に遷移するので、同じように同意にチェックし、Next をクリック。

(4) New Relic 環境の情報が正しく入力されていることを確認し、Next をクリック。

(5) 確認画面にて内容を確認し、Create をクリックし、Terraform を実行。

(6) ジョブが成功したら、New Relic UI に戻り、しばらくして以下のようにデータが来ていることを確認。


お疲れ様でした。
ここまでデータが確認できたら OCI Integration は完了です!
まとめ
まず、かなり手順が長いですよね。。。私の感想も同じです。
Limited Preview ということもあり、AWS Integration のように簡素化されていないようですので、特にOCI 側での作業が簡素化されることに今後期待したいです。
取得されたデータは、AWS Integration にて CloudWatch から API にて取得していいるのと同じように、OCI の oci-metric-streams コレクターによって収集され、OCI 上の Observability & Management に格納されているものを取得しているようです。今回の検証環境は、仮想マシンを立てているだけの環境であったため、あまり情報がありませんが、FaaS や NLB など様々なコンポーネントを OCI 上で構築されている場合は、OCI Integration でまとめて取得できると便利ですね。
なお、改めてですが、このタイミングでは Limited Preview であるため、今回の手順が変わる可能性もございますのでご認識ください。
おまけ
当社は実際の導入における技術支援/作業代行や社内での啓蒙活動の支援等も提供しています。ご興味をお持ちの方は以下リンク先よりお問合せください。
- New Relic は、New Relic, Inc.の登録商標です。
- その他、本資料に記述してある会社名、製品名は、各社の登録商品または商標です。








