シンセティック モニタリング ジョブ マネージャーは、 Docker コンテナー ベースのリソースであり、 プライベート ロケーション に割り当てられたシンセティック モニター を受け入れて実行します。
ジョブ マネージャーは、Docker コンテナー システム環境または Kubernetes コンテナー オーケストレーション システム環境で動作できます。ジョブ マネージャーは、その環境を自動検出して、適切な動作モードを選択します。
Synthetics ジョブ マネージャーの機能 Synthetics ジョブ マネージャーは仮想マシンではなくコンテナーとして動作するため、インストール 、開始 、およびジョブ管理とオーケストレーションの更新 を簡素化しました。また、いくつかの追加機能も備えています。
Kubernetes固有の機能 ジョブ マネージャーには、いくつかの追加の Kubernetes 固有の機能が導入されています。
Kubernetes CronJob リソースを使用して非 ping モニターを実行します Docker ソケットへの特権アクセスは必要ありません ホストされたオンプレミスのKubernetesクラスターをサポートします DockerやContainerdなどのさまざまなコンテナエンジンをサポートします Helmチャートと構成YAMLを介してデプロイ可能 最適なリソース管理のために、設定可能なジョブ ランタイム (ping、API、およびブラウザー) ベースのリソース割り当てを許可します。 NewRelicKubernetesクラスターエクスプローラーを介して提供される可観測性 システム要件と互換性 Synthetics ジョブ マネージャーをホストするには、システムが選択したシステム環境の最小要件を満たしている必要があります。
注意 Synthetics ジョブ マネージャー ファイルは変更しないでください。New Relic は、お客様が行ういかなる変更についても責任を負いません。詳細については、アカウント担当者または New Relicテクニカルセールス担当者 にお問い合わせください。
docker コンテナのシステム環境要件の互換性
要件
オペレーティング·システム
Linux kernel: 3.10以降macOS: 10.11 以降Windows: Windows 10 64 ビット以降
また、Synthetics ジョブ マネージャーが Windows システムで動作するようにするには、Linux コンテナーを実行するように Docker を構成する必要があります。
プロセッサー
最新のマルチコアAMD64またはx86_64 CPU
メモリー
CPU コアあたり 3.256 GiB の RAM (専用)
ディスクサイズ
ホストあたり最低50GiB
ディスクファイルシステム
NFSv4.1以降(NFSを使用している場合)
Dockerバージョン
Docker 17.12.1-ce 以上
プライベートロケーションキー
秘密のロケーションキー が必要です
注意 Docker Synthetics ジョブ マネージャーは、AWS ECS、Docker Swarm、Apache Mesos、Azure Container Instances などのコンテナー オーケストレーターで使用するようには設計されていません。コンテナー オーケストレーターで Docker 合成ジョブ マネージャーを実行すると、それ自体がコンテナー オーケストレーターであるため、予期しない問題が発生します。コンテナー オーケストレーションを使用している場合は、 Kubernetes 合成ジョブ マネージャーの要件 を参照してください。
Kubernetes コンテナ オーケストレーション システム環境要件の互換性
要件
オペレーティング·システム
Linux kernel: 3.10以上macOS: 10.11 以上
ジョブ マネージャーを含む Linux コンテナーは、Linux K8s ノード上でのみ実行されます。
プロセッサー
最新のマルチコアCPU
Synthetics ジョブ マネージャー ポッド
CPU (vCPU/Core): 0.5~0.75 Memory: 800Mi ~ 1600Mi
Synthetics ジョブ マネージャー ポッドに割り当てられたリソースは、ユーザーが構成できます。
Ping ランタイム ポッド
CPU (vCPU/Core): 0.5~0.75 Memory: 500Mi 最大 1Gi
追加の考慮事項:
ping ランタイム ポッドに割り当てられたリソースは、ユーザーが構成できます。 CPUとメモリの両方の最大制限要求リソース比率は2です。 Node.js API ランタイム ポッド
CPU (vCPU/Core): 0.5~0.75 Memory: 1250Miから2500Miまで
追加の考慮事項:
Node.js API ランタイム ポッドに割り当てられたリソースは、ユーザーが構成できます。 CPUとメモリの両方の最大制限要求リソース比率は2です。 Node.js ブラウザー ランタイム ポッド
CPU (vCPU/Core): 1.0から1.5までMemory: 2000マイルから3000マイルまで
追加の考慮事項:
Node.js ブラウザー ランタイム ポッドに割り当てられたリソースは、ユーザーが構成できます。 CPUとメモリの両方の最大制限要求リソース比率は2です。 ディスクサイズ
Root volume: 最低50GiB
ディスクファイルシステム
NFSv4.1以降(NFSを使用している場合)
Kubernetesバージョン
Kubernetes v1.21 以降が必要です。
プライベートロケーションキー
秘密のロケーションキー が必要です
兜
お使いのOS用のHelmv3のインストール手順に 従ってください。
Kubectl
お使いのOSのKubectlのインストール手順に 従ってください。
バージョン、依存関係、各シンセティック ジョブ マネージャーで起動するランタイム ポッドの数のデフォルト値などを表示するには、以下のヘルプと例を表示する を参照してください。
プライベートロケーションキー 合成ジョブ マネージャーを起動する前に、 秘密の場所のキー が必要です。Synthetics ジョブ マネージャーはキーを使用して New Relic に対して認証し、そのプライベートな場所に関連付けられたモニターを実行します。
既存のプライベートロケーションのキーを見つけるには:
one.newrelic.com > Synthetic monitoring > Private locations に移動します。Private locations インデックスで、外形監視ジョブ マネージャーを割り当てるプライベート ロケーションを見つけます。プライベートロケーションに関連付けられたキーをキーとともにメモします アイコン。 合成ジョブ マネージャーのインストール、更新、および構成 同じホスト内で複数の Docker プライベート ロケーション コンテナーを実行している場合、ポートの競合が発生します。このポートの競合を回避するには、ジョブ マネージャーのセットアップを開始するときに必ず次のことを行ってください。
異なるホストでジョブ マネージャーと CPM を実行します。 各ジョブ マネージャーを個別のホストで実行します。 各 CPM を異なるホストで実行します。 Synthetics ジョブ マネージャーのイメージは、 Docker Hub でホストされています。hub.docker.com/r/newrelic/synthetics-job-manager/tags に移動しますすべてのリリースのリストについては。
ローカル イメージ リポジトリでイメージをホストしている場合を除き、Docker が合成ジョブ マネージャーと合成ランタイム イメージをプルできるように、ファイアウォールを介したdocker.io
への接続を許可する必要があります。Synthetics ジョブ マネージャーが起動すると、ランタイム イメージが自動的にプルされます。ローカル リポジトリとランナー レジストリ エンドポイントを設定する方法の詳細については、 Docker 環境の構成 とKubernetes 環境の構成 を参照してください。
高度な構成設定の詳細については、 synthetics ジョブ マネージャーの構成 を参照してください。
合成ジョブ マネージャーを開始する 以下は、ジョブ マネージャーを開始するための該当する Docker または Kubernetes の手順です。
docker 起動手順プライベートロケーションキー を見つけます。
サンドボックス用のDocker 依存関係 が有効になっており、システムに合成ジョブ マネージャーがインストールされ ていることを確認してください。
システムに適したスクリプトを実行します。システムに合わせて、次の例の共通のデフォルト/var/run/docker.sock
を調整します。
Linux / macOS:
> --name YOUR_CONTAINER_NAME \
> -e "PRIVATE_LOCATION_KEY=YOUR_PRIVATE_LOCATION_KEY" \
> -v /var/run/docker.sock:/var/run/docker.sock:rw \
> --restart unless-stopped \
> newrelic/synthetics-job-manager:latest
ウィンドウズ:
$ --name YOUR_CONTAINER_NAME ^
$ -e "PRIVATE_LOCATION_KEY=YOUR_PRIVATE_LOCATION_KEY" ^
$ -v /var/run/docker.sock:/var/run/docker.sock:rw ^
$ --restart unless-stopped ^
$ newrelic/synthetics-job-manager:latest
ミニオンコンテナのログを表示します。
$ docker logs --follow YOUR_CONTAINER_NAME
Kubernetes の起動手順プライベートロケーションキー を見つけます。
Kubernetes クラスターで合成ジョブ マネージャーの名前空間を設定します。
$ kubectl create namespace YOUR_NAMESPACE
NewRelicHelmリポジトリからHelmチャートをコピーします。
次の Helm コマンドを使用して、synthetics ジョブ マネージャーをインストールします。
Synthetics ジョブ マネージャー ポッドが稼働しているかどうかを確認します。
$ kubectl get -n YOUR_NAMESPACE pods
各ポッドのstatus
属性がrunning
として表示されると、Synthetics ジョブ マネージャーが起動し、プライベート ロケーションに割り当てられたモニターを実行する準備が整います。
Synthetics ジョブ マネージャーを停止または削除する Docker コンテナー システム環境で、Docker stop
プロシージャーを使用して、synthetics ジョブ マネージャーの実行を停止します。Kubernetes コンテナー オーケストレーション システム環境で、Kubernetes delete
手順を使用して、合成ジョブ マネージャーの実行を停止します。
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 削除手順削除する外形監視ジョブ マネージャー ポッドのJOB_MANAGER_POD_INSTALLATION_NAME
を取得します。
$ helm list -n YOUR_NAMESPACE
ミニオンポッドを削除します。
$ helm uninstall -n YOUR_NAMESPACE JOB_MANAGER_POD_INSTALLATION_NAME
Kubernetes クラスターで合成ジョブ マネージャー用に設定された名前空間を削除します。
$ kubectl delete namespace YOUR_NAMESPACE
サンドボックスとDockerの依存関係 サンドボックスと Docker の依存関係は、Docker コンテナー システム環境の合成ジョブ マネージャーに適用されます。
Synthetics ジョブ マネージャーは Docker で実行され、Docker をサンドボックス テクノロジとして活用できます。これにより、モニターの実行が完全に分離され、セキュリティ、信頼性、再現性が向上します。スクリプト化されたモニターまたはブラウザー モニターが実行されるたびに、synthetics ジョブ マネージャーはまったく新しい Docker コンテナーを作成し、一致するランタイムを使用してそれを実行します。
追加のランタイム コンテナーを生成するには、Docker エンジンと通信するように合成ジョブ マネージャー コンテナーを構成する必要があります。生成された各コンテナーは、synthetics ジョブ マネージャー コンテナーが関連付けられているプライベートな場所で実行されている、 synthetic モニター に関連付けられたチェックを実行するために専用に使用されます。
起動時に重要な依存関係があります。サンドボックスを有効にするには、次のことを確認してください。
書き込み可能な Docker UNIX ソケットが/var/run/docker.sock
またはDOCKER_HOST
環境変数 にマウントされています。詳細については、Docker のDaemon ソケット オプション を参照してください。
注意 ホスト上のコア数によって、外形監視ジョブ マネージャーがホスト上で同時に実行できるランタイム コンテナの数が決まります。 メモリ要件はランタイム コンテナーの予想される数に合わせて調整されるため、リソースの競合を回避するためにnot running multiple synthetics job managers on the same host を推奨します。
サンドボックス化とrootまたは非rootユーザーとしての実行の詳細については、セキュリティ、サンドボックス化、および非rootユーザーとしての実行を 参照してください。
セキュリティ、サンドボックス化、および非ルートとしての実行 デフォルトでは、合成ジョブ マネージャー内で実行されているソフトウェアは、 root
ユーザー権限で実行されます。実行がサンドボックス化されるため、これはほとんどのシナリオに適しています。
非ルート ユーザーとして合成ジョブ マネージャーを実行するには、追加の手順が必要です。
Docker の非 root ユーザーとして実行する詳細については、セキュリティ およびAppArmorセキュリティプロファイル に関するDockerの公式ドキュメントを参照してください。
ご使用の環境で、synthetics ジョブ マネージャーを非ルート ユーザーとして実行する必要がある場合は、次の手順に従います。次の例では、root 以外のユーザーはmy_user
です。
my_user
がホストでDockerエンジンを使用できることを確認します。
my_user
が"docker"
システム グループに属して いることを確認します。ブリッジ ネットワークを作成するには、 docker.sock
への限定されたルート アクセスが引き続き必要です。
また
Docker TCP ソケット オプション を有効にし、 DOCKER_HOST
環境変数 を Synthetics Job Manager に渡します。
my_user
に、合成ジョブ マネージャーに渡されたすべてのディレクトリとボリュームに対する読み取り/書き込み権限があることを確認してください。これらの権限を設定するには、 chmod
コマンドを使用してください。
実行コマンドで使用するmy_user
のuid
を取得します: id -u my_user
。
これらの条件が満たされたら、synthetics ジョブ マネージャーを起動するときにオプション"-u <uid>:<gid>"
を使用します。
$ docker run .. . -u 1002 .. .
また
$ docker run .. . -u 1002 -e DOCKER_HOST = http://localhost:2375 .. .
Docker または Kubernetes 環境を理解する 以下は、ジョブ マネージャーのコンテナー環境の維持と理解に関する追加情報です。ライセンス情報を表示し、ジョブ マネージャーのネットワーク設定を理解し、Docker イメージ リポジトリを確認します。
ライセンス情報を表示する 一部のオープンソースソフトウェアは複数のソフトウェアライセンスの下にリストされており、その場合は、使用することを選択したライセンスをリストしています。当社のライセンス情報は、当社のライセンスドキュメント でも入手できます。
ネットワーク設定 Docker と Kubernetes の両方で、synthetics ジョブ マネージャーとそのランタイム コンテナーはホストからネットワーク設定を継承します。Docker コンテナー システム環境でのこの例については、 Docker サイト を参照してください。
ブリッジ ネットワークは、合成ジョブ マネージャーとランタイム コンテナー間の通信用に作成されます。つまり、 --network
や--dns
などのネットワーク コマンド オプションは、起動時に (Docker コンテナー システム環境で Docker 実行コマンドを介して) 合成ジョブ マネージャー コンテナーに渡され、ランタイム コンテナーによって継承または使用されません。
これらのネットワークが作成されると、デーモン用に構成されたデフォルトのIPアドレスプールからプルされます。Dockerコンテナシステム環境でのこの例については、 Dockerサイト を参照してください。
Synthetics ジョブ マネージャー接続に関するその他の考慮事項 繋がり
説明
インターネットにアクセスできない合成ジョブ マネージャー
Synthetics ジョブ マネージャーは、インターネットにアクセスしなくても操作できますが、いくつかの例外があります。Synthetics ジョブ マネージャーは、 "synthetics-horde.nr-data.net"
ドメインに接続できる必要があります。これは、データを New Relic にレポートし、実行するモニターを受け取るために必要です。これが問題であるかどうか、および例外の設定方法については、ネットワーク管理者に問い合わせてください。
プロキシを介して合成と通信する
プロキシによる New Relic との通信をセットアップするには、次の名前の環境変数 を使用します。 HORDE_API_PROXY*.
起動時に渡された引数
これは、Docker コンテナー環境にのみ適用されます。起動時に合成ジョブ マネージャー コンテナーに渡される引数は、合成ジョブ マネージャーによって生成されたランタイム コンテナーには渡されません。Docker にはコンテナーの「継承」や「階層」の概念がなく、synthetics ジョブ マネージャーからランタイム コンテナーに渡される構成をコピーしません。それらの間の唯一の共有構成は、 Docker デーモン レベルで設定されたものです。