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

Você pode configurar e coletar métricas de um cluster do Amazon EMR instalando o agente CloudWatch no Amazon Elastic Compute Cloud (Amazon EC2). Depois de instalar o agente do CloudWatch, você pode usar 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 especificar um namespace diferente ao configurar o agente.

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. O arquivo de configuração do agente é um arquivo JSON que especifica as métricas e os logs que o agente deve coletar, incluindo métricas personalizadas. No exemplo a seguir para coletar as métricas de um servidor Linux, quatro métricas de CPU, duas métricas de disco e uma métrica de memória estão sendo coletadas. O agente 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 (exemplo: emr-cloudwatchagent-bootstrap.sh) para sua localização do Amazon Simple Storage Service (Amazon S3).

------emr-cloudwatchagent-bootstrap.sh---------
#!/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 faz o seguinte:

  • Instala o agente do CloudWatch e o cliente collectd.
  • Copia o arquivo config.json do Amazon S3 para o caminho local /home/hadoop.
  • Executa o agente do 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 agente. Por padrão, esse namespace é chamado CWagent. Para mais informações, consulte Visualizar de métricas de collectd importadas pelo agente do CloudWatch.


AWS OFICIAL
AWS OFICIALAtualizada há 2 anos