• EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Criar um problema

Auto-discovery de contêineres para integração no host

Nosso recurso de auto-discovery de contêineres permite configurar uma integração para monitor automaticamente serviços que rodam em múltiplos contêineres. No arquivo de configuração de integração, você pode definir os critérios de correspondência do contêiner, e o agente executa a integração para cada contêiner local que corresponda aos critérios.

Uma integração será executada quantas vezes encontrar elementos de descoberta. Se a descoberta não encontrar nenhum contêiner, a integração não será executada.

Dica

Atualmente, o agente de infraestrutura pode descobrir o contêiner Docker local.

Adicione espaço reservado à sua configuração

Na sua configuração de integração você deve criar ${discovery.<property>} espaço reservado. Eles serão então automaticamente substituídos por informações específicas do contêiner.

Estes exemplos (para ambientes Docker-only e para Kubernetes) mostram como configurar uma integração NGINX para monitor todos os contêineres locais que possuem um nome de imagem contendo nginx e que são rotulados como env=production. Cada serviço estará disponível através de IPs e portas diferentes, portanto devem ser variáveis.

Adicionar propriedades de descoberta

Para configurar a descoberta, configure uma entrada discovery no YAML de configuração de integração usando as propriedades a seguir. Um contêiner será correspondido quando all as propriedades corresponderem aos valores definidos.

Nome da chave de descoberta

Descrição

ttl

Tipo: Corda

Time-To-Live dos resultados da descoberta em cache, usado para minimizar o número de processos de descoberta. Defina como um número seguido por uma unidade de tempo (s, m ou h).

Exemplos: 30s, 10m, 1h, 0

Padrão: 1m

docker

Tipo: propriedades YAML

Definição de correspondência Docker contêiner. Consiste em uma propriedade match contendo um mapa onde:

  • Cada chave é qualquer uma das propriedades a seguir.

  • O valor é o valor esperado da propriedade informada para o contêiner retornado.

  • Um contêiner corresponde se todas as propriedades corresponderem (operação AND).

    As chaves YAML disponíveis incluem:

  • ip: Endereço IP externo do contêiner, se houver

  • private.ip: Endereço IP privado do contêiner

  • port: Número da porta externa do contêiner

  • private.port: Número da porta privada do contêiner

  • image: Nome da imagem

  • name: Nome do contêiner

  • label.<label name>: Qualquer etiqueta de contêiner, acessível pelo seu nome

Exemplo de descoberta

O exemplo a seguir corresponde a todos os contêineres Docker cuja imagem começa com httpd: (fornecida como expressão regular) e é rotulada como scrapable=yes. Os resultados são armazenados em cache com um tempo de vida de 5 minutos.

discovery:
ttl: 5m
docker:
match:
image: /^httpd:/
label.scrapable: yes

Informações de contêiner disponíveis

Nosso recurso de descoberta atualmente emite as seguintes variáveis, que podem ser utilizadas para configurar sua integração. O agente de infraestrutura os substitui pelos valores correspondentes do contêiner descoberto.

Importante

Certifique-se de adicionar o prefixo discovery. .

Variável

Descrição

${discovery.ip}

Endereço IP público do contêiner, se houver

${discovery.private.ip}

Endereço IP privado do contêiner

${discovery.port}

Número da porta pública do contêiner

${discovery.private.port}

Número da porta privada do contêiner

${discovery.image}

Nome da imagem

${discovery.name}

Nome do contêiner

${discovery.label.<label name>}

Qualquer etiqueta de contêiner, acessível pelo seu nome

Mapeando múltiplas portas

Quando um contêiner expõe muitas portas privadas ou públicas, elas podem ser acessadas por meio de discovery.private.ports. ou discovery.ports. seguido por um índice começando em 0. As portas são indexadas do menor para o maior valor de porta privada.

Por exemplo, um contêiner que expõe as portas privadas 80 e 443 através das portas públicas 2345 e 1111, respectivamente, forneceria as seguintes variáveis com seus respectivos valores:

Variável

Valor

${discovery.private.ports.0}

80 (a porta privada mais baixa)

${discovery.private.ports.1}

443 (o porto privado mais alto)

${discovery.ports.0}

2345 (o mapeamento da porta pública para a porta privada 0)

${discovery.ports.1}

1111 (o mapeamento da porta pública para a porta privada 1)

${discovery.private.port}

80 (igual a ${discovery.private.ports.0})

${discovery.port}

2345 (igual a ${discovery.ports.0})

Importante

Observe que a palavra port é singular nas variáveis não indexadas e plural nas variáveis indexadas.

Mapeando portas por nome de protocolo

Além da indexação da seção anterior, as portas também podem ser referidas pelo nome do protocolo (como tcp, udp, etc.). Por exemplo, ${discovery.ports.tcp} ou ${discovery.ports.udp}.

Se várias portas corresponderem ao mesmo protocolo, elas também poderão ser indexadas pelas regras da seção anterior: ${discovery.ports.tcp.0}, ${discovery.ports.tcp.1} e assim por diante.

Copyright © 2024 New Relic Inc.

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