Você pode instalar o agente PHP em um contêiner Docker ou outro contêiner para monitor um ou mais aplicativos PHP. Isso é suportado para contêineres que atendam ao padrão de compatibilidade do agente e requisitos do PHP.
Importante
O daemon do agente PHP transmite dados para o New Relic periodicamente durante o ciclo de coleta de um minuto. Se você estiver inicializando e desmontando contêineres com frequência, certifique-se de deixar o daemon contêiner em execução por tempo suficiente para transmitir quaisquer dados restantes.
Opções de contêiner
O agente PHP requer dois componentes para funcionar: o agente PHP (um para cada aplicativo) e um daemon, que agrega os dados enviados de um ou mais agentes e os envia para a New Relic. Por isso, existem duas opções de habilitação do agente PHP para ambientes de contêiner:
- Instale agente e daemon em contêineres diferentes. Esta é a configuração recomendada.
- Instale o agente e o daemon no mesmo contêiner. Isto pode ser útil se você quiser reduzir o número de contêineres.
Instale agente e daemon em contêineres diferentes
A instalação do agente e daemon em diferentes contêineres é suportada a partir do agente PHP versão 9.2.0 do New Relic .
Para ver um exemplo de aplicativo, acesse o Fórum de suporte da New Relic. Se você estiver usando contêineres de aplicativos de curta duração, recomendamos usar um contêiner separado para o daemon do agente PHP.
Cuidado
Os dados transmitidos do agente para o daemon não são criptografados. A única exceção a isso é a ofuscação SQL que ocorre antes do envio de dados para o daemon. Se o agente e o daemon estiverem em execução em hosts diferentes, recomendamos usar uma conexão de rede privada entre o agente e o daemon.
Configure o contêiner daemon
Se você usar Docker, poderá extrair nossa imagem do daemon do Docker Hub:
- Execute este comando:
docker pull newrelic/php-daemon
. - Para personalizar a imagem, siga as etapas no Docker Hub.
Você também pode construir sua própria imagem do daemon:
- Para instalar o daemon, baixe o pacote do agente PHP no site de download do arquivo tar da New Relic e execute o script
newrelic-install
com o argumentoinstall_daemon
. - Inicie o daemon usando os argumentos
--address
e--watchdog-foreground
.
O argumento --address
define uma porta para o daemon aceitar conexões. O argumento --watchdog-foreground
garante que o daemon seja executado em primeiro plano.
Configure o contêiner do agente PHP
Para configurar o contêiner do agente PHP para Docker:
- Certifique-se de que uma instalação do PHP esteja disponível no contêiner. Por exemplo, use uma "imagem oficial" do Docker para
php
comophp:fpm
ouphp:cli
. - Para instalar o agente, baixe o pacote do agente PHP no site de download da New Relic e execute o script
newrelic-install
com o argumentoinstall
. - No arquivo
newrelic.ini
, defina o nome do aplicativo e com as entradasnewrelic.appname
enewrelic.license
. - Aponte o agente para o daemon definindo a opção
newrelic.daemon.address
no arquivonewrelic.ini
. Certifique-se de que o valor desta opção sejaHOST:PORT
, ondeHOST
é o nome ou endereço IP do host onde o daemon está sendo executado ePORT
é o número da porta onde o daemon está escutando
Instale o agente e o daemon no mesmo contêiner
Cuidado
Por padrão, a primeira transação faz com que o agente acione o início do daemon e a inicialização da conexão do aplicativo. Por motivos de desempenho, o agente não espera a conclusão dessas operações antes de inicializar a conexão. Isto pode resultar na perda das primeiras transações após o início de um contêiner. Para evitar essa perda, defina as entradas newrelic.daemon.start_timeout
e newrelic.daemon.app_connect_timeout
no arquivo newrelic.ini
com nossos valores recomendados de 5s e 15s, respectivamente.
Para configurar o agente PHP e o daemon no mesmo contêiner Docker :
- Certifique-se de que uma instalação do PHP esteja disponível no contêiner. Por exemplo, use uma "imagem oficial" do Docker para
php
comophp:fpm
ouphp:cli
. - Para instalar o agente, baixe o pacote do agente PHP no site de download da New Relic e execute o script
newrelic-install
com o argumentoinstall
. - Defina o nome do aplicativo e por meio das entradas
newrelic.license
enewrelic.appname
no arquivonewrelic.ini
.
Dica
Aqui estão alguns recursos Docker resolução de problemas: