Рубрики
Uncategorized

Мониторинг управляемых услуг AWS с использованием Elastic

В течение многих лет количество облачных нативных сервисов, предоставляемых облачными платформами, имеет пчелу … Tagged Elasticsearch, InfrastructureAutomation, DevOps, производительность.

В течение многих лет количество облачных нативных сервисов, предоставляемых облачными платформами, всегда увеличивалось. Платформы поставляются с их встроенными услугами мониторинга, но с административной точки зрения, это не так уж и полезно, поскольку не имеет консолидированного представления для конечных пользователей. Чтобы преодолеть это и предоставить общую платформу для различных журналов обслуживания и соответствующей ее визуализации, многие сторонние поставщики попадают в игру, такую как эластичный, датаадог, фланг и т. Д.

В этой статье мы увидим использование одного такого поставщика услуг: Elastic. Elastic предоставляет панели мониторинга коробки для визуализации управляемых услуг AWS, таких как LoadBalancers, VPC, S3, Cloudtrail и Billing. Мы будем использовать образцы веб -приложения, размещенного в AWS Cloud, чтобы обеспечить, как можно просматривать консолидированные панели панели.

Мониторинг панелей мониторинга для услуг AWS

После того, как мы завершаем упражнение, ниже приведен набор панели информационных панелей, который будет доступен для команды по мониторингу инфраструктуры, чтобы визуализировать, как функционируют услуги AWS, выявлять и устранять проблемы, относящиеся к любой из услуг.

Архитектура развертывания

Ниже приведено типичное веб -приложение, развернутое в AWS Cloud, в котором используется комбинация облачных нативных служб и сервера веб -приложений для обслуживания API. У нас также есть статический сайт, размещенный на CloudFront, чтобы обслуживать статический контент HTML/CSS.

Метрики

MetrricBeat — это легкий грузоотправитель, который вы можете установить на своих серверах для периодического сбора метрик (использование ЦП, диск ввода/вывода, сетевые байты внедрения/out) из операционной системы и от служб, работающих на сервере. MetricBeat принимает метрики и статистику, которые он собирает, и отправляет их на вывод, который вы указываете, такие как Elasticsearch или Logstash. Метрики по умолчанию поддерживает различные предварительно созданные модули, но в этой статье мы сосредоточимся на модуле AWS.

MetricBeat собирает две широкие категории метрик, то есть метрики хозяина и метрики управляемых услуг. Мы будем посвятить одну машину EC2 для запуска метрики MetricBeat для сбора метрик Managed Services и еще одного метрики на машине EC2, чтобы продемонстрировать метрики, собранные с хост -сервера.

ПРИМЕЧАНИЕ: Мы сосредоточимся на Agent MetricBeat с 7.4 и позже

AWS -модуль метрики

Модуль AWS для метрики в настоящее время поддерживает коллекцию коробок

  • EC2
  • Упругая нагрузка
  • Функции Lambda
  • Nat Gateway
  • Rds
  • S3 хранение
  • SNS
  • Кв
  • Транзитный шлюз
  • VPN
  • Биллинг

Прежде чем мы погрузимся в установку и настройку метрики, давайте поймем, как MetricBeat собирает, хранит и отправляет метрики в Elastic.

  1. Включить метрики CloudWatch для каждой из управляемых сервисов AWS. Это начнет отправлять услуги AWS в CloudWatch, откуда будет читать метрики. Это Документация Придает пошаговые инструкции о том, как включить CloudWatch для конкретной службы AWS.
  2. MetricBeat будет работать на машинах EC2 и настроен для сбора метрик Managed Services AWS. Это так же просто, как включение модуля AWS в файле конфигурации метрики.
  3. Выключение, метрики периодически запрашивают AWS CloudWatch для чтения метрик и отправляет его на сервер Elasticsearch, где он индексируется и визуализируется в Кибане.

Предварительные условия:

Запуск метрики требует следующего:

  1. Учетная запись AWS с учетными данными. Ниже раздел охватывает роли, необходимые для метрики для чтения метрик.
  2. Запуск эластичного стека (используйте свой самостоятельный упругий или Создайте бесплатное 14-дневное испытание на Elastic Cloud ). Эта статья не работает с AWS Managed Elasticsearch.
  3. Машина EC2 для запуска MetricBeat Agent

IAM Policy:

MetricBeat требует определенных разрешений на политику IAM для получения данных из требуемых ресурсов. А IAM Policy это сущность, которая определяет разрешения для объекта в вашей среде AWS. Создайте индивидуальную политику IAM для метрики с конкретными разрешениями. Пожалуйста, смотрите Создание политики IAM Больше подробностей. После создания MetricBeat IAM Policy вам необходимо добавить эту политику пользователю IAM, которая предоставила учетные данные на предыдущем шаге.

Следующая таблица показывает политику IAM, которую необходимо добавить в каждый метрики

Консолидированная политика IAM:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeRegions",
                "ec2:DescribeInstances"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:GetMetricData",
                "cloudwatch:ListMetrics"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "sts:GetCallerIdentity"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:ListAccountAliases"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "tag:getResources"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "rds:DescribeDBInstances",
                "rds:ListTagsForResource"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "sns:ListTopics"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "sqs:ListQueues"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ce:GetCostAndUsage"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

Агент метрики:

Установка агента метрики на машине EC2:

Запустите машину EC2, которая запускает Ubuntu и входит в систему на эту машину и запустите ниже команду для загрузки и установки MetricBeat.

скручивание -l -О https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.11.1-amd64.deb sudo dpkg -i metricbeat-7.11.1-amd64.deb

Редактировать конфигурацию:
Эластичное облако:

Изменить /и т.д./метрики/MetricBeat.yml Чтобы установить информацию об соединении для Elastic Cloud:

Cloud.id: <Получить свой Cloud_ID из Elastic Cloud> Cloud.Auth: «Elastic: «

Включить модуль AWS:

В конфигурации MetrricBeat вне коробки метрики, только системный модуль включен по умолчанию, поэтому вам нужно будет явно включить модуль AWS. Следующая команда включает конфигурацию AWS в Модули.d каталог на системах macOS и Linux:

Метриковые модули включают AWS

Установите учетные данные AWS в файле конфигурации:

Чтобы настроить учетные данные AWS, пользователи могут поместить учетные данные в конфигурацию модуля метрики или использовать переменные среды для их передачи. Возможность загружать учетные данные AWS из файла общих учетных данных добавляется в модуль AWS. Создайте общие учетные данные Следуя этим шагам. Файл будет создан в рамках ниже места.

For Windows:
  C:\Users\\.aws\credentials
For  Linux, MacOS, or Unix:
  ~/.aws/credentials

(Необязательно) Пользователи могут указать имя профиля, используя параметр credental_profile_name в конфигурации модуля AWS. Для получения более подробной информации о типах учетных данных AWS и поддерживаемых форматах, см. Конфигурация учетных данных AWS Для более подробной информации.

Пример конфигурации модуля AWS:
metricbeat.modules:
- module: aws
  period: 300s
  metricsets:
    - ec2
- module: aws
  period: 300s
  metricsets:
    - sqs
  regions:
    - us-west-1
- module: aws
  period: 86400s
  metricsets:
    - s3_request
    - s3_daily_storage
- module: aws
  period: 300s
  metricsets:
    - cloudwatch
  metrics:
    - namespace: AWS/EC2
      name: ["CPUUtilization"]
      statistic: ["Average"]    
    - namespace: AWS/EBS
    - namespace: AWS/ELB
      resource_type: elasticloadbalancing
- module: aws
  period: 60s
  metricsets:
    - elb
    - natgateway
    - rds
    - transitgateway
    - usage
    - vpn
  • Пространство имен: Пространство имен в AWS CloudWatch — это контейнер для метрик из конкретного приложения или службы. Каждая служба имеет свое собственное пространство имен, например, Amazon EC2 использует пространство имен AWS/EC2, а Amazon Elastic Block Storage использует AWS/Пространство имен EBS. Пожалуйста, смотрите полный список услуг и пространств имен, которые публикуют метрики CloudWatch для получения более подробной информации. Имя: Пользователи могут указать, каковы конкретные метрики CloudWatch, которые необходимо собирать для пространства имен.
  • Размеры: Размеры используются для уточнения метрик, возвращаемых для каждого экземпляра. Например, экземпляры, ImageID и Instancetype могут использоваться в качестве измерений для фильтрации данных, запрошенных из Amazon EC2.
  • Статистика: Пользователи могут указать один или несколько статистических методов для каждой настройки метрики CloudWatch. По умолчанию среднее, подсчет, максимальный, минимум и сумма будет собираться для каждой метрики.
  • Теги: resource_type_filter: теги для ресурсов не будут собираться, если этот параметр не установлен. Каждый ресурс в AWS имеет определенный тип ресурса, а общий формат — это Service [: resourceType]. Пожалуйста, смотрите Фильтры типа ресурса Больше подробностей.
  • credential_profile_name: Если конфигурация учетных данных AWS будет выполнена, она будет автоматически подхвачена, иначе можно ввести детали вручную.
Начать метрики:

Команда настройки загружает мониторные панели Kibana. Если инструментальные панели уже настроены, пропустите эту команду.

Sudo MetricBeat Setup Sudo Service MetricBeat Start

Статус модуля:

MetricBeat поставляется с предварительно построенными мониторингами Kibana и UIS для визуализации данных журнала. Монитонные панели были бы загружены ранее, когда была запущена команда настройки.

В навигации по боковой стороне Кибаны:

  1. Нажмите обнаружить, чтобы увидеть данные метрики. Также убедитесь, что был выбран предварительно определенный шаблон индекса MetricBeat-*.
  2. Нажмите на панель панели, затем найдите «AWS Metric*», выберите инструментальную панель, которую вы хотите открыть.

FileBeat

FileBeat является легким грузоотправителем для пересылки и централизации данных журнала. Установлен как агент на ваших серверах, FileBeat контролирует файлы журнала или местоположения, которые вы указываете, собирает события журнала и пересылает их либо в Elasticsearch, либо Logstash для индексации. FileBeat по умолчанию поддерживает различные предварительно созданные модули, но в этой статье мы сосредоточимся на модуле AWS.

AWS -модуль FileBeat:

Модуль AWS для FileBeat в настоящее время поддерживает следующее:

  • Cloudtrail
  • Cloudwatch
  • EC2
  • Упругая нагрузка
  • S3 доступ
  • Журналы потока VPC

Предварительные условия:

Запуск FileBeat требует следующего:

  1. Настройте сервисы AWS для отправки журналов на S3. Все файлы могут быть размещены на одном ведре.
  2. Настройка службы SQS в учетной записи AWS. ( Sqs Service ). Эта служба SQS будет использоваться для уведомления FileBeat, когда новый файл помещен в ковш S3, настроенный на шаге 1. Учетная запись AWS с учетными данными.
  3. Запуск эластичного стека. (Это может быть кластер в 4. Служба Elasticsearch на эластичном облаке)
  4. Агент FileBeat

Агент FileBeat:

Установка агента FileBeat

скручивание -l -О https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.11.1-amd64.deb sudo dpkg -i filebeat-7.11.1-amd64.deb

Настройка

  1. Изменить /etc/filebeat/filebeat.yml Чтобы установить информацию об соединении для Elastic Cloud:

Cloud.id: <Получить свой Cloud_ID из Elastic Cloud> Cloud.Auth: «Elastic: «

  1. Включите S3 отправить уведомление на SQS, когда новый файл помещается в ведро.

Шаги по включению уведомления о событиях S3 на SQS находятся задокументировано здесь .

Включить модуль AWS

Из конфигурации FileBeat нужно будет явно включить модуль AWS. Следующая команда включает конфигурацию AWS в Модули.d каталог на системах macOS и Linux:

модули sudo filebeat включают AWS

Установить учетные данные AWS в файле конфигурации

(Пропустите, если это уже было сделано во время установки метрики) Чтобы настроить учетные данные AWS, пользователи могут поместить учетные данные в конфигурацию модуля FileBeat или использовать переменные среды для их передачи. Создайте общие учетные данные Следуя этим шагам. Файл будет создан в рамках ниже места.

For Windows:
C:\Users\\.aws\credentials

For  Linux, MacOS, or Unix:
~/.aws/credentials

(Необязательно) Пользователи могут указать имя профиля, используя параметр credental_profile_name в конфигурации модуля AWS. Для получения более подробной информации о типах учетных данных AWS и поддерживаемых форматах, см. Конфигурация учетных данных AWS Для более подробной информации.

Пример конфигурации AWS для FileBeat:

- module: aws
  cloudtrail:
    enabled: true
    var.queue_url: https://sqs.myregion.amazonaws.com/123456/myqueue
  cloudwatch:
    enabled: true
    var.queue_url: https://sqs.myregion.amazonaws.com/123456/myqueue
  ec2:
    enabled: true
    var.queue_url: https://sqs.myregion.amazonaws.com/123456/myqueue
  elb:
    enabled: true
    var.queue_url: https://sqs.myregion.amazonaws.com/123456/myqueue
  s3access:
    enabled: true
    var.queue_url: https://sqs.myregion.amazonaws.com/123456/myqueue
  vpcflow:
    enabled: true
    var.queue_url: https://sqs.myregion.amazonaws.com/123456/myqueue
  • var.queue_url: (требуется) URL -адрес aws sqs.

Start FileBeat:

Команда настройки загружает мониторные панели Kibana. Если инструментальные панели уже настроены, пропустите эту команду.

Sudo FileBeat Setup Sudo Service FileBeat Start

Статус модуля:

FileBeat поставляется с предварительно созданными мониторными панелями Kibana и UIS для визуализации данных журнала. Монитонные панели были бы загружены ранее, когда была запущена команда настройки.

В навигации по боковой стороне Кибаны:

  1. Нажмите обнаружить, чтобы увидеть данные FileBeat. Также убедитесь, что выбрана предварительно определенная шаблон индекса FileBeat-*.
  2. Нажмите на панель панели, затем найдите «AWS FileBeat*», выберите инструментальную панель, которую вы хотите открыть.

Оригинал: «https://dev.to/varunpappu/monitoring-aws-managed-services-using-elastic-46f4»