• 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: gerar log detalhado

Problema

Quando a resolução de problemas é a integração do ECS no host, você pode gerar um log detalhado por alguns minutos para localizar e investigar erros. Isto pode ser útil para conduzir sua própria resolução de problemas ou ao fornecer informações ao suporte New Relic .

O registro detalhado gera muitos dados muito rapidamente. Ao terminar de gerar o log, defina verbose: 0 para reduzir o consumo de espaço em disco.

Você pode automatizar esse processo usando o comando newrelic-infra-ctl . Para obter mais informações, consulte Resolução de problemas com um agente em execução.

Solução

A geração de arquivo de log detalhado requer a edição do arquivo de definição de tarefa. Para obter um arquivo de configuração de amostra que inclui todas as configurações aplicáveis, consulte Configurações de infraestrutura.

Você tem várias opções para implementar o log detalhado:

Usando variável de ambiente de definição de tarefa

Para ativar o log detalhado alterando a variável de ambiente e reiniciando a tarefa:

  1. Edite sua definição de tarefa. Altere o valor de NRIA_VERBOSE de 0 para:

    • 1 para log detalhado sempre ativo
    • 2 para registro inteligente
    • 3 para enviar para New Relic

    Leia mais sobre essas opções.

  2. Salve sua definição de tarefa.

  3. Atualize seu serviço para usar a definição de tarefa recém-registrada.

  4. Se você escolheu NRIA_VERBOSE=3 e não está enviando o registro diretamente para New Relic, você terá duas opções para visualizar e fazer download do registro:

  5. Retorne suas configurações ao padrão:

    1. Desative o registro detalhado editando sua definição de tarefa e definindo NRIA_VERBOSE como 0.
    2. Salve sua definição de tarefa.
    3. Atualize seu serviço para a versão mais recente da sua tarefa.
  6. Examine o arquivo de log em busca de erros.

  7. Se você precisar enviar seu arquivo de log para o suporte da New Relic:

    1. Inclua a linha no seu arquivo de log que contém a versão de integração do ECS:

      New Relic ECS integration version X.YY.ZZZ
    2. Anexe o arquivo de log ao seu ticket de suporte, junto com sua definição de tarefa .yml arquivo.

Recuperar log via SSH (apenas tipo de lançamento EC2)

Para obter log via SSH:

  1. Edite sua definição de tarefa. Altere o valor de NRIA_VERBOSE de 0 para:

    • 1 para log detalhado sempre ativo
    • 2 para registro inteligente
    • 3 para enviar para New Relic

    Leia mais sobre essas opções.

  2. SSH em uma de suas instâncias.

  3. Encontre o ID do contêiner do contêiner de integração New Relic, executando o comando docker ps -a. O nome do contêiner deve ser nri-ecs.

  4. Salve o log do contêiner com o comando docker logs NRI_ECS_CONTAINER_ID > logs.txt. Deixe o comando em execução por cerca de três minutos para gerar dados de log suficientes.

  5. Continue com as instruções na seção ativar log detalhado .

Encaminhe o log para o CloudWatch e baixe-os com awscli

Para obter log via CloudWatch:

  1. Edite sua definição de tarefa. Altere o valor de NRIA_VERBOSE de 0 para:

    • 1 para log detalhado sempre ativo
    • 2 para registro inteligente
    • 3 para enviar para New Relic

    Leia mais sobre essas opções.

  2. Usamos um grupo log do CloudWatch chamado /newrelic-infra/ecs para encaminhar o log. Para ver se já existe, execute:

    bash
    $
    aws logs describe-log-groups --log-group-name-prefix /newrelic-infra/ecs

    Se existir um grupo log com esse prefixo, você obterá esta saída:

    {
    "logGroups": [
    {
    "logGroupName": "/newrelic-infra/ecs",
    "creationTime": 1585828615225,
    "metricFilterCount": 0,
    "arn": "arn:aws:logs:YOUR_REGION:YOUR_AWS_ACCOUNT:log-group:/newrelic-infra/ecs:*",
    "storedBytes": 122539356
    }
    ]
    }

    Como esse comando corresponde a grupos log com prefixos, certifique-se de que o nome do grupo de log retornado seja exatamente /newrelic-infra/ecs. Se o grupo log não existir, a saída será:

    {
    "logGroups": []
    }
  3. Se o grupo log não existir, crie-o executando:

    bash
    $
    aws logs create-log-group --log-group-name /newrelic-infra/ecs
  4. Edite sua definição de tarefa. Na definição do contêiner para o contêiner newrelic-infra, adicione o seguinte logConfiguration:

    "logConfiguration": {
    "logDriver": "awslogs",
    "options": {
    "awslogs-group": "/newrelic-infra/ecs",
    "awslogs-region": "AWS_REGION_OF_YOUR_CLUSTER",
    "awslogs-stream-prefix": "verbose"
    }
    }
  5. Registre a nova versão da tarefa e atualize seu serviço.

  6. Em seguida, você procurará o fluxo log relevante. Se você tiver várias instâncias da tarefa em execução, todas elas enviarão seus logs para o mesmo grupo log, mas cada uma terá seu próprio fluxo log . Os nomes dos fluxos de log seguem a estrutura AWSLOGS_STREAM_PREFIX/TASK_FAMILY_NAME/TASK_ID. Neste caso, será verbose/newrelic-infra/TASK_ID.

    Para obter todos os fluxos log de um determinado grupo log, execute este comando:

    bash
    $
    aws logs describe-log-streams --log-group-name /newrelic-infra/ecs

    Veja a seguir um exemplo de saída de um grupo log com dois fluxos:

    {
    "logStreams": [
    {
    "logStreamName": "verbose/newrelic-infra/9dfb28114e40415ebc399ec1e53a21b7",
    "creationTime": 1586166741197,
    "firstEventTimestamp": 1586166742030,
    "lastEventTimestamp": 1586173933472,
    "lastIngestionTime": 1586175101220,
    "uploadSequenceToken": "49599989655680038369205623273330095416487086853777112338",
    "arn": "arn:aws:logs:AWS_REGION_OF_YOUR_CLUSTER:YOUR_AWS_ACCOUNT:log-group:/newrelic-infra/ecs:log-stream:verbose/newrelic-infra/9dfb28114e40415ebc399ec1e53a21b7",
    "storedBytes": 0
    },
    {
    "logStreamName": "verbose/newrelic-infra/f6ce0be416804bc4bfa658da5514eb00",
    "creationTime": 1586166745643,
    "firstEventTimestamp": 1586166746491,
    "lastEventTimestamp": 1586173037927,
    "lastIngestionTime": 1586175100660,
    "uploadSequenceToken": "49605664273821671319096446647846424799651902350804230514",
    "arn": "arn:aws:logs:AWS_REGION_OF_YOUR_CLUSTER:YOUR_AWS_ACCOUNT:log-group:/newrelic-infra/ecs:log-stream:verbose/newrelic-infra/f6ce0be416804bc4bfa658da5514eb00",
    "storedBytes": 0
    }
    ]
    }
  7. Na lista anterior de fluxos log, identifique aquele com o ID da tarefa cujo log você deseja recuperar e use logStreamName neste comando:

    bash
    $
    aws logs get-log-events --log-group-name /newrelic-infra/ecs --log-stream-name "LOG_STREAM_NAME" --output text > logs.txt
  8. Continue com as instruções para ativar o log detalhado .

Do contêiner em execução

Para ativar o log detalhado executando um comando no contêiner em execução:

  1. SSH em uma de suas instâncias.

  2. Encontre o ID do contêiner do contêiner de integração New Relic executando o comando docker ps -a. O nome do contêiner deve ser nri-ecs.

  3. Ative o registro detalhado por um período limitado usando newrelic-infra-ctl. Execute o comando:

    bash
    $
    docker exec INTEGRATION_CONTAINER_ID /usr/bin/newrelic-infra-ctl

    Para obter mais detalhes, consulte Solucionar problemas do agente.

  4. Salve o log do contêiner com o comando

    bash
    $
    docker logs INTEGRATION_CONTAINER_ID > logs.txt

    Deixe o comando em execução por cerca de três minutos para gerar dados de log suficientes.

  5. Examine o arquivo de log em busca de erros.

Se você precisar enviar seu arquivo de log para o suporte da New Relic:

  1. Inclua a linha no seu arquivo de log que contém a versão de integração do ECS:

    New Relic ECS integration version X.YY.ZZZ
  2. Anexe o arquivo de log ao seu ticket de suporte, junto com sua definição de tarefa .yml arquivo.

Copyright © 2024 New Relic Inc.

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