Forem

Beatriz Oliveira for Sysadminas

Posted on • Edited on

3 2

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

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more →

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

👋 Kindness is contagious

Engage with a sea of insights in this enlightening article, highly esteemed within the encouraging DEV Community. Programmers of every skill level are invited to participate and enrich our shared knowledge.

A simple "thank you" can uplift someone's spirits. Express your appreciation in the comments section!

On DEV, sharing knowledge smooths our journey and strengthens our community bonds. Found this useful? A brief thank you to the author can mean a lot.

Okay