O agente de infraestrutura para Linux suporta ambientes de contêiner por padrão. Se você estiver executando um SO de contêiner ou tiver restrições que exijam a implantação do agente como um contêiner, você poderá executar uma versão conteinerizada do nosso agente de infraestrutura. Isso pode monitor métricas do próprio contêiner, bem como do host subjacente.
Usar a configuração personalizada (recomendada) ou básica permite que o agente de infraestrutura seja executado dentro de um ambiente de contêiner. Um host só pode executar uma instância do agente por vez, seja o agente em contêiner ou a versão não em contêiner.
O que você precisa
A versão conteinerizada do agente de infraestrutura requer Docker 1.12 ou superior.
A partir da versão 1.42, o agente de infraestrutura suporta containerd
, portanto pode ser usado no Kubernetes v1.24+, que removeu o suporte para Dockershim, ou qualquer outra solução baseada em containerd
. Se os soquetes de tempo de execução containerd
e dockerd
estiverem disponíveis, o agente de infraestrutura operará com o soquete de tempo de execução containerd
. O contêiner deve ser executado em uma distribuição e versão Linux suportada pelo agente de infraestrutura. A imagem do contêiner está disponível e é suportada em AMD64 e ARM64 arquitetura.
O encaminhador de logs não está incluído no agente conteinerizado. Recomendamos instalar o agente no host subjacente que fornece todos os recursos.
Configuração personalizada (recomendado)
A seguir estão instruções básicas para criar uma imagem Docker personalizada no Linux. Isso permite implantar o agente de infraestrutura como um contêiner que pode monitor seu host subjacente.
Recomendação: Estenda a imagemnewrelic/infrastructure
e use seu próprio arquivo de configuração do agente newrelic-infra.yml
. Depois que sua imagem for construída, você poderá facilmente criar um contêiner sem precisar fornecer mais configuração de tempo de lançamento. Não forneça segredos usando variáveis de ambiente com Docker.
Docker CLI
Crie o arquivo de configuração do agente
newrelic-infra.yml
com seu New Relic . Para obter explicações sobre opções de configuração, consulte definições de configuração.license_key: YOUR_LICENSE_KEYCrie o
Dockerfile
estendendo a imagemnewrelic/infrastructure
e adicione sua configuração a/etc/newrelic-infra.yml
:FROM newrelic/infrastructure:latestADD newrelic-infra.yml /etc/newrelic-infra.ymlCrie e tag sua imagem:
bash$docker build -t YOUR_IMAGE_NAME .Execute o contêiner a partir da imagem que você criou com os sinalizadores de execução necessários:
bash$docker run \>-d \>--name newrelic-infra \>--network=host \>--cap-add=SYS_PTRACE \>--privileged \>--pid=host \>--cgroupns=host # required on cgroup v2 \>-v "/:/host:ro" \>-v "/var/run/docker.sock:/var/run/docker.sock" \>YOUR_IMAGE_NAMEPara possíveis próximas etapas, como ver os dados na interface, consulte O que vem a seguir?
Docker Compor
Crie uma pasta para armazenar os arquivos de configuração:
bash$mkdir ~/newrelic-infra-setupMude o diretório para aquele que você acabou de criar:
bash$cd ~/newrelic-infra-setupCrie o arquivo de configuração do agente
newrelic-infra.yml
com seu New Relic . Para obter explicações sobre opções de configuração, consulte definições de configuração.bash$echo "license_key: YOUR_LICENSE_KEY" > newrelic-infra.ymlCrie o
newrelic-infra.dockerfile
estendendo a imagemnewrelic/infrastructure
e adicione sua configuração a/etc/newrelic-infra.yml
:bash$touch newrelic-infra.dockerfilebash$vim newrelic-infra.dockerfile # you can use any text editorColoque o seguinte conteúdo no arquivo:
FROM newrelic/infrastructure:latestADD newrelic-infra.yml /etc/newrelic-infra.ymlCrie
docker-compose.yaml
:bash$touch docker-compose.yamlbash$vim docker-compose.yaml # you can use any text editorColoque o seguinte conteúdo no arquivo:
version: '3'services:agent:container_name: newrelic-infrabuild:context: .dockerfile: newrelic-infra.dockerfilecap_add:- SYS_PTRACEnetwork_mode: hostpid: hostprivileged: truevolumes:- "/:/host:ro"- "/var/run/docker.sock:/var/run/docker.sock"restart: unless-stoppedConstrua e inicie
docker-compose
:bash$docker-compose -f docker-compose.yaml up -dPara possíveis próximas etapas, como ver os dados na interface, consulte O que vem a seguir?
Configuração básica
Para usar a configuração básica com uma imagem base New Relic Infrastructure :
Docker CLI
Execute o contêiner com os sinalizadores de execução necessários:
bash$docker run \>-d \>--name newrelic-infra \>--network=host \>--cap-add=SYS_PTRACE \>--privileged \>--pid=host \>--cgroupns=host # required on cgroup v2 \>-v "/:/host:ro" \>-v "/var/run/docker.sock:/var/run/docker.sock" \>-e NRIA_LICENSE_KEY=YOUR_LICENSE_KEY \>newrelic/infrastructure:latestPara possíveis próximas etapas, como ver os dados na interface, consulte O que vem a seguir?
Docker Compor
Crie
docker-compose.yaml
:bash$touch docker-compose.yamlbash$vim docker-compose.yaml # you can use any text editorColoque o seguinte conteúdo no arquivo:
version: '3'services:agent:container_name: newrelic-infraimage: newrelic/infrastructure:latestcap_add:- SYS_PTRACEnetwork_mode: hostpid: hostprivileged: truevolumes:- "/:/host:ro"- "/var/run/docker.sock:/var/run/docker.sock"environment:NRIA_LICENSE_KEY: "YOUR_LICENSE_KEY"restart: unless-stoppedConstrua e inicie
docker-compose
:bash$docker-compose -f docker-compose.yaml up -dPara possíveis próximas etapas, como ver os dados na interface, consulte O que vem a seguir?
Privilégios de contêiner necessários
Devido ao isolamento de recursos do host e de outros contêineres via namespace Linux, um contêiner tem uma visão e controle muito restritos dos recursos de seu host subjacente por padrão. Sem esses privilégios extras, o agente de infraestrutura não poderá monitor o host e seu contêiner.
O agente de infraestrutura coleta dados sobre seu host usando arquivos de sistema e chamadas de sistema. Para mais informações sobre como o agente de infraestrutura coleta dados, consulte nossa documentação sobre monitoramento de infraestrutura e segurança. Os privilégios necessários incluem:
Obrigatório ao usar o Docker no cgroup v2, pois é privado por padrão. Isto permite ao agente reunir contêineres métricos. Está disponível desde a API do Docker engine v1.41.
Privilégio | Descrição |
---|---|
| Define o namespace de rede do contêiner como o namespace de rede do host. Isto permite ao agente coletar as métricas da rede sobre o host. |
| Bind monta o volume raiz do host no contêiner. Este acesso somente leitura à raiz do host permite ao agente coletar métricas de processo e armazenamento, bem como dados de inventário do host. |
| Adiciona a capacidade do Linux para trace processos do sistema. Isso permite que o agente colete dados sobre processos em execução no host. Leia mais aqui. |
| |
| |
| |
| O Bind monta o soquete Docker daemon do host no contêiner. Isso permite que o agente se conecte à API do Engine através do soquete Docker daemon para coletar os dados do contêiner do host. Se você interagir com o ambiente de execução |
Este documento ajudou você na instalação?
Próximas etapas após a instalação
Para saber as próximas etapas após a conclusão da instalação, consulte O que vem a seguir?
Inventário coletado
O inventário é coletado do coletor de dados integrado do agente de infraestrutura. O agente de infraestrutura coleta esses dados para sistemas Linux rodando com contêiner.
Categoria | Fonte | Dados coletados usando |
---|---|---|
|
| Arquivo de configuração completo do agente |
|
|
Dados do contêiner
Uma vez que o agente de infraestrutura esteja sendo executado em um contêiner Docker, ele poderá coletar os mesmos dados de computador host e dados de eventos que o agente de infraestrutura é capaz de coletar quando executado nativamente em um host. Para obter mais informações, consulte nossa documentação sobre como visualizar os dados do contêiner do Docker.
Imagem do agente em contêiner
A imagem do agente em contêiner é criada a partir de uma imagem base do Alpine.
Verifique o código-fonte
Esta integração é um software de código aberto. Você pode navegar pelo código-fonte e enviar melhorias ou criar seu próprio fork e construí-lo.