• ログイン今すぐ開始

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

CPM(Containerized Private Minion)の構成

containerized private minion (CPM) を設定する方法については、こちらをご覧ください。

CPMをカスタマイズするには以下の方法があります。

お客様はCPMファイルを変更することはできず、お客様が行った変更についてニューレリックは責任を負いません。

ボリュームのマウントに関するガイドライン

すべてのディレクトリとファイルには、読み取り/書き込み権限を持つ3729としてグループ所有権を割り当てる必要があります。これにより、 uid: 1000gid: 3729を使用するランナーがマウントされたすべてのボリュームにアクセスできるようになります。ただし、ミニオンはルート( uid: 0 )として、または[2000, 4000]の範囲内の任意のuidで実行できます。詳細については、KubernetesまたはDocker で非ルートとして実行するをご覧ください。

Docker

  • ディレクトリは、内で-v引数を指定することにより、ボリュームとしてコンテナにマウントされます。 docker run
  • 例えば、 docker run ... -v /path/to/src:/path/to/dest:rw

Kubernetes

  • kubectl cpを使用して、永続ボリューム( PV )にディレクトリを追加することができます。ただし、ファイルのアクセス許可が適切に設定されている限り、代替アプローチがサポートされます。
  • たとえば、 kubectl cp /path/to/src <POD_NAME>:/path/to/destは指定されたポッドの各PVにディレクトリを追加します
  • 各PVには、ディレクトリのコピーが個別に存在する必要があります。例えば、 n Minion のレプリカを持つクラスターでは、 n PV が必要で、それぞれがディレクトリのコピーを持つ必要があります。
  • これらのディレクトリとファイルは、Minionが起動する前に追加する必要があります。そうしないと、アップデートを検出するためにMinionを再起動する必要があります。

カスタムnpmモジュール

カスタムnpmモジュールはCPM専用です。これらを使用すると、 npmモジュールの任意のセットを提供し、それらを合成モニターのスクリプトモニターで使用できるようにすることができます。

モジュールをセットアップするには

  1. npmの公式ガイドラインに従って、ディレクトリのルートにpackage.jsonを含むディレクトリを作成します。 dependenciesフィールドに含まれるものはすべて、開始時にCPMによってインストールされ、そのプライベートミニオンでモニターを実行するときに使用できるようになります。

    必要に応じて、ルート レベルpackage.jsonを Node.js バージョン固有のディレクトリでオーバーライドできます。これにより、ランタイムのNode.js バージョンが依存関係と互換性がなくなった場合に、モニター ランタイムごとにスクリプトを更新できます。以下の例を参照してください。

  2. カスタムモジュールディレクトリとpackage.jsonを作成したら、DockerとKubernetesのCPMに適用できます。

  3. "... Initialization of Custom Modules ..."CPMログを調べて、モジュールが正しくインストールされているかどうか、またはエラーが発生していないかどうかを確認します。 npmインストールログが表示されます。

これで、このプライベートな場所に送信するモニターのスクリプト"require('async');"を追加できます。

カスタムモジュールのpackage.jsonを変更

npmモジュールに加えて、 Node.jsモジュールを使用することもできます。 CPMで使用されるカスタムモジュールを変更するには、 package.jsonを変更してCPMを再起動します。再起動中に構成の変更を検出し、クリーンアップして再インストールします。

注意

ローカルモジュール: package.jsonには任意のローカルモジュールを含めることができますが、これらのモジュールは、カスタムモジュールディレクトリの下のツリー内に存在する必要があります。ツリーの外部に保存されている場合、初期化プロセスは失敗し、CPMの起動後にDockerログにエラーメッセージが表示されます。

データの永久保存

CPMはステートレスアプリケーションであり、デフォルトでは以前のリクエストまたはセッションからの情報を保持しません。ただし、永続的なデータストレージを有効にすることで、起動間でデータを保持できます。たとえば、ミニオンがそれ自体を識別する方法(たとえば、 Minion_ID )を永続的に設定し、それを使用して、そのデータを、それを生成した正確なミニオンに関連付けることができます。

Dockerに恒久的なデータ保存を設定するには

  1. ディレクトリを作成します。

  2. CPMを起動し、ディレクトリを/var/lib/newrelic/syntheticsにマウントします。

    例:

    docker run ... -v /example-permanent-dir:/var/lib/newrelic/synthetics:rw ...

Kubernetesに恒久的なデータストレージを設定すること。

  1. CPMを起動し、インストール中にコマンドラインまたはYAMLファイルのいずれかでpersistence.permanentData構成値の値を設定します。この値は、データを保存するMinionの永続ボリュームのサブパスを指定する必要があります。

    例:

    helm install ... --set persistence.permanentData=<permanent-data-subpath> ...

スクリプトによるモニターのためのユーザー定義の環境変数

コンテナ化されたプライベートミニオンを使用すると、スクリプト化されたモニターで使用する環境変数を構成できます。これらの変数はCPMでローカルにホストされ、 $env.USER_DEFINED_VARIABLESを介してアクセスできます。ユーザー定義変数を設定するには、JSONファイルをマウントする方法と、起動時に環境変数をCPMに提供する方法の2つがあります。両方が提供されている場合、CPMは環境から提供された値のみを使用します。

スクリプトからユーザー定義の環境変数にアクセスする

構成されたユーザー定義の環境変数を参照するには、予約済みの$env.USER_DEFINED_VARIABLESに続けて、ドット表記の特定の変数の名前を使用します。

例えば、 $env.USER_DEFINED_VARIABLES.MY_VARIABLE

注意

ユーザー定義の環境変数はログからサニタイズされません。機密情報については、 セキュアな認証情報 機能の使用を検討してください。

環境変数

環境変数により、お客様の環境や機能のニーズに合わせてCPMの構成を微調整することができます。

Copyright © 2022 New Relic Inc.

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