重要 2024 年 8 月 26 日以降、パブリックまたはプライベートな場所でレガシー ランタイムを使用して新しいモニターを作成することはできなくなります。
2024 年 10 月 22 日をもって、コンテナー化された プライベートミニオン (1 分間あたりの呼出し回数) とそれがサポートする レガシー合成バージョンのサポートは終了 します。 プライベートロケーションモニターのパフォーマンス低下を回避するために、 推奨される移行手順 を確認してください。
New Relicのコンテナ化されたプライベートミニオン(CPM)を使用できます。これらはDockerコンテナ ベースのプライベートミニオンであり、 プライベートロケーション に対して合成モニター を受け入れて実行します。
CPMは、Dockerコンテナシステム環境またはKubernetesコンテナオーケストレーションシステム環境で動作できます。CPMはその環境を自動検出して、適切な動作モードを選択します。
一般的なプライベートミニオンの機能 CPMは仮想マシンではなくコンテナとして動作するため、次のような多くの機能を提供します。
Kubernetes固有の機能 また、CPMはKubernetes環境で次の機能を提供します。
Kubernetes APIと統合して、ランタイムライフサイクル管理をKubernetesに委任します Dockerソケットへの特権アクセスは必要ありません ホストされたオンプレミスのKubernetesクラスターをサポートします DockerやContainerdなどのさまざまなコンテナエンジンをサポートします Helmチャートと構成YAMLを介してデプロイ可能 最適なリソース管理のために、ジョブ(pingチェックと非pingチェック)ベースのリソース割り当てを可能にします NewRelicKubernetesクラスターエクスプローラーを介して提供される可観測性 システム要件と互換性 CPMをホストするには、システムが選択したシステム環境の最小要件を満たしている必要があります。
注意 CPMファイルは変更しないでください。New Relicは、ユーザーが行った変更について責任を負いません。詳細については、アカウント担当者またはNewRelicテクニカルセールス担当者 にお問い合わせください。
docker コンテナのシステム環境要件の互換性
要件
プラットフォーム
OS とアーキテクチャはdockerがサポートするプラットフォームで ある必要があります。
また、Windows ベースのdockerホストで 1分間あたりの呼出回数 を動作させるには、Linux コンテナーを実行するようにdockerを構成する必要があります。
メモリー
CPUコアあたり2.5GiBのRAM(専用)
ディスクサイズ
ホストあたり最低50GiB
ディスクパフォーマンス(IOPS)
Ping: 無視できるScripted API: 7 Simple browser: 27 Scripted browser: 28
AWS EC2 m5.xlargeインスタンスでhttps://newrelic.com の書き込みスループットを監視することで測定:AL2、gp2ストレージクラス、50 GiBルートボリューム、デフォルトのDocker CPMインストール 、および一度に1つのモニターを1-に設定分の頻度。複数のモニターを実行すると、効率が向上することが期待されます。これらの値は、多くの要因に応じて、自分の値よりも高くなることも低くなることもあります。
DockerCPMのベースラインは0.5IOPSで、モニタージョブは実行されていません。
ディスクファイルシステム
NFSv4.1以降(NFSを使用している場合)
Dockerバージョン
Docker エンジンのバージョンは17.12.1-ce から始まり、バージョン 25 までです。
プライベートロケーションキー
秘密のロケーションキー が必要です
注意 docker 1分間あたりの呼発信回数は、重大な変更のため、 docker Engine 26.0以降をサポートしていません。 docker 26+ のサポートを求めているお客様は、外形監視 Job Manager に移行する必要があります。
注意 Docker CPMは、AWS ECS、Docker Swarm、Apache Mesos、AzureContainerInstancesなどのコンテナーオーケストレーターで使用するようには設計されていません。Docker CPMをコンテナーオーケストレーターで実行すると、それ自体がコンテナーオーケストレーターであるため、予期しない問題が発生します。コンテナオーケストレーションを使用している場合は、 KubernetesCPM要件 をご覧ください。
Kubernetesコンテナ オーケストレーション システム環境要件 (1分間あたりの呼発信回数 v3.0.0 以降)の互換性
要件
オペレーティング·システム
Linux kernel: 3.10以上macOS: 10.11 以上
コンテナ化されたプライベートミニオンを含む Linux コンテナは、Linux K8s ノード上でのみ実行されます。
プロセッサー
最新のマルチコアCPU
ミニオンポッド
CPU (vCPU/Core): 0.5~0.75 Memory: 800Mi ~ 1600Mi
Minionポッドに割り当てられたリソースは、ユーザーが構成できます。
ランナーポッド
CPU (vCPU/Core): 0.5~1 Memory: 1250Mi ~ 3000Mi
スクリプト化されたAPIチェックの場合、1250Miが2500Miの制限で要求されます。
単純なブラウザまたはスクリプト化されたブラウザチェックの場合、3000Miの制限で2000Miが要求されます。
追加の考慮事項:
ランナーポッドに割り当てられたリソースは、ユーザーが構成することはできません。
CPUとメモリの両方の最大制限要求リソース比率は2です。
ディスクサイズ
Root volume: 最小 50 GiB (ノード + PV) Persistent volume (PV): 最小 20 GiB
ReadWriteOnce
(RWO)PVがミニオンに提供される場合、暗黙のノードアフィニティが確立され、ミニオンとランナーコンテナが同じノードでスケジュールされるようになります。これは、ミニオンと関連するランナーがPVにアクセスできるようにするために必要です。これは、RWOPVにアクセスできるのはクラスター内の単一のノードのみであるためです。
ディスクパフォーマンス(IOPS)
Ping: 無視できるScripted API: 11 Simple browser: 33 Scripted browser: 31
gp2 ストレージクラス、50 GiBルートボリューム、RWOアクセスモードの20 GiB PV / PVC、デフォルトのKubernetesCPMは、Helmを介してインストール され、1分の頻度に設定された時間に1つのモニターがインストールされます。複数のモニターを実行すると、効率が向上することが期待されます。これらの値は、多くの要因に応じて、自分の値よりも高くなることも低くなることもあります。
KubernetesCPMのベースラインは3.0IOPSで、モニタージョブは実行されていません。
ディスクファイルシステム
NFSv4.1以降(NFSを使用している場合)
Kubernetesバージョン
KubernetesクラスタがKubernetes v1.15 をサポートすることをお勧めします。
注意 Kubernetes v1.21 以降の場合は、ミニオン リリースv3.0.61 以降を使用します。
プライベートロケーションキー
秘密のロケーションキー が必要です
兜
EOL通知 2022 年 8 月以降、オリジナルのプライベート ミニオン Helm チャート URL を含むいくつかの機能のサポートを中止します。この移行を簡単に準備する方法など、詳細については、サポート フォーラムの投稿 を参照してください。
お使いのOS用のHelmv3のインストール手順に 従ってください。
Kubectl
お使いのOSのKubectlのインストール手順に 従ってください。
バージョン、依存関係、各ミニオンで開始するランナーポッドの数のデフォルト値、永続ボリュームアクセスモードなどを表示するには、以下のヘルプと例を表示する を参照してください。
プライベートロケーションキー CPMを起動する前に、 秘密のロケーションキー が必要です。CPMはキーを使用して、New Relicに対して認証し、そのプライベートロケーションに関連付けられたモニターを実行します。
既存のプライベートロケーションのキーを見つけるには:
one.newrelic.com > Synthetic monitoring > Private locations に移動します。Private locations インデックスで、1 分間あたりの発信回数を割り当てるプライベート ロケーションを見つけます。プライベートロケーションに関連付けられたキーをキーとともにメモします アイコン。 サンドボックスとDockerの依存関係 サンドボックスとDockerの依存関係は、Dockerコンテナシステム環境のCPMに適用できます。
CPMはDockerで実行され、Dockerをサンドボックステクノロジーとして活用できます。これにより、モニターの実行が完全に分離され、セキュリティ、信頼性、再現性が向上します。スクリプトモニターまたはブラウザーモニターが実行されるたびに、CPMはランナーと呼ばれる新しいDockerコンテナーを作成して実行します。
ミニオンコンテナーは、追加のランナーコンテナーを生成するために、Dockerエンジンと通信するように構成する必要があります。次に、生成された各コンテナは、ミニオンコンテナが関連付けられているプライベートロケーションで実行されている合成モニター に関連付けられたチェックを実行するために使用されます。
起動時に2つの重要な依存関係があります。サンドボックスを有効にするには、次のことを確認してください。
書き込み可能で実行可能なディレクトリは/tmp
にマウントされます。書き込み可能なディレクトリは、CPMに書き込みたい任意のディレクトリにすることができますが、New Relicは、作業を簡単にするためにシステム独自の/tmp
を推奨しています。
書き込み可能なDockerUNIXソケットは、 /var/run/docker.sock
またはDOCKER_HOST
環境変数 にマウントされます。詳細については、Dockerのデーモンソケットオプション を参照してください。
注意 ホスト上のコア数によって、1分間あたりの呼発信回数がホスト上で同時に実行できるランナー コンテナの数が決まります。 メモリ要件はランナー コンテナの予想される数に合わせて調整されるため、リソースの競合を避けるためにnot running multiple CPMs on the same host を推奨します。
サンドボックス化とrootまたは非rootユーザーとしての実行の詳細については、セキュリティ、サンドボックス化、および非rootユーザーとしての実行を 参照してください。
CPMバージョンのインストールと更新 CPMのインストールと更新の両方で、同じコマンドを使用して、CPMDockerイメージがホストされているQuay.io リポジトリから最新のDockerイメージをプルします。すべてのリリースのリストについては、 quay.io / repository / newrelic/synthetics-minion にアクセスしてください。
CPMイメージはDockerHub でもホストされます。hub.docker.com/r/newrelic/synthetics-minion/tags にアクセスしますすべてのリリースのリストについては。
ローカルイメージリポジトリでイメージをホストしていない限り、Dockerがsynthestics-minionおよびsynthetics-minion-runnerイメージをプルするには、ファイアウォールを介したquay.io
またはdocker.io
への接続を許可する必要があります。「ランナー」イメージは、synthetics-minionコンテナーの起動時に自動的にプルされます。ローカルリポジトリとランナーレジストリエンドポイントを設定する方法の詳細については、 Docker環境構成 とKubernetes環境構成 を参照してください。
CPMを開始します CPMを開始するには、該当するDockerまたはKubernetesの手順に従います。
docker 起動手順プライベートロケーションキー を見つけます。
サンドボックス化のためにDocker依存関係 を有効にし、システムにCPMをインストール したことを確認してください。
システムに適したスクリプトを実行します。次の例の/tmp
と/var/run/docker.sock
の一般的なデフォルトを、システムに合わせて調整します。
Linux / macOS:
> --name YOUR_CONTAINER_NAME \
> -e "MINION_PRIVATE_LOCATION_KEY=YOUR_PRIVATE_LOCATION_KEY" \
> -v /var/run/docker.sock:/var/run/docker.sock:rw \
> --restart unless-stopped \
> quay.io/newrelic/synthetics-minion:latest
ウィンドウズ:
$ --name YOUR_CONTAINER_NAME ^
$ -e "MINION_PRIVATE_LOCATION_KEY=YOUR_PRIVATE_LOCATION_KEY" ^
$ -v /var/run/docker.sock:/var/run/docker.sock:rw ^
$ --restart unless-stopped ^
$ quay.io/newrelic/synthetics-minion:latest
ミニオンコンテナのログを表示します。
$ docker logs --follow YOUR_CONTAINER_NAME
Synthetics Minion is ready and servicing location YOUR_PRIVATE_LOCATION_LABEL
のようなメッセージが表示されると、CPMが起動し、その場所に割り当てられたモニターを実行する準備ができています。
Kubernetes の起動手順EOL通知 2022 年 8 月以降、オリジナルのプライベート ミニオン Helm チャート URL を含むいくつかの機能のサポートを中止します。この移行を簡単に準備する方法など、詳細については、サポート フォーラムの投稿 を参照してください。
プライベートロケーションキー を見つけます。
KubernetesクラスターでCPMの名前空間を設定します。
$ kubectl create namespace YOUR_NAMESPACE
NewRelicHelmリポジトリからHelmチャートをコピーします。
次のHelmコマンドを使用してCPMをインストールします。
CPMの新規インストールの場合:
$ helm install YOUR_CPM_NAME YOUR_REPO_NAME/synthetics-minion -n YOUR_NAMESPACE --set synthetics.privateLocationKey = YOUR_PRIVATE_LOCATION_KEY
既存のCPMインストールを更新するには:
$ helm upgrade YOUR_CPM_NAME YOUR_REPO_NAME/synthetics-minion -n YOUR_NAMESPACE --set synthetics.privateLocationKey = YOUR_PRIVATE_LOCATION_KEY
ミニオンポッドが稼働しているかどうかを確認します。
$ kubectl get -n YOUR_NAMESPACE pods
各ポッドのstatus
属性がrunning
として表示されると、CPMが起動し、プライベートロケーションに割り当てられたモニターを実行する準備が整います。
CPMを停止または削除します Dockerコンテナシステム環境では、Docker stop
プロシージャを使用して、CPMの実行を停止します。Kubernetesコンテナオーケストレーションシステム環境では、Kubernetes delete
プロシージャを使用してCPMの実行を停止します。
docker 停止手順Dockerコンテナーは、コンテナー名またはコンテナーIDのいずれかで停止 できます。
Linux、macOS、およびWindowsのコンテナー名の停止:
$ docker stop YOUR_CONTAINER_NAME
$ docker rm YOUR_CONTAINER_NAME
Linux / macOSのコンテナID停止:
例では、コンテナは停止され、削除されます。コンテナのみを停止するには、 docker rm $CONTAINER_ID
を省略します。
$ CONTAINER_ID = $( docker ps -aqf name = YOUR_CONTAINER_NAME )
$ docker stop $CONTAINER_ID
WindowsのコンテナID停止:
例では、コンテナは停止され、削除されます。コンテナのみを停止するには、 docker rm $CONTAINER_ID
を省略します。
$ FOR /F "tokens=*" %%CID IN ( 'docker ps -aqf name=YOUR_CONTAINER_NAME' ) do ( SET CONTAINER_ID = %%CID )
$ docker stop %CONTAINER_ID%
$ docker rm %CONTAINER_ID%
Kubernetes 削除手順削除するミニオン ポッドのMINION_POD_INSTALLATION_NAME
を取得します。
$ helm list -n YOUR_NAMESPACE
ミニオンポッドを削除します。
$ helm uninstall -n YOUR_NAMESPACE MINION_POD_INSTALLATION_NAME
KubernetesクラスタでCPM用に設定されたネームスペースを削除します。
$ kubectl delete namespace YOUR_NAMESPACE
ヘルプと例を表示する 必要に応じて、次のオプションを使用してください。
最も一般的に使用される実行オプションのリストをコマンドラインインターフェイスで直接取得するには、 show help
コマンドを実行します。
CPMの使用例と、使用可能なすべての実行オプションのリストを表示するには、次のコマンドを実行します。
$ docker run quay.io/newrelic/synthetics-minion:latest help
Dockerログを追跡し、モニターの状態を確認するには、 Containerized private minion(CPM)のメンテナンスと監視 を参照してください。
Kubernetesコンテナオーケストレーションシステム環境のCPMの場合、次のHelm show
コマンドを使用して、それぞれchart.yaml
とvalues.yaml
を表示できます。
$ helm show chart YOUR_REPO_NAME/synthetics-minion
$ helm show values YOUR_REPO_NAME/synthetics-minion
ライセンス情報を表示する CPMで使用するオープンソースソフトウェアのライセンス情報を表示するには、 LICENSE
コマンドを実行します。
次のコマンドを実行して、CPMバージョン2.2.27以降のライセンス情報を表示します。
$ docker run quay.io/newrelic/synthetics-minion:latest LICENSE
一部のオープンソースソフトウェアは複数のソフトウェアライセンスの下にリストされており、その場合は、使用することを選択したライセンスをリストしています。当社のライセンス情報は、当社のライセンスドキュメント でも入手できます。
CPMを構成する カスタム ノード モジュールを使用してコンテナ化されたプライベートミニオンを構成したり、リリース間でデータを保存したり、環境変数を使用したりできます。 詳細については、 「1分間の呼発信回数の設定」を 参照してください。
ネットワーク DockerとKubernetesの両方で、CPMとそのランナーコンテナーはホストからネットワーク設定を継承します。Dockerコンテナシステム環境でのこの例については、 Dockerサイト を参照してください。
ランナーコンテナごとに新しいブリッジネットワークが作成されます。つまり、起動時にCPMコンテナーに渡される--network
や--dns
などのネットワークコマンドオプション(Dockerコンテナーシステム環境でのDocker実行コマンドなど)は、ランナーコンテナーによって継承または使用されません。
これらのネットワークが作成されると、デーモン用に構成されたデフォルトのIPアドレスプールからプルされます。Dockerコンテナシステム環境でのこの例については、 Dockerサイト を参照してください。
通常、ランナーネットワークは、チェックが完了した後に削除されます。ただし、チェックの実行中にCPMが終了した場合、または別の予期しない状況で終了した場合、これらのネットワークは孤立する可能性があります。これにより、Dockerデーモンで使用可能なIPアドレススペースが使い果たされる可能性があります。
これが発生した場合、新しいランナーコンテナを作成しようとすると、CPMログにINTERNAL ENGINE ERROR code: 31
エントリが表示されることがあります。Dockerコンテナシステム環境でのみこれらをクリーンアップするには、 docker network prune
を実行します。
セキュリティ、サンドボックス化、および非ルートとしての実行 デフォルトでは、CPM内で実行されているソフトウェアはroot
ユーザー権限で実行されます。実行はサンドボックス化されるため、これはほとんどのシナリオに適しています。
Dockerコンテナシステム環境の場合:CPMがモニターを実行するために生成するコンテナーによって使用されるデフォルトのAppArmorプロファイルを変更するには、環境変数 MINION_RUNNER_APPARMOR
(CPMバージョン3.0.3)を参照してください。以上)またはMINION_DOCKER_RUNNER_APPARMOR
(v3.0.2までのCPMバージョン)。
root以外のユーザーとしてCPMを実行するには、追加の手順が必要です。
Docker の非 root ユーザーとして実行する詳細については、セキュリティ およびAppArmorセキュリティプロファイル に関するDockerの公式ドキュメントを参照してください。
ご使用の環境でCPMをroot以外のユーザーとして実行する必要がある場合は、次の手順に従ってください。次の例では、root以外のユーザーはmy_user
です。
my_user
がホストでDockerエンジンを使用できることを確認します。
my_user
が"docker"
システム グループに属して いることを確認します。ブリッジ ネットワークを作成するには、 docker.sock
への限定されたルート アクセスが引き続き必要です。
また
Docker TCPソケットオプション を有効にし、 DOCKER_HOST
環境変数 をCPMに渡します。
my_user
に、CPMに渡されたすべてのディレクトリとボリュームに対する読み取り/書き込み権限があることを確認します。これらの権限を設定するには、 chmod
コマンドを使用します。
実行コマンドで使用するmy_user
のuid
を取得します: id -u my_user
。
これらの条件が満たされたら、CPMを起動するときにオプション"-u <uid>:<gid>"
を使用します。
$ docker run .. . -u 1002 .. .
また
$ docker run .. . -u 1002 -e DOCKER_HOST = http://localhost:2375 .. .
Dockerイメージリポジトリ 単一のCPMDockerイメージは、Dockerコンテナーシステム環境とKubernetesコンテナーオーケストレーションシステム環境の両方にサービスを提供します。Dockerイメージはquay.ioでホストされます。Dockerイメージが最新であることを確認するには、 quay.io newrelic/synthetics-minionリポジトリ を参照してください。
CPM接続に関する追加の考慮事項 繋がり
説明
インターネットにアクセスできないCPM
CPMはインターネットにアクセスしなくても動作できますが、いくつかの例外があります。パブリックインターネットヘルスチェックは、Dockerコンテナシステム環境の場合はMINION_NETWORK_HEALTHCHECK_DISABLED
、Kubernetesコンテナオーケストレーションシステム環境の場合はsynthetics.minionNetworkHealthCheckDisabled
という名前の環境変数 を使用して無効にできます。CPMは"synthetics-horde.nr-data.net"
ドメインに接続できる必要があります。これは、New Relicにデータを報告し、実行するモニターを受信するために必要です。これが問題であるかどうか、および例外を設定する方法については、ネットワーク管理者に問い合わせてください。
プロキシを介して合成と通信する
プロキシによるNewRelicとの通信を設定するには、次の名前の環境変数 を使用します MINION_API_PROXY*.
起動時に渡された引数
これは、Dockerコンテナ環境にのみ適用されます。起動時にCPMコンテナに渡された引数は、CPMによって生成されたコンテナには渡されません。Dockerには、コンテナーの「継承」または「階層」の概念がなく、CPMからモニター実行コンテナーに渡される構成をコピーしません。それらの間で共有される唯一の構成は、 Dockerデーモン レベルで設定されたものです。