概要
Agent Controlアップデートを含むエージェントのライフサイクル全体をシームレスかつ一元的に管理できる方法を提供します。 各ホストまたはクラスタ上のエージェントを手動で更新する代わりに、Fleet Controlで希望する状態を定義するだけで、Agent Controlが残りの処理を自動的に行います。
Agent Controlは、Fleet Controlのデプロイメントの一部として自身をアップグレードできるため、個別のアップグレードキャンペーンなしで最新の状態を維持できます。フリート設定でバージョンを変更することで、管理対象のエージェントを更新します。
New Relic Control を使用したアップデートプロセスの主なメリット
- 集中制御:単一の場所からフリート全体のエージェントのバージョンをすべて管理します。
- 自動化:新しいバージョンを定義すると、デプロイメントと調整プロセスが自動的に処理されます。
- 保護されたインストール:ホストでは、Agent Controlは実行中のバージョンを置き換える前に新しいバージョンを確認します。Kubernetesでは、新しいポッドが正常になるまで、ローリングアップデートによって古いポッドが実行され続けます。Agent Controlのアップグレードが失敗した場合を参照してください。
重要
新しいバージョンが実行されると、Agent Controlはアップグレードを自動的にロールバックしません。何が保護され、何が保護されないかについては、Agent Controlのアップグレードが失敗した場合を参照してください。
管理対象エージェントの更新
Agent Controlで管理されているエージェントは、Fleet Control内のリモート設定でバージョンを変更するだけで簡単にアップデートできます。この宣言型アプローチにより、車両全体にわたって一貫性と信頼性が確保されます。
- 設定を編集する: Fleet Controlでフリートの設定に移動します。
- バージョンを更新する:更新するエージェント (例:
infrastructure) を見つけて、chart_version値を新しいバージョン番号に変更します。 - 変更をデプロイする:更新された設定を保存してデプロイします。
Agent Controlは変更を自動的に検知し、中断のないローリングアップデートを実行します。これにより、古いエージェントを置き換える前に、新しいエージェントが正常に動作していることを確認します。
例: New Relicインフラストラクチャ エージェントのアップグレード
この例では、インフラストラクチャエージェントを新しいバージョンにアップグレードする方法を示します。
# Remote configuration for a single agentchart_version: "5.0.109" # Change this valuechart_values: newrelic-infrastructure: enableProcessMetrics: trueFleet Controlを使用したAgent Controlのアップグレード方法
Fleet Controlでデプロイメントをプッシュすると、Fleet Controlは、そのフリート内の管理対象エンティティで利用可能なAgent Controlの新しいバージョンがあるかどうかを確認します。利用可能な場合は、アップグレードがデプロイメントに含まれます。
- Agent Controlチームは、新しいバージョンをリリースチャネルにリリースします。
- Fleet Controlでデプロイメントをプッシュします。Agent Controlのアップグレードがそれに含まれます。
- Agent Controlは自身をアップグレードし、管理対象エージェントは要求した設定の変更のみを受け取ります。
Agent Controlはデプロイメントの一部としてアップグレードされ、デプロイメント間ではアップグレードされません。このプロセスのデプロイメント側については、Fleet ControlドキュメントのAgent Controlの自動アップグレードをご覧ください。
重要
一般提供前の限定プレビューまたはパブリックプレビュー中にAgent Controlをインストールした場合、お使いのバージョンはFleet Controlを通じたアップグレードをサポートしていない可能性があります。その場合は、たとえばガイド付きインストールを再度実行するなどして、Agent Controlを手動で最新バージョンに1回アップグレードしてください。その後、Fleet Controlは将来のアップグレードをデプロイメントに含めることができるようになります。
ホストでは、アップグレードによってAgent Controlが再起動されます。まず管理対象のエージェントを停止し、新しいバージョンが実行された後に再度起動するため、これらのエージェントからのデータには短いギャップが生じます。Kubernetesでは、FluxがローリングアップデートでAgent Controlのポッドを置き換え、管理対象のエージェントは実行され続けます。
リリースチャンネル
リリースチャンネルは、サブスクライブするAgent Controlリリースのトラックです。各チャンネルには、リリースが利用可能になってからの期間や実績などの要因に基づいて、新しいバージョンがいつ到着するかに関する独自のポリシーがあります。
Fleet Controlは、Rapidという1つのチャネルを提供します。これには、本番環境対応の最新のAgent Controlリリースが含まれています。新しいバージョンは、Fleet Controlでの次回のデプロイメント時に提供されます。これは、Kubernetes上のAgent Controlのアップグレードの仕組みと同じです。別のチャネルを選択したり、Fleet Controlがアップグレードするバージョンを選択したりすることはできません。
Agent Controlアップグレード
すべてのプラットフォームで、Fleet Controlを通じてAgent Controlをアップグレードします。「Fleet Controlを使用したAgent Controlのアップグレード方法」で説明されているように、アップグレードはデプロイメントの一部です。
Kubernetes
次の手順は、 Kubernetesクラスタ上で実行されているAgent Controlに適用されます。
Fleet ControlによるAgent Controlのアップグレード方法で説明されているように、Fleet ControlはデプロイメントにAgent Controlのアップグレードを含めます。新しいバージョンが利用可能な場合、デプロイメントページにAgent Controlが更新されるという通知が表示されます。設定でAgent Controlのバージョンを変更する必要はありません。これにより、クラスタ上で実行されているAgent Controlは、最新の機能、修正、およびセキュリティパッチが適用された最新の状態に保たれます。
アップグレードにより、クラスタ上のAgent Controlポッドのローリングアップデートが開始されます。Kubernetesの組み込みのヘルスチェックにより、中断のないアップグレードのために古いバージョンが終了する前に、新しいバージョンが正常であることが確認されます。
LinuxおよびWindowsホスト
LinuxおよびWindowsホストでは、Fleet ControlはデプロイメントにAgent Controlのアップグレードも含めます。フリートの設定でAgent Controlのバージョンを変更する必要はありません。
注意
Fleet Controlは、ホスト上のAgent Controlをアップグレードするための手段です。パッケージマネージャ(apt-get、zypper、またはyum)を使用してアップグレードしたり、インストレーションスクリプトを再実行したりすることは推奨されません。
管理対象エージェント(infrastructureエージェント、NRDOT)は、Kubernetes上と同じ方法でアップグレードされます。フリート設定で目的のエージェントバージョンを更新し、変更をデプロイしてください。
Agent Controlのアップグレードが失敗した場合
Agent Controlが失敗したアップグレードを処理する方法は、プラットフォームによって異なります:
- LinuxおよびWindowsホスト:Agent Controlは自身を置き換える前に、新しいバージョンを一度実行して、起動、設定の読み込み、およびFleet Controlへの接続が可能であることを確認します。そのチェックが失敗した場合、またはダウンロードや署名チェックが失敗した場合、現在のバージョンが引き続き実行され、デプロイメントはFAILEDとして表示されます。別の目的のバージョンをデプロイすると、すぐに新しい試行が開始されます。署名検証に失敗するパッケージなど、原因が永続的である場合、原因を修正するか別のバージョンをデプロイするまで、アップグレードは失敗し続け、デプロイメントはFAILEDのままになります。チェックは入れ替えの前に実行されるため、チェックに合格した後に破損するバージョンを検出することはできません。
- Kubernetes:新しいポッドの準備ができるまで、ローリングアップデートによって古いAgent Controlのポッドが実行され続けます。
新しいバージョンが実行されると、Agent Controlが自動的に以前のバージョンにロールバックすることはありません。不良バージョンから回復するには、Fleet Controlが次のデプロイメントに含める修正されたバージョンに進んでください。何が失敗したかを確認するには、Fleet Controlでデプロイメントの詳細を確認してください。Agent Controlの自動アップグレードもご覧ください。
Agent Control起動、停止、再起動
Agent Controlインストレーション スクリプトの実行後に自動的に開始されます。
Linux
Linuxの場合は、initシステムに適したコマンドを使用していることを確認してください。該当するstatus stop start restart選択してください。
systemdの例を以下に示します。
$sudo systemctl <start|stop|restart|status> newrelic-agent-controlウィンドウズ
PowerShell でアドミニストレーター権限を使用して次のコマンドを実行します。
Start-Service -Name newrelic-agent-controlStop-Service -Name newrelic-agent-controlRestart-Service -Name newrelic-agent-controlGet-Service -Name newrelic-agent-control