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

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

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

ECS integração resolução de problemas: Nenhum dado aparece

Problema

Você instalou nossa integração ECS on-host e esperou alguns minutos, mas seu cluster não está aparecendo na lista de entidades.

Importante

Temos duas integração ECS: uma integração baseada em nuvem e uma integração no host. Este documento é sobre a integração no host.

Solução

Se você já instalou o agente de infraestrutura ou uma infraestrutura de integração no host, seus dados deverão aparecer na interface em alguns minutos.

Se você não tiver feito nenhuma dessas coisas antes de instalar a integração do ECS no host, pode levar dezenas de minutos para que os dados apareçam na interface. Nesse caso, recomendamos esperar até uma hora antes de seguir as etapas de resolução de problemas a seguir ou entrar em contato com o suporte.

Existem várias opções para resolução de problemas sem dados aparecendo:

Para obter informações sobre tarefas interrompidas, consulte Motivos das tarefas interrompidas.

Solucionar problemas via awscli

Ao interagir com o suporte da New Relic, use este método e envie os arquivos gerados com sua solicitação de suporte:

  1. Recupere as informações relacionadas ao serviço newrelic-infra ou ao serviço Fargate que contém uma tarefa com um arquivo secundário newrelic-infra :

    bash
    $
    aws ecs describe-services --cluster YOUR_CLUSTER_NAME --service newrelic-infra > newrelic-infra-service.json
    bash
    $
    aws ecs describe-services --cluster YOUR_CLUSTER_NAME --service YOUR_FARGATE_SERVICE_WITH_NEW_RELIC_SIDECAR > newrelic-infra-sidecar-service.json
  2. O atributo failures detalha quaisquer erros dos serviços.

  3. Em services está o atributo status . Diz ACTIVE se o serviço não apresentar problemas.

  4. O desiredCount deve corresponder ao runningCount. Este é o número de tarefas que o serviço está realizando. Como usamos o tipo de serviço daemon, deve haver uma tarefa por instância de contêiner em seu cluster. O atributo pendingCount deve ser zero, pois todas as tarefas devem estar em execução.

  5. Inspecione o atributo events de services para verificar se há problemas no agendamento ou no início das tarefas. Por exemplo: se o serviço não conseguir iniciar as tarefas com sucesso, ele exibirá uma mensagem como:

    {
    "id": "5295a13c-34e6-41e1-96dd-8364c42cc7a9",
    "createdAt": "2020-04-06T15:28:18.298000+02:00",
    "message": "(service newrelic-ifnra) is unable to consistently start tasks successfully. For more information, see the Troubleshooting section of the Amazon ECS Developer Guide."
    }
  6. Na mesma seção você também pode ver quais tarefas foram iniciadas pelo serviço a partir do evento:

    {
    "id": "1c0a6ce2-de2e-49b2-b0ac-6458a804d0f0",
    "createdAt": "2020-04-06T15:27:49.614000+02:00",
    "message": "(service fargate-fail) has started 1 tasks: (task YOUR_TASK_ID)."
    }
  7. Recupere as informações relacionadas à tarefa com este comando:

    bash
    $
    aws ecs describe-tasks --tasks YOUR_TASK_ID --cluster YOUR_CLUSTER_NAME > newrelic-infra-task.json
  8. O desiredStatus e lastStatus devem ser RUNNING. Se a tarefa não puder ser iniciada normalmente, ela terá o status STOPPED .

  9. Inspecione stopCode e stoppedReason. Um exemplo de motivo: uma tarefa que não pôde ser iniciada porque a função de execução da tarefa não tem as permissões apropriadas para baixar o segredo que contém a chave de licença teria a seguinte saída:

    "stopCode": "TaskFailedToStart",
    "stoppedAt": "2020-04-06T15:28:54.725000+02:00",
    "stoppedReason": "Fetching secret data from AWS Secrets Manager in region YOUR_AWS_REGION: secret arn:aws:secretsmanager:YOUR_AWS_REGION:YOUR_AWS_ACCOUNT:secret:NewRelicLicenseKeySecret-Dh2dLkgV8VyJ-80RAHS-fail: AccessDeniedException: User: arn:aws:sts::YOUR_AWS_ACCOUNT:assumed-role/NewRelicECSIntegration-Ne-NewRelicECSTaskExecution-1C0ODHVT4HDNT/8637b461f0f94d649e9247e2f14c3803 is not authorized to perform: secretsmanager:GetSecretValue on resource: arn:aws:secretsmanager:YOUR_AWS_REGION:YOUR_AWS_ACCOUNT:secret:NewRelicLicenseKeySecret-Dh2dLkgV8VyJ-80RAHS-fail-DmLHfs status code: 400, request id: 9cf1881e-14d7-4257-b4a8-be9b56e09e3c",
    "stoppingAt": "2020-04-06T15:28:10.953000+02:00",
  10. Se a tarefa estiver em execução, mas você ainda não estiver vendo dados, gere um log detalhado e examine-os em busca de erros.

Para obter detalhes sobre os motivos das tarefas interrompidas, consulte Tarefas interrompidas.

Solucionar problemas na interface

Para usar a interface para solucionar problemas:

  1. Login em seu Console AWS e navegue até a seção Serviço de contêiner EC2.

  2. Clique no cluster onde você instalou a integração do New Relic ECS.

  3. Na guia

    Services

    , use o filtro para procurar o serviço de integração. Se você usou o script de instalação automática, o nome do serviço será newrelic-infra. Se você estiver usando Fargate, será o nome do seu serviço de monitor. Uma vez encontrado, clique no nome.

  4. A página de serviço mostra o

    Status

    do serviço. Diz ACTIVE se o serviço não apresentar problemas.

  5. Na mesma página, a contagem de

    Desired

    deve corresponder à contagem de

    Running

    . Este é o número de tarefas que o serviço está realizando. Como usamos o tipo de serviço daemon, deve haver uma tarefa por instância de contêiner em seu cluster. A contagem pendente deve ser zero, porque todas as tarefas devem estar em execução.

  6. Inspecione a guia

    Events

    para verificar se há problemas no agendamento ou no início das tarefas.

  7. Na aba

    Tasks

    do seu serviço, você pode inspecionar as tarefas em execução e as tarefas interrompidas clicando no seletor

    Task status

    . contêiner que falhou ao iniciar são mostrados quando você seleciona o status

    Stopped

    .

  8. Clique em uma tarefa para acessar a página de detalhes da tarefa. Em

    Stopped reason

    , exibe uma mensagem explicando por que a tarefa foi interrompida.

  9. Se a tarefa estiver em execução, mas você ainda não estiver vendo dados, gere um log detalhado e examine-os em busca de erros.

Para obter detalhes sobre os motivos das tarefas interrompidas, consulte Tarefas interrompidas.

Razões para tarefas interrompidas

Na documentação de resolução de problemas AWS ECS você pode encontrar informações sobre causas comuns de erros relacionados à execução de tarefas e serviços. Veja abaixo detalhes sobre alguns motivos para tarefas interrompidas.

Task stopped with reason:

Fetching secret data from AWS Secrets Manager
in region YOUR_AWS_REGION:
secret arn:aws:secretsmanager:YOUR_AWS_REGION:YOUR_AWS_ACCOUNT:secret:YOUR_SECRET_NAME:
AccessDeniedException: User: arn:aws:sts::YOUR_AWS_ACCOUNT:assumed-role/YOUR_ROLE_NAME
is not authorized to perform: secretsmanager:GetSecretValue
on resource: arn:aws:secretsmanager:YOUR_AWS_REGION:YOUR_AWS_ACCOUNT:secret:YOUR_SECRET_NAME
status code: 400, request id: 9cf1881e-14d7-4257-b4a8-be9b56e09e3c"

Isso significa que a função do IAM especificada usando executionRoleArn na definição da tarefa não tem acesso ao segredo usado para NRIA_LICENSE_KEY. A função de execução deve ter uma política anexada que lhe conceda acesso para ler o segredo.

  1. Obtenha a função de execução da sua tarefa:

    bash
    $
    aws ecs describe-task-definition --task-definition newrelic-infra --output text --query taskDefinition.executionRoleArn

    Você pode substituir --task-definition newrelic-infra pelo nome da tarefa fargate que inclui o contêiner secundário.

    bash
    $
    aws ecs describe-task-definition --task-definition YOUR_FARGATE_TASK_NAME --output text --query taskDefinition.executionRoleArn
  2. Liste as políticas anexadas à função:

    bash
    $
    aws iam list-attached-role-policies --role-name YOUR_EXECUTION_ROLE_NAME

    Isso deve retornar 3 políticas AmazonECSTaskExecutionRolePolicy, AmazonEC2ContainerServiceforEC2Role e uma terceira que deve conceder acesso de leitura ao . No exemplo a seguir, a política é denominada NewRelicLicenseKeySecretReadAccess.

    {
    "AttachedPolicies": [
    {
    "PolicyName": "AmazonECSTaskExecutionRolePolicy",
    "PolicyArn": "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"
    },
    {
    "PolicyName": "AmazonEC2ContainerServiceforEC2Role",
    "PolicyArn": "arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role"
    },
    {
    "PolicyName": "YOUR_POLICY_NAME",
    "PolicyArn": "arn:aws:iam::YOUR_AWS_ACCOUNT:policy/YOUR_POLICY_NAME"
    }
    ]
    }
  3. Recupere a versão da política padrão:

    bash
    $
    aws iam get-policy-version --policy-arn arn:aws:iam::YOUR_AWS_ACCOUNT:policy/YOUR_POLICY_NAME --version-id $(aws iam get-policy --policy-arn arn:aws:iam::YOUR_AWS_ACCOUNT:policy/YOUR_POLICY_NAME --output text --query Policy.DefaultVersionId)

    Isso recupera as permissões da política. Deve haver uma entrada para Actionsecretsmanager:GetSecretValue se você usou AWS Secrets Manager para armazenar seu , ou uma entrada para ssm:GetParametersse você usou o parâmetro Store AWS Systems Manager:

Copyright © 2024 New Relic Inc.

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