PHP エージェントを Docker コンテナまたは他のコンテナにインストールして、1 つ以上の PHP アプリケーションを監視できます。これは、標準のPHP エージェントの互換性と要件を満たすコンテナでサポートされます。
重要
PHP エージェントのデーモンは、1 分間の収集サイクル中に定期的にデータを New Relic に送信します。コンテナーの起動と破棄を頻繁に行う場合は、残りのデータを送信できる十分な時間デーモン コンテナーを実行したままにしてください。
コンテナオプション
PHP エージェントが動作するには、PHP エージェント (アプリケーションごとに 1 つ) と、1 つまたは複数のエージェントから送信されたデータを集約して New Relic に送信する デーモン という 2 つのコンポーネントが必要です。このため、コンテナ環境で PHP エージェントを有効にするには 2 つのオプションがあります。
- エージェントとデーモンを別々のコンテナにインストールします。 これは推奨されるセットアップです。
- エージェントとデーモンを同じコンテナにインストールします。 コンテナの数を減らしたい場合に便利かもしれません。
エージェントとデーモンを別々のコンテナにインストール
エージェントとデーモンを異なるコンテナにインストールすることは、 New Relic PHPエージェント リリース 9.2.0 以降でサポートされています。
サンプル アプリケーションを参照するには、 New Relic のサポート フォーラムにアクセスしてください。有効期間が短いアプリケーション コンテナを使用している場合は、PHP エージェントのデーモン用に別のコンテナを使用することをお勧めします。
注意
エージェントからデーモンに送信されるデータは暗号化されていません。これに対する唯一の例外は、デーモンにデータを送信する前に発生するSQLの難読化です。エージェントとデーモンが異なるホストで実行されている場合は、エージェントとデーモンの間でプライベートネットワーク接続を使用することをお勧めします。
デーモン・コンテナの設定
Dockerを使用している場合は、 Docker Hub からデーモンイメージを引き出すことができます。
- 次のコマンドを実行します:
docker pull newrelic/php-daemon
。 - イメージをカスタマイズするには、 Docker Hub の手順に従ってください。
また、独自のデーモンイメージを構築することもできます。
- デーモンをインストールするには、New RelicのtarファイルダウンロードサイトからPHPエージェントパッケージをダウンロードし、
install_daemon
引数を指定してnewrelic-install
スクリプトを実行します。 --address
および--watchdog-foreground
引数を使用してデーモンを起動します。
--address
引数は、デーモンが接続を受け入れるためのポートを設定します。 --watchdog-foreground
引数は、デーモンがフォアグラウンドで実行されることを保証します。
PHP エージェントコンテナの設定
PHPのエージェントコンテナをDocker用に設定するには、以下の手順に従います。
- PHP インストレーションがコンテナ内で利用可能であることを確認してください。 たとえば、
php
にはphp:fpm
や のような Docker「公式イメージ」php:cli
を使用します。 - エージェントをインストールするには、 New Relicのダウンロード サイトから PHP エージェント パッケージをダウンロードし、
install
引数を指定してnewrelic-install
スクリプトを実行します。 newrelic.ini
ファイルで、アプリケーション名とnewrelic.appname
エントリとnewrelic.license
エントリで設定します。newrelic.ini
ファイルでnewrelic.daemon.address
オプションを設定して、エージェントをデーモンにポイントします。このオプションの値がHOST:PORT
であることを確認してください。ここで、HOST
はデーモンが実行されているホストの名前またはIPアドレスであり、PORT
はデーモンがリッスンしているポート番号です。
エージェントとデーモンを同じコンテナにインストール
注意
デフォルトでは、最初のトランザクションにより、エージェントはデーモンの開始とアプリケーション接続の初期化をトリガーします。パフォーマンス上の理由から、エージェントは接続を初期化する前にこれらの操作が完了するのを待ちません。これにより、コンテナーの開始後の最初のいくつかのトランザクションが失われる可能性があります。この損失を防ぐには、 newrelic.ini
ファイルのnewrelic.daemon.start_timeout
}エントリとnewrelic.daemon.app_connect_timeout
エントリの両方を推奨値の5秒と15秒にそれぞれ設定します。
PHPのエージェントとデーモンを同じDockerコンテナにセットアップするには、次のようにします。
- PHP インストレーションがコンテナ内で利用可能であることを確認してください。 たとえば、
php
にはphp:fpm
や のような Docker「公式イメージ」php:cli
を使用します。 - エージェントをインストールするには、 New Relicのダウンロード サイトから PHP エージェント パッケージをダウンロードし、
install
引数を指定してnewrelic-install
スクリプトを実行します。 newrelic.ini
ファイルのnewrelic.license
エントリとnewrelic.appname
エントリを介してアプリケーション名とを設定します。