• /
  • EnglishEspañolFrançais日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

Terraform を使用したAgent Controlセットアップ

|View as Markdown (English)

Terraformを使用したNew Relic Agent Controlは、大規模なエージェントのフリートを管理するための強力で宣言的なソリューションを提供します。TerraformとAgent Controlを併用することで、特に複数のKubernetesクラスタを扱う場合に、インフラストラクチャ全体にNew Relicの計装をデプロイするための、一貫性があり、反復可能で、スケーラブルなアプローチを確保できます。

前提条件

始める前に、次のものがあることを確認してください。

ヒント

Terraformで新しいクラスタをセットアップする際は、Agent Controlのインストレーション時に必ず同じクラスタ名を使用してください。

Kubernetesの互換性

このソリューションと互換性のある Kubernetes バージョンを確認するには、概要の互換性セクションを参照してください。

インストール

clientIdとclientSecretがない場合は、次のNerdGraph API呼び出しを使用して生成します。 これにはNew Relicユーザー キーと組織 ID が必要です。

bash
$
curl -X POST \
>
https://api.newrelic.com/graphql \
>
-H 'Content-Type: application/json' \
>
-H 'x-api-key: [INSERT_USER_API_KEY]' \
>
--data-raw '{"query": "mutation SICreate { systemIdentityCreate(name: \"User Key for Agent Control\" organizationId: \"[INSERT_YOUR_ORG_ID]\") { clientId clientSecret } }"}' \
>
--compressed

コマンドでは、プレースホルダーの値をorganizationIdとユーザー キーに置き換えます。これにより、設定ファイルで使用する必要な資格情報が返されます。

ステップ1: プロジェクトディレクトリを作成する

プロジェクト用のディレクトリを作成し、その中にmain.tfファイルを配置します。ここで、Terraform リソースを定義します。Helm プロバイダーが Terraform ファイルに追加されていることを確認します。

ステップ2: HelmリリースでTerraformを構成する

Agent ControlにNew Relicのチャートを使用するHelmリリースで Terraform スクリプトを構成します。 次の例は基本的な設定を示しています。

provider "helm" {
kubernetes {
config_paths = [
"~/.kube/config"
]
}
}
resource "helm_release" "newrelic" {
name = "agent-control"
repository = "https://newrelic.github.io/helm-charts/"
chart = "agent-control"
namespace = "newrelic"
create_namespace = "true"
values = [
file("./values-newrelic.yaml")
]
}

Terraform スクリプトはvalues-newrelic.yamlファイルを参照することに注意してください。これは、New RelicAgent Control の設定に使用される 設定ファイルです。Agent ControlTerraform スクリプトと同じディレクトリに置く必要はありません。helm_releaseリソースの values 属性内のfile()関数に正しいパスを指定することで、任意の場所から参照できます。

または、 values-newrelic.yamlファイルを Terraform プロジェクト ディレクトリに直接配置すると、 main.tfスクリプトによって自動的に参照されます。

追加の設定が含まれていない基本的なvalues-newrelic.yamlファイルの例を次に示します。

global:
cluster: [YOUR_CLUSTER_NAME]
licenseKey: [YOUR_INGEST_LICENSE_KEY]
agentControlDeployment:
chartValues:
systemIdentity:
organizationId: [ORG_ID]
parentIdentity:
clientId: [YOUR_IDENTITY_CLIENT_ID]
clientSecret: [YOUR_IDENTITY_CLIENT_SECRET]
config:
fleet_control:
# optional
fleet_id: [YOUR_FLEET_ENTITY_GUID]
log:
level: trace

利用可能なすべての構成設定を確認するには、 values-newrelic.yamlを参照してください。

ステップ3: Terraformコマンドを実行する

Terraform を初期化し、計画を確認して、変更を適用します。

bash
$
# Initialize Terraform
$
terraform init
bash
$
# Review the changes before applying
$
terraform plan
bash
$
# Apply the changes to your cluster
$
terraform apply

ステップ 5: インストレーションを確認する

Agent Controlと設定されたエージェントがそれぞれのネームスペースで正しく実行されていることを確認してください。

bash
$
# Check Agent Control pods
$
kubectl get pods -n newrelic
bash
$
# Check pods in the agent namespace, e.g., 'newrelic-agents'
$
kubectl get pods -n newrelic-agents

構成

values-newrelic.yamlファイルでは、複数の監視エージェントを展開するようにAgent Controlを構成できます。 以下に、いくつかのエージェントのデプロイメントを示す例を示します。

  • インフラストラクチャ: New Relicのインフラストラクチャエージェント
  • ログ: Fluent Bitエージェント
  • OpenTelemetry: OpenTelemetry Collector の New Relic ディストリビューション
  • ゲートウェイ: New Relic Pipeline Controlゲートウェイエージェント
agentControlDeployment:
chartValues:
systemIdentity:
organizationId: "****"
parentIdentity:
clientId: [YOUR_IDENTITY_CLIENT_ID]
clientSecret: [YOUR_IDENTITY_CLIENT_SECRET]
config:
agents:
infrastructure:
agent_type: newrelic/com.newrelic.infrastructure:0.1.0
logs:
agent_type: newrelic/io.fluentbit:0.1.0
agent-operator:
agent_type: com.newrelic.k8s_agent_operator:0.1.0
open-telemetry:
agent_type: newrelic/com.newrelic.opentelemetry.collector:0.1.0
gateway:
agent_type: newrelic/com.newrelic.pipeline_control_gateway:0.1.0
agentsConfig:
infrastructure:
chart_version: "*"
chart_values:
newrelic-infrastructure:
enableProcessMetrics: true
logs:
# Ref: `https://github.com/newrelic/helm-charts/tree/master/charts/newrelic-logging`
# Recommended: check and define an explicit chart version (latest stable)
chart_version: "*"
chart_values:
newrelic-logging:
sendMetrics: true
agent-operator:
chart_version: "*"
open-telemetry:
# Ref: `https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/values.yaml`
# Recommended: check and define an explicit chart version (latest stable)
chart_version: "*"
chart_values:
nr-k8s-otel-collector:
receivers.filelog.enabled: false
gateway:
chart_version: "*"
chart_values:
gateway:
autoscaling:
minReplicas: 2
maxReplicas: 10
targetCPUUtilizationPercentage: 70

重要

重要:本番環境では、ワイルドカード ( * ) の代わりに、固定された特定のchart_versionを使用することを強くお勧めします。 これにより、一貫性があり予測可能な更新が保証され、予期しない動作や重大な変更を防ぐことができます。

アンインストール

重要

Terraform 設定からHelmリリース リソースを削除することは破壊的なアクションです。 この変更後にterraform apply実行すると、Terraform によってチャートがアンインストールされ、関連するすべてのリソースが破棄されるため、データが失われる可能性があります。続行する前に、環境に及ぼす潜在的な影響を十分に理解していることを確認してください。

  • 影響を受ける可能性のあるすべての依存関係とサービスを確認します。
  • リリースにリンクされている永続的なデータや設定をバックアップすることを検討してください。
  • このリリースを削除することが必要であり、インフラストラクチャ管理戦略に適合していることを確認します。インフラストラクチャに大幅な変更を加えるときは常に注意を払い、問題が発生した場合に備えて適切なロールバック手順が確立されていることを確認してください。

Agent Controlをアンインストールするには:

  1. main.tfファイルからnewrelic_agent_controlのhelm_releaseリソース ブロックを削除します。
  2. 変更を確認するにはterraform plan実行します。計画の出力を慎重に調べて、意図したリソースのみが削除対象としてマークされていることを確認します。
  3. terraform applyを実行し、実行を確認してリリースをアンインストールします。これにより、計画された変更が実装され、指定された Helm リリースが環境から実質的に削除されます。

アンインストール プロセスを完了するためのプロンプトが表示されたら、実行を確認します。

Copyright © 2026 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.