PHPエージェント をDockerコンテナなどにインストールして、1つまたは複数のPHPアプリケーションを監視することができます。これは、 PHP エージェントの要件 を満たすコンテナでサポートされています。
注意
PHP エージェントのデーモンは、1 分間にわたる の収穫サイクルの間、定期的に New Relic にデータを送信します。 。コンテナを頻繁に起動したり破棄したりする場合は、デーモンコンテナを十分な時間稼働させ、残っているデータを送信するようにしてください。
コンテナオプション
PHP エージェントが動作するには、PHP エージェント (アプリケーションごとに 1 つ) と、1 つまたは複数のエージェントから送信されたデータを集約して New Relic に送信する デーモン という 2 つのコンポーネントが必要です。このため、コンテナ環境で PHP エージェントを有効にするには 2 つのオプションがあります。
- エージェントとデーモンを別々のコンテナにインストールします。 これは推奨されるセットアップです。
- エージェントとデーモンを同じコンテナにインストールします。 コンテナの数を減らしたい場合に便利かもしれません。
エージェントとデーモンを別々のコンテナにインストール
要件:
- PHPエージェントの要件を満たす
- PHPエージェントバージョン9.2以上
アプリケーションの例を見るには、 New Relic's Explorers Hub にアクセスしてください。短時間動作のアプリケーションコンテナを使用する場合は、 PHP エージェントのデーモン用に別のコンテナを使用することをお勧めします。
注意
エージェントからデーモンに送信されるデータは暗号化されていません。これに対する唯一の例外は、デーモンにデータを送信する前に発生するSQLの難読化です。エージェントとデーモンが異なるホストで実行されている場合は、エージェントとデーモンの間でプライベートネットワーク接続を使用することをお勧めします。
デーモン・コンテナの設定
Dockerを使用している場合は、 Docker Hub からデーモンイメージを引き出すことができます。
- 以下のコマンドを実行してください。
docker pull newrelic/php-daemon
. - イメージをカスタマイズするには、 Docker Hub の手順に従ってください。
また、独自のデーモンイメージを構築することもできます。
- デーモンをインストールするには、New Relic の tar ファイルダウンロードサイト から PHP エージェントパッケージをダウンロードし、
newrelic-install
スクリプトをinstall_daemon
引数を指定して実行します。 --address
と--watchdog-foreground
の引数を使って、デーモンを起動します。
--address
引数は、デーモンが接続を受け付けるポートを設定します。 --watchdog-foreground
引数は、デーモンがフォアグラウンドで実行されるようにします。
PHP エージェントコンテナの設定
PHPのエージェントコンテナをDocker用に設定するには、以下の手順に従います。
- コンテナ内にPHPがインストールされていることを確認します。例えば、
php:7.1
のような公開されたDockerイメージを使用します。 - エージェントをインストールするには、New Relic の tar ファイルダウンロードサイト から PHP エージェントパッケージをダウンロードし、
newrelic-install
スクリプトをinstall
という引数を付けて実行します。 newrelic.ini
ファイルで、newrelic.appname
とnewrelic.license
のエントリで、アプリケーション名と ライセンスキー を設定します。newrelic.ini
ファイルでnewrelic.daemon.address
オプションを設定して、エージェントをデーモンに向けます。このオプションの値がHOST:PORT
であることを確認してください。ここでHOST
はデーモンが動作しているホストの名前または IP アドレスで、PORT
はデーモンがリッスンしているポート番号です。
エージェントとデーモンを同じコンテナにインストール
注意
デフォルトでは、最初のトランザクションにより、エージェントはデーモンの起動とアプリケーション接続の初期化を行います。パフォーマンス上の理由から、エージェントはこれらの操作が完了するのを待たずに接続を初期化します。このため、コンテナの起動後、最初の数件のトランザクションが失われることがあります。この損失を防ぐには、 newrelic.daemon.start_timeout
と newrelic.daemon.app_connect_timeout
の両方のエントリを、 newrelic.ini
ファイルの中で、それぞれ5sと15sという当社の(推奨)[https://discuss.newrelic.com/t/php-troubleshooting-framework-configuration/119980]の値に設定してください。
PHPのエージェントとデーモンを同じDockerコンテナにセットアップするには、次のようにします。
- コンテナ内にPHPがインストールされていることを確認します。例:
php:7.1
のような公開されたDockerイメージを使用する場合。 - エージェントをインストールするには、New Relic の tar ファイルダウンロードサイト から PHP エージェントパッケージをダウンロードし、
newrelic-install
スクリプトをinstall
という引数を付けて実行します。 newrelic.ini
ファイルのnewrelic.license
とnewrelic.appname
エントリを介して、アプリケーション名と ライセンスキー を設定します。
callout.info
ここでは、Dockerのトラブルシューティングについてご紹介します。