Назад | Перейти на главную страницу

AWS CloudWatch предупреждает о нарушении метрики дискового пространства после перезагрузки

Я заметил, что при создании сигнала тревоги для мониторинга использования диска тома ebs, смонтированного с использованием nvme, на более новых типах экземпляров ec2, «устройство» отправляется как метрическое измерение. Проблема в том, что имя устройства nvme может измениться при перезагрузке экземпляра ec2, поэтому ранее установленный сигнал тревоги больше не отслеживает данные с правильной метрики.

Я использую агент CloudWatch для отправки показателей из экземпляра ec2 https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html на сервере ubuntu 16.04 размеры, привязанные к метрике для disk_used_percent, следующие:

"path", "/home", "host", "ip-xxx-xxx-xxx-xxx", "device", "nvme1n1", "fstype", "ext4"

Я обнаружил, что исключение любого из этих параметров из сигнала тревоги не может связать сигнал тревоги с метрикой, поэтому я предполагаю, что все они необходимы для того, чтобы сигнал тревоги был связан с правильной метрикой.

Когда я перезагружаю сервер, размеры могут измениться на:

"path", "/home", "host", "ip-xxx-xxx-xxx-xxx", "device", "nvme3n1", "fstype", "ext4"

Устройство было изменено, и сигнал тревоги для этой метрики больше не связан с какой-либо метрикой, поскольку размеры больше не совпадают.

Я изучил конфигурацию агента, чтобы узнать, есть ли способ изменить отправленные размеры, но не могу найти способ сделать это. https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html

Это действительно нужно только path и host размеры, которые нужно отправить, чтобы они были уникальными, поэтому я мог опустить device и fstype габариты, если есть возможность.

Как получить сигнал тревоги, который может сохраняться при перезагрузке экземпляра ec2 без необходимости перенастройки?

JamieD,

Я смог выполнить эту задачу с помощью сценария bash.

            #!/usr/bin/env bash

            function push_disk_used {
              aws cloudwatch put-metric-data \
              --metric-name "$1" \
              --namespace Test \
              --unit Percent \
              --value "$2" \
              --dimensions ClusterName=TestInstance \
              --region "$REGION"
            }

            # MongoDB Root Disk Space
            HOME_DISK_USED=$(df -H /home | awk 'NR ==2 {print $5}' | sed -r 's/%//')
            echo 'MongoDB Home Disk Used Percent:' "$HOME_DISK_USED";
            push_disk_used Home_DISK_USED "$HOME_DISK_USED"

Настройте задание cron для отправки метрик disk_used_percent, а также настройте сигналы тревоги со следующими свойствами в облачной информации.

  Namespace: Test
  MetricName: HOME_DISK_USED
  Dimensions:
    - Name: ClusterName
      Value: TestInstance