Se você tiver serviços executados no Docker contêiner no Amazon ECS e forem suportados, poderá habilitar essas integração por meio de nossa integração ECS. Isso reporta dados dos seus serviços de monitor, do host e do contêiner.
Requisitos
Para monitor serviços em execução no ECS, você deve atender a estes requisitos:
Um serviço compatível executado no ECS que atende aos nossos requisitos. Os serviços suportados incluem:
Um cluster ECS com escalonamento automático executando Amazon Linux, CentOS ou RHEL que atende aos requisitos e compatibilidade do agente de infraestrutura.
As tarefas do ECS devem ter o modo de rede definido como
none
oubridge
(awsvpc
ehost
não são suportados).
Limitações:
- Para este método de instalação, nossa integração RabbitMQ e Apache não reportam dados de inventário.
- AWS Fargate não é compatível.
Como habilitar
Antes de explicar como habilitar o monitoramento de serviços em execução no ECS, aqui está uma visão geral do processo:
- Habilite Amazon EC2 para instalar nosso agente de infraestrutura em seu cluster ECS.
- Habilite o monitoramento de serviços usando um arquivo de configuração específico do serviço.
Etapa 1: habilitar o EC2 para instalar o agente de infraestrutura
Primeiro, você deve habilitar Amazon EC2 para instalar nosso agente de infraestrutura no cluster ECS. Para fazer isso, primeiro você precisa atualizar os dados do seu usuário para instalar o agente de infraestrutura no lançamento.
Aqui estão as instruções para alterar a configuração de lançamento do EC2 (retiradas da documentação Amazon EC2 ):
Abra o console do Amazon EC2.
No painel de navegação, em Auto scaling, escolha Launch configurations.
Na próxima página, selecione o lançamento configuração que deseja atualizar.
Clique com o botão direito e selecione Copy launch configuration.
Na guia Launch configuration details, clique em Edit details.
Substitua os dados do usuário por um dos seguintes trechos:
Escolha Skip to review.
Escolha Create launch configuration.
Em seguida, atualize o grupo de escalonamento automático:
- Abra o console do Amazon EC2.
- No painel de navegação, em Auto scaling, escolha Auto scaling groups.
- Selecione o grupo de escalonamento automático que você deseja atualizar.
- No menu Actions, escolha Edit.
- No menu suspenso de Launch configuration, selecione o novo lançamento de configuração criado.
- Clique em Save.
Para testar se o agente está detectando a instância automaticamente, encerre uma instância do EC2 no grupo de auto scaling: a instância de substituição agora será lançada com os novos dados do usuário. Após cinco minutos, você deverá ver os dados do novo host na página Hosts.
Em seguida, prossiga para habilitar o monitoramento de serviços.
Etapa 2: Habilitar o monitoramento de serviços
Depois de habilitar o EC2 para executar o agente de infraestrutura, o agente inicia o monitoramento do contêiner em execução naquele host.
A seguir explicaremos como monitor serviços implantados no ECS. Por exemplo, você pode monitor uma tarefa do ECS contendo uma instância do NGINX que fica na frente do servidor do seu aplicativo.
Aqui está uma breve visão geral de como você monitor um serviço suportado implantado no ECS:
- Crie um arquivo de configuração YAML para o serviço que deseja monitor. Eventualmente, isso será colocado na seção de dados do usuário EC2 por meio do console AWS. Mas antes de fazer isso, você pode testar se a configuração está funcionando colocando esse arquivo na pasta do agente de infraestrutura (
etc/newrelic-infra/integrations.d
) no EC2. Esse arquivo de configuração deve usar nosso formato de auto-discovery de contêiner, que permite encontrar contêineres automaticamente. As opções exatas de configuração dependerão da integração específica. - Verifique se os dados do serviço estão sendo relatados à New Relic.
- Se estiver satisfeito com os dados exibidos, você poderá usar o console do EC2 para adicionar essa configuração à configuração de lançamento apropriada, na seção
write_files
, e depois atualizar o grupo de escalonamento automático. - Na seção
runcmd
, adicione o comandoyum
para instalar a integração na configuração de lançamento apropriada.
Aqui está um exemplo detalhado de como executar o procedimento acima para NGINX:
Certifique-se de ter acesso SSH ao servidor ou acesso ao AWS Systems Manager Session Manager. Login no host que executa o agente de infraestrutura.
Através da linha de comando, altere o diretório para a pasta integração configuração:
bash$cd /etc/newrelic-infra/integrations.dCrie um arquivo chamado
nginx-config.yml
e adicione o seguinte trecho:---discovery:docker:match:image: /nginx/integrations:- name: nri-nginxenv:STATUS_URL: http://${discovery.ip}:${discovery.port}/statusREMOTE_MONITORING: trueMETRICS: 1Essa configuração faz com que o agente de infraestrutura procure por contêiner no ECS que contenha
nginx
. Depois que um contêiner corresponde, ele se conecta à página de status do NGINX. Para obter detalhes sobre como o trechodiscovery.ip
funciona, consulte descoberta automática. Para obter detalhes sobre a configuração geral do NGINX, consulte a integração NGINX.Se sua página de status do NGINX estiver configurada para atender solicitações do
STATUS_URL
na porta 80, o agente de infraestrutura inicia o monitoramento dela. Após cinco minutos, verifique se os dados do NGINX estão aparecendo em nossa interface de infraestrutura (seja: one.newrelic.com > All capabilities > Infrastructure > Third party services ou one.newrelic.com > All capabilities > Infrastructure > Third-party services).Se a configuração funcionar, coloque-a na configuração de lançamento do EC2:
Abra o console do Amazon EC2.
No painel de navegação, em Auto scaling, escolha Launch configurations.
Na próxima página, selecione o lançamento configuração que deseja atualizar.
Clique com o botão direito e selecione Copy launch configuration.
Na guia Launch configuration details, clique em Edit details.
Na seção User data, edite a seção
write_files
(na parte marcada comotext/cloud-config
).Adicione uma nova entrada de arquivo/conteúdo:
- content: |---discovery:docker:match:image: /nginx/integrations:- name: nri-nginxenv:STATUS_URL: http://${discovery.ip}:${discovery.port}/statusREMOTE_MONITORING: trueMETRICS: 1path: /etc/newrelic-infra/integrations.d/nginx-config.ymlEdite também a seção
runcmd
para incluir o comandoyum
para instalarnri-nginx
:runcmd:- [ yum, install, newrelic-infra, -y ]- [ yum, install, nri-nginx, -y ]- [ systemctl, daemon-reload ]- [ systemctl, enable, newrelic-infra.service ]- [ systemctl, start, --no-block, newrelic-infra.service ]
Escolha Skip to review.
Escolha Create launch configuration.
Em seguida, atualize o grupo de escalonamento automático:
- Abra o console do Amazon EC2.
- No painel de navegação, em Auto scaling, escolha Auto scaling groups.
- Selecione o grupo de escalonamento automático que você deseja atualizar.
- No menu Actions, escolha Edit.
- No menu suspenso de Launch configuration, selecione o novo lançamento de configuração criado.
- Clique em Save.
Quando uma instância do EC2 é encerrada, ela é substituída por uma nova que procura automaticamente novos contêineres NGINX.