Ir para o conteúdo

Como posso coletar métricas personalizadas das instâncias de cluster do Amazon EMR e monitorá-las no CloudWatch?

3 minuto de leitura
0

Quero configurar métricas personalizadas para instâncias de cluster do Amazon EMR, como uso de memória, CPU e espaço em disco. Em seguida, quero monitorar as métricas usando o Amazon CloudWatch.

Resolução

**Observação:**Se você usa o Amazon EMR versão 7.0.0 ou posterior, instale o CloudWatch Agent como um aplicativo. Para obter mais informações, consulte o Amazon CloudWatchh.

Para configurar e coletar métricas de um cluster do Amazon EMR instale o agente CloudWatch no Amazon Elastic Compute Cloud (Amazon EC2). Depois de instalar o agente do CloudWatch, use as métricas coletadas além das métricas publicadas padrão para instâncias do Amazon EC2.

Você pode armazenar e visualizar as métricas coletadas com o agente do CloudWatch no CloudWatch da mesma forma que qualquer outra métrica do CloudWatch. O namespace padrão para métricas coletadas pelo agente do CloudWatch é CWAgent. No entanto, você pode configurar o atendente especificando um namespace diferente.

Para configurar o agente do CloudWatch e publicar métricas personalizadas dos nós de cluster do Amazon EMR, siga estas etapas:

  1. Crie um exemplo de arquivo de configuração do agente CloudWatch (config.json) com o exemplo de configuração a seguir. No exemplo a seguir quatro métricas de CPU, duas métricas de disco e uma métrica de memória coletam as métricas de um servidor Linux. O qtendente está configurado para receber essas métricas de um cliente collectd:

    {
      "agent": {
        "metrics_collection_interval": 60,
        "run_as_user": "root"
      },
      "metrics": {
        "aggregation_dimensions": [
          [
            "InstanceId"
          ]
        ],
        "append_dimensions": {
          "ImageId": "${aws:ImageId}",
          "InstanceId": "${aws:InstanceId}",
          "InstanceType": "${aws:InstanceType}"
        },
        "metrics_collected": {
          "collectd": {
            "metrics_aggregation_interval": 60
          },
          "cpu": {
            "measurement": [
              "cpu_usage_idle",
              "cpu_usage_iowait",
              "cpu_usage_user",
              "cpu_usage_system"
            ],
            "metrics_collection_interval": 60,
            "resources": [
              "*"
            ],
            "totalcpu": false
          },
          "disk": {
            "measurement": [
              "used_percent",
              "inodes_free"
            ],
            "metrics_collection_interval": 60,
            "resources": [
              "*"
            ]
          },
          "mem": {
            "measurement": [
              "mem_used_percent"
            ],
            "metrics_collection_interval": 60
          },
          "statsd": {
            "metrics_aggregation_interval": 60,
            "metrics_collection_interval": 10,
            "service_address": ":8125"
          }
        }
      }
    }
  2. Copie o seguinte script de bootstrap para seu local do Amazon Simple Storage Service (Amazon S3):

    #!/bin/bash
    
    sudo yum install amazon-cloudwatch-agent -y
    sudo amazon-linux-extras install collectd -y
    
    aws s3 cp <s3 path for config.json> /home/hadoop/config.json
    
    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:///home/hadoop/config.json

    O script primeiro instala o cliente collectd do atendente CloudWatch. A seguir, copia o arquivo config.json do Amazon S3 para o caminho local /home/hadoop. Finalmente, o script executa o atendente CloudWatch com o arquivo config.json.

  3. Adicione a ação bootstrap ao cluster do Amazon EMR.

Depois de importar as métricas de collectd para o CloudWatch, você poderá visualizá-las como gráficos de séries temporais. Você também pode definir alarmes para receber notificações quando as métricas excederem um determinado limite especificado.

Para visualizar as métricas de collectd no console do CloudWatch, escolha o namespace para as métricas que são coletadas pelo atendente. Por padrão, esse namespace é chamado CWagent. Para mais informações, consulte Visualizar de métricas de collectd importadas pelo agente do CloudWatch.

AWS OFICIALAtualizada há 2 anos