本ガイドでは、スタンドアロンエージェントのインストレーションから、Agent ControlおよびFleet Controlによって管理されるエージェントへ移行する際の、最もよくある質問と落とし穴について説明します。
開始する前に:監視のギャップ
注意
Agent Controlをインストールすると、スタンドアロンのinfrastructureエージェントが削除されます。
Agent ControlをインストールするOSパッケージは、以前にインストールされたinfrastructureエージェントを削除または停止します。その時点から、Agent ControlがFleet Controlに接続し、デプロイメント設定を受信して、管理対象のサブエージェントとしてinfrastructureエージェントを正常に起動するまで、ホストで実行中のエージェントはなくなります。
以下のすべてが当てはまるまで、ホストにAgent Controlをインストールしないでください。
Fleet Controlには、既存の
newrelic-infra.ymlおよびintegrations.d/ファイルと同様の設定を持つ、そのホストをターゲットとするinfrastructureエージェントのデプロイメントがあります。各部分の変換方法については、設定の移行を参照してください。最初に、少なくとも1つの非本番ホストでデプロイメント設定を検証していること。
Agent Controlが、ターゲットホストからFleet ControlエンドポイントおよびOCIレジストリに到達できる。事前にファイアウォールルールとプロキシ設定を確認してください。
デプロイメントが起動しない場合に備えて、ロールバック手順を準備している。「ロールバック」を参照してください。
すべてが正しく設定されている場合、Agent Controlのインストレーションから管理対象エージェントの最初の正常な起動までの間隔は、通常数秒です。
注意
移行するには、Agent Controlをインストールする前に既存のエージェントをアンインストールする必要があります。
Agent Controlインストーラが既存のエージェントを置き換えるホストとは異なり、Kubernetesではまず古いエージェントを手動でアンインストールします。helm uninstallを実行した時点から、Agent ControlがFleet Controlに接続してリモート設定を適用するまでの間、監視にギャップが生じます。
以下のすべてが満たされるまで、既存のエージェントをアンインストールしないでください。
- 既存のHelmの値を保存しました:
helm get values RELEASE_NAME --namespace NAMESPACE。これらがロールバックポイントです。 - 移行する各エージェントタイプに対して、Fleet Controlでリモート設定が準備されていること。Helmの値をFleet Controlの設定にマッピングする方法については、設定の移行を参照してください。
- Agent Controlは、クラスタノードからFleet ControlエンドポイントおよびOCIレジストリに到達できます。ネットワークポリシーとエグレスルールを事前に確認してください。
- デプロイメントが起動しない場合に備えて、ロールバック手順を準備している。「ロールバック」を参照してください。
以前にインストゥルメントされたシステムの移行
重要
Agent Controlは、既存のエージェントの自動移行をサポートしていません。移行は常に手動プロセスです:既存のエージェントをアンインストールし、Agent Controlをインストールしてから、Fleet Controlのリモート設定として設定を再作成します。
LinuxおよびWindowsホストでの監視のギャップ
ホストにAgent Controlをインストールすると、スタンドアロンのinfrastructureエージェントが削除されます。古いエージェントが停止した時点から、Agent ControlがFleet Controlに接続して管理対象エージェントを起動するまで、テレメトリーが一時的に失われることが予想されます。本番環境を移行する前に、非本番ホストでFleet Controlのデプロイメント設定を準備して検証してください。ロールバック手順を含む詳細については、ホスト移行ガイドを参照してください。
一般的な移行プロセス
プラットフォームに関係なく、移行は次の4つのステップに従います:
- 現在の設定をメモしておいてください。アンインストールする前に、すべてのエージェント設定ファイルとインテグレーション設定のコピーを保存してください。これらをFleet Controlリモート設定として再作成します。
- 既存のエージェントをアンインストールします。Agent Controlは、同じタイプのスタンドアロンエージェントのインストレーションと共存することはできません。
- Agent Controlをインストールし、フリートに接続します。プラットフォーム固有のインストレーションガイドに従い、既存のフリートを選択するか、新しいフリートを作成します。
- Fleet Controlで設定を再作成します。以前の設定を使用して、フリートのリモート設定を作成します。Agent Controlはそれを自動的に適用します。
リモート設定が常に優先される
Fleet Controlは、エージェント設定の信頼できるソースです。エージェントの設定、バージョン、チャート値、およびリソース制限はすべて、ローカルのインストレーションファイルではなく、Fleet Controlのリモート設定で定義する必要があります。両方が存在する場合、リモート設定が優先され、ローカルの値を上書きします。
ベストプラクティス
データの継続性を確保するために、Agent Controlのインストレーション中は、同じエンティティ名(クラスタ名またはホスト名)と同じNew Relicアカウントを使用してください。エンティティのGUIDはこれらの属性に結び付けられており、エージェントの管理方法には結び付けられていません。詳細については、エンティティの継続性とダッシュボードを参照してください。Agent Controlでまだサポートされていないエージェントやコンポーネントは、サポートが利用可能になるまでそのままにしておくことができます。
Kubernetes
KubernetesクラスタがすでにNew Relicでインストゥルメントされている場合、エージェントをAgent Controlで管理するように移行できます。移行プロセスでは、既存のエージェントのインストールを削除し、Fleet Controlを通じて一元的に設定されるAgent Control管理のインストールに置き換えます。
Agent Controlは、nri-bundle Helmチャートから以下のエージェントをデプロイおよび管理できます:
newrelic-infrastructure、nri-kube-events、およびkube-state-metrics:infrastructureエージェントタイプとして管理されますnewrelic-prometheus-configurator:Prometheusエージェントタイプとして管理されますnewrelic-logging:Fluent Bitエージェントタイプとして管理されますnr-k8s-otel-collector:OpenTelemetry Collectorエージェントタイプとして管理されます
- 既存の設定を取得します。Helmを使用してエージェントをインストールした場合は、クラスタからインストレーション設定を取得します:
$# Find releases in the namespace$helm list --namespace <namespace-name>$
$# Get the values for a specific release$helm get values <release-name> --namespace <namespace-name>インストレーションから保存した元の設定ファイルがある場合は、それを直接使用します。Kubernetesマニフェスト(kubectlまたはKustomize)を介してクラスタがインストゥルメントされた場合は、各エージェントに設定されているオプションに注意してください — それらをFleet Controlのリモート設定として再作成します。
- 古いエージェントをアンインストールします。Agent Controlをインストールする前に、クラスタから古いエージェントを削除してください。Helmインストレーションの場合:
$helm uninstall <release-name> -n <namespace>例えば、 nri-bundleをアンインストールするには、次のようにします。
$helm uninstall nri-bundle -n newrelic- Agent Controlをインストールしてください。Agent Controlのガイド付きインストレーションを開始し、生成された
values.yamlをダウンロードします。このファイルには、Agent Controlスーパーバイザーの設定(認証情報、フリートID、管理するエージェントタイプ)のみが含まれています — ここにエージェント固有のチャート値を追加しないでください。これらはFleet Controlのリモート設定に属します。
$helm upgrade --install agent-control-bootstrap -n newrelic newrelic/agent-control-bootstrap --create-namespace --values my_values.yamlFleet Controlでエージェントの設定を再作成します。Agent ControlがFleet Controlに接続した後、以前の設定を使用して、古い各エージェントの設定を作成します。
作成したばかりのリモート設定をフリートに追加して、新しいデプロイメントを作成します。Agent Controlは、新しい設定をクラスタに自動的に適用します。「最初のデプロイメントの作成と実行」の手順に従ってください。
データが流れていることを確認します。New RelicのUIで、Infrastructure > Kubernetesに移動します。リモート設定が適用されてから1~2分以内にクラスタが表示されます。表示されない場合は、Agent Controlのトラブルシューティングを参照してください。
Linux
重要
Agent Controlは、Linux上の既存エージェントの自動移行をサポートしていません。Linux ホストにNew Relic Infrastructureエージェントが既にインストールされている場合は、 Agent Controlインストールする前に手動でアンインストールする必要があります。 Agent Control 、 Fleet Controlを介して OCI 準拠のパッケージを介してエージェントを配布します。既存のnewrelic-infraパッケージ インストレーションを置き換えたり継承したりするものではありません。
- 現在の設定をメモしておいてください
アンインストールする前に、以下のコピーを保存してください:
- エージェントの設定:
/etc/newrelic-infra/newrelic-infra.yml - すべてのオンホストインテグレーションの設定:
/etc/newrelic-infra/integrations.d/
ステップ4で、これらをFleet Controlのリモート設定として再作成します。各設定ファイルと設定がFleet Controlの形式にどのようにマッピングされるかについては、設定の移行を参照してください。
- 既存のinfrastructureエージェントのアンインストール
$sudo apt-get remove newrelic-infra -y$sudo zypper -n remove newrelic-infra$sudo yum remove newrelic-infra -yAgent Controlをインストールしてください。Linuxへのインストレーションガイドに従ってください。Host - Linuxタイプのフリートを選択または作成してください。
Fleet Controlでエージェントの設定を再作成します。Agent ControlがFleet Controlに接続した後、以前の設定を使用して、古いエージェントごとに設定を作成します。ステップ1で保存した設定ファイルを参考にしてください。各設定がFleet Controlの形式にどのようにマッピングされるかについては、設定の移行を参照してください。
作成したばかりのリモート設定をフリートに追加して、新しいデプロイメントを作成します。Agent Controlは、新しい設定をホストに自動的に適用し、各エージェントのOCIパッケージをダウンロードしてインストールします。「最初のデプロイメントの作成と実行」の手順に従ってください。
データが流れていることを確認します。New RelicのUIで、Infrastructure > Hostsに移動します。1~2分以内にホストが表示されます。表示されない場合は、Agent Controlのトラブルシューティングを参照してください。
同じアカウントとホスト名を使用している限り、infrastructureエージェントからのデータを参照するカスタムダッシュボードとアラートは引き続き機能します。エンティティのGUIDは、エージェントの管理方法からではなく、ホスト名とアカウントから派生します。詳細な説明とロールバック手順については、『ホスト移行ガイド』を参照してください。
ウィンドウズ
重要
Agent Controlは、Windows上の既存のエージェントの自動移行をサポートしていません。WindowsホストにNew Relic infrastructureエージェントがすでにインストールされている場合は、Agent Controlをインストールする前に手動でアンインストールする必要があります。APMエージェントはAgent Controlによって管理されないため、インストールしたままにしておくことができます。
- 現在の設定をメモしておいてください
アンインストールする前に、以下のコピーを保存してください:
- エージェントの設定:
C:\Program Files\New Relic\newrelic-infra\newrelic-infra.yml - すべてのオンホストインテグレーションの設定:
C:\Program Files\New Relic\newrelic-infra\integrations.d\
ステップ4で、これらをFleet Controlのリモート設定として再作成します。各設定ファイルと設定がFleet Controlの形式にどのようにマッピングされるかについては、設定の移行を参照してください。
- 既存のinfrastructureエージェントのアンインストール
Add or Remove Programs [プログラムの追加と削除]を開き、New Relic infrastructureエージェントをアンインストールします。または、PowerShellからMSIアンインストーラーを使用してください:
# Replace {PRODUCT_CODE} with the GUID from Add/Remove Programsmsiexec /x {PRODUCT_CODE} /quietAgent Controlをインストールしてください。Windowsへのインストレーションガイドに従ってください。Host - Windowsタイプのフリートを選択または作成してください。
Fleet Controlでエージェントの設定を再作成します。Agent ControlがFleet Controlに接続した後、以前の設定を使用して、古いエージェントごとに設定を作成します。ステップ1で保存した設定ファイルを参考にしてください。各設定がFleet Controlの形式にどのようにマッピングされるかについては、設定の移行を参照してください。
作成したばかりのリモート設定をフリートに追加して、新しいデプロイメントを作成します。Agent Controlは、新しい設定をホストに自動的に適用し、各エージェントのOCIパッケージをダウンロードしてインストールします。「最初のデプロイメントの作成と実行」の手順に従ってください。
データが流れていることを確認します。New RelicのUIで、Infrastructure > Hostsに移動します。1~2分以内にホストが表示されます。表示されない場合は、Agent Controlのトラブルシューティングを参照してください。
同じアカウントとホスト名を使用している限り、infrastructureエージェントからのデータを参照するカスタムダッシュボードとアラートは引き続き機能します。エンティティのGUIDは、エージェントの管理方法からではなく、ホスト名とアカウントから派生します。詳細な説明とロールバック手順については、『ホスト移行ガイド』を参照してください。
エンティティの継続性とダッシュボード
既存のダッシュボード、アラート、およびワークロードは、変更なしで引き続き機能します。
New RelicのエンティティGUIDは、エージェントのインストール方法やプロセスを監視しているものではなく、安定した属性(主にホスト名、CloudInstanceId、アカウントID、およびインテグレーションID)から派生します。Agent Controlが同じホスト上で同じ設定を使用してinfrastructureエージェントを起動すると、エージェントは常に報告していたものと同じ属性を報告します。New Relicはこれらの属性を以前と同じエンティティGUIDに解決するため、次のようになります。
- インフラストラクチャUIのホストエンティティは、同じエンティティです。
- オンホストインテグレーションのエンティティ(MySQL、NGINXなど)は、そのGUIDを保持します。
- それらのエンティティでクエリまたはフィルタリングを行うダッシュボードウィジェット、アラート条件、またはワークロードは、引き続き機能します。
- ゴールデンシグナルの履歴は保持されます。エージェントの実行に長時間の重複やギャップなしに移行が行われた場合、エンティティのメトリクスタイムラインにギャップや重複は発生しません。
KubernetesのNew RelicエンティティGUIDは、エージェントのインストールや管理方法からではなく、クラスタ名とアカウントIDから生成されます。Agent Controlが同じクラスタ名を使用して同じクラスタにinfrastructureエージェントをデプロイすると、クラスタエンティティとすべてのワークロードエンティティは以前と同じGUIDに解決されるため、次のようになります:
- Kubernetes UIのクラスタエンティティは同じエンティティです。
- ワークロードおよびネームスペースエンティティは、そのGUIDを保持します。
- それらのエンティティでクエリまたはフィルタリングを行うダッシュボードウィジェット、アラート条件、またはワークロードは、引き続き機能します。
- 古いエージェントのアンインストールとAgent Controlによる管理対象エージェントの起動との間のギャップが短く保たれていれば、ゴールデンシグナルの履歴は保持されます。
設定の移行
ライセンスキー、APIキー、パスワードなどのシークレットを、Fleet Controlの設定にプレーンテキストとして保存しないでください。代わりに、nr-env:プレフィックスを使用して環境変数として参照してください:
license_key: ${nr-env:NEW_RELIC_LICENSE_KEY}Agent Controlは自動的にNEW_RELIC_LICENSE_KEYをサブエージェントに公開するため、license_keyを明示的に設定する必要はありません;上記の例は参考として示されています。他のシークレットにも同じパターンを使用してください。完全な構文およびサポートされている他のソースについては、変数展開のドキュメントを参照してください。
infrastructureエージェントのメイン設定
infrastructureエージェントのメイン設定(newrelic-infra.yml)は、Fleet Controlのinfrastructureエージェントのサブエージェント設定のcontentブロックに直接マッピングされます。newrelic-infra.ymlで受け入れられるすべてのキーは、そこでも受け入れられます。display_name、custom_attributes、およびlogのようなフィールドはすべて変更されずに引き継がれます。
Agent Controlがinfrastructureエージェントを管理する場合、リモート設定の更新ごとに有効な設定をディスクに書き込みます。エージェントは、そのパスから読み取ります。移行後も古いnewrelic-infra.yml設定はディスクに残りますが、使用されることはありません。
ヒント
管理対象エージェントがデータを正しく報告していることを確認するまで、newrelic-infra.ymlまたはintegrations.d/ファイルを削除しないでください。オリジナルをディスク上に保持することで、ロールバック手順が可能になります。
オンホストインテグレーション
各インテグレーション設定も、正しいエージェントタイプを選択してFleet Controlで作成する必要があります。
エージェントタイプとHelmチャートのマッピング
Agent Controlは、nri-bundle HelmチャートからのエージェントをFleet Controlの個別のエージェントタイプとして管理します。各エージェントタイプには独自のリモート設定があります:
| nri-bundleコンポーネント | Fleet Controlエージェントタイプ |
|---|---|
newrelic-infrastructure、 nri-kube-events 、 kube-state-metrics | インフラストラクチャー・エージェント |
newrelic-prometheus-configurator | Prometheus |
newrelic-logging | Fluent Bit |
nr-k8s-otel-collector | OpenTelemetry |
Helmの値をFleet Control設定に変換する
helm get valuesで取得したHelmの値は、各エージェントタイプのFleet Controlリモート設定の本文になります。たとえば、infrastructureエージェントのvalues.yamlセクション:
newrelic-infrastructure: customAttributes: environment: production resources: limits: memory: 300Miエージェントの設定ブロックの下にそれらと同じキーを持つ、infrastructureエージェントタイプのFleet Controlリモート設定になります。受け入れ可能なキーについては、各エージェントのドキュメントをご覧ください。
シークレットとライセンスキー
Fleet Controlの設定にシークレットをプレーンテキストとして保存しないでください。ライセンスキーは、Agent Controlによってすべての管理対象サブエージェントに自動的に伝播されます。リモート設定で設定する必要はありません。その他のシークレット(APIキー、パスワード)については、nr-env:プレフィックスを使用した環境変数参照を使用してください。詳細については、変数展開のドキュメントを参照してください。
ロールバック
インストレーション後にAgent Controlが期待どおりに機能しない場合は、いつでも安全にスタンドアロンエージェントに戻ることができます。
- Agent Controlのアンインストール:スクリプトはサービスを停止し、パッケージマネージャを検出し、すべてのAgent Controlファイルをパージします。bash$sudo sh /usr/lib/newrelic-agent-control/uninstall.sh
- infrastructureエージェントのパッケージが削除された場合は、再インストールしてください。移行前に削除していない限り、
newrelic-infra.ymlファイルとintegrations.d/ファイルはホスト上に保持されます。
- アドミニストレーター権限でPowerShellを開き、Agent Controlをアンインストールします:スクリプトはサービスを停止し、サービスの登録を削除して、Agent Controlファイルを削除します。PowerShell.exe -ExecutionPolicy Bypass -File "C:\Program Files\New Relic\newrelic-agent-control\uninstall.ps1"
- 削除された場合は、MSIインストーラを使用してinfrastructureエージェントを再インストールします。移行前に削除していない限り、
newrelic-infra.ymlおよびintegrations.d\ファイルはホスト上に保持されます。
- Agent Controlのアンインストール:bash$helm uninstall agent-control-bootstrap -n newrelic
- 移行前に保存したHelm値を使用して、以前のエージェントを再インストールしてください:bash$helm upgrade --install nri-bundle newrelic/nri-bundle -n newrelic --values saved-values.yaml
ロールバック時にもエンティティの継続性は維持されます。エンティティのGUIDは(エージェントの管理方法からではなく)ホスト名またはクラスタ名とアカウントから派生するため、ホストまたはクラスタのエンティティ、およびすべてのインテグレーションのエンティティは、以前にレポートしていたものと同じになります。Dashboards、アラート、およびワークロードはすぐに動作を再開し、UIにギャップや重複した履歴が表示されることはありません。