DEV Community

Beatriz Oliveira for Sysadminas

Posted on • Updated on

 

Monitore suas instâncias do EC2 na AWS com o AWS Module do Metricbeat

O que é o EC2?

Através do Amazon Elastic Compute Cloud (Amazon EC2) é possível criar servidores virtuais na AWS. Ao utilizar o EC2 você pode subir a quantidade de instâncias que precisar, além de conseguir escalar e desescalar elas de acordo com a sua necessidade. Também é possível fazer configurações de rede, segurança e armazenamento nesses hosts.
Conheça mais sobre o EC2 no site da Amazon.

Como utilizar o módulo AWS do Metricbeat para monitorar suas instâncias EC2

Através desse módulo AWS é possível coletar as métricas de monitoramento do Cloudwatch e enviar elas para o Elasticsearch, esse é um jeito alternativo de monitorar suas instâncias, pois você também poderia usar o módulo System para monitorar elas, a diferença é que para usar o módulo System, você teria que configurar ele em todos os hosts do seu ambiente, já o módulo AWS Metrics te permite executar ele apenas em um host.

Para começar esse lab, você precisará ter um ambiente com um host EC2 e outro ambiente com o Elasticsearch e com o Kibana configurados.

Assim que você tiver esses pré requisitos, poderá começar a seguir os passos abaixo para configurar suas permissões na AWS, configurar o Metricbeat para coletar os dados das instâncias EC2.

Criação do usuário e política na Amazon

  • Para ter acesso as informações do seu ambiente na AWS vai ser necessário que você crie um usuário para ter uma Access Key e uma Secret Key. Acesse o IAM no console da AWS, crie um usuário e salve a Access Key a Secret Key.
    Alt Text

  • Depois de criar o usuário, você precisará criar uma politica do IAM com os seguintes níveis de acesso:

Cloudwatch: ListMetrics e GetMetricData
Alt Text

EC2: DescribeRegions e DescribeInstances
Alt Text

  • Por fim revise e crie a política como mostra a imagem abaixo.
    Alt Text

  • Atribua a política que você criou ao usuário que você vai usar.
    Alt Text

Instalação e configuração do Metricbeat

Para instalar o Metricbeat nos hosts, siga os passos descritos abaixo.

  • Faça o download do Metricbeat nesse link.

  • Instale o Metricbeat:
    Windows: PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-metricbeat.ps1
    Linux: sudo rpm -vi metricbeat-7.10.1-x86_64.rpm

  • Acesse o arquivo de configuração do Metricbeat:
    Windows: C:\Program Files\Metricbeat\metricbeat.yml
    Linux: /etc/metricbeat/metricbeat.yml

  • Insira nele as informações de conexão com o Elasticsearch e com o Kibana:

output.elasticsearch:
  hosts: ["url_do_elasticsearch:9200"]
setup.kibana:
  host: ["url_do_kibana:5601"]
Enter fullscreen mode Exit fullscreen mode
  • Habilite e configure o módulo da AWS:
    Windows: .\metricbeat.exe modules enable aws
    Linux: sudo metricbeat modules enable aws

  • Para modificar as configurações do módulo, altere o arquivo aws.yml:
    Windows: modules.d/aws.yml
    Linux: /etc/metricbeat/modules.d/aws.yml

Por padrão, o arquivo vem com as seguintes informações:

# Module: aws
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/7.10/metricbeat-module-aws.html
- module: aws
  period: 1m
  metricsets:
    - elb
    - natgateway
    - rds
    - transitgateway
    - usage
    - vpn
- module: aws
  period: 5m
  metricsets:
    - cloudwatch
  metrics:
    - namespace: AWS/EC2
      #name: ["CPUUtilization", "DiskWriteOps"]
      resource_type: ec2:instance
      #dimensions:
      #  - name: InstanceId
      #    value: i-0686946e22cf9494a
      #statistic: ["Average", "Maximum"]
- module: aws
  period: 5m
  metricsets:
    - dynamodb
    - ebs
    - ec2
    - lambda
    - rds
    - sns
    - sqs
- module: aws
  period: 24h
  metricsets:
    - billing
  cost_explorer_config:
    group_by_dimension_keys:
      - "AZ"
      - "INSTANCE_TYPE"
      - "SERVICE"
#    group_by_tag_keys:
#      - "aws:createdBy"
- module: aws
  period: 24h
  metricsets:
    - s3_daily_storage
- module: aws
  period: 1m
  latency: 5m
  metricsets:
    - s3_request
Enter fullscreen mode Exit fullscreen mode

Também insira nele as credenciais de acesso a AWS que você criou anteriormente:

metricbeat.modules:
- module: aws
  period: 300s
  metricsets:
    - "ec2"
  access_key_id: '${AWS_ACCESS_KEY_ID:"SUA ACCESS KEY"}'
  secret_access_key: '${AWS_SECRET_ACCESS_KEY:"SUA SECRET KEY"}'
  default_region: '${AWS_REGION:us-east-1}'
Enter fullscreen mode Exit fullscreen mode
  • Carregue os dashboards do módulo:
    Windows: .\metricbeat.exe setup
    Linux: sudo metricbeat setup

  • Inicie o serviço do Metricbeat:
    Windows: Start-Service metricbeat
    Linux: sudo service metricbeat start

Depois disso, você conseguirá ver os logs do seu ambiente no discover, além de ter dashboards com informações e métricas do estado das suas instâncias na Amazon.

Logs
Alt Text

Métricas
Alt Text

Oldest comments (0)

An Animated Guide to Node.js Event Loop

Node.js doesn’t stop from running other operations because of Libuv, a C++ library responsible for the event loop and asynchronously handling tasks such as network requests, DNS resolution, file system operations, data encryption, etc.

What happens under the hood when Node.js works on tasks such as database queries? We will explore it by following this piece of code step by step.