Гид по технологиям

Мониторинг свободного места на диске в EC2 с помощью CloudWatch

• 4 min read • DevOps • Обновлено 28 Nov 2025
Мониторинг дискового пространства EC2 через CloudWatch
Мониторинг дискового пространства EC2 через CloudWatch

Коротко о терминах

  • EC2 — виртуальная машина в AWS.
  • CloudWatch — сервис мониторинга и тревог в AWS.
  • Metric — показатель (метрика) в CloudWatch.
  • Alarm — тревога, которая срабатывает при нарушении порога метрики.

Требования

  • Ubuntu на EC2 (инструкции адаптированы под Ubuntu).
  • Доступ в AWS Console и права на создание Access Key/Secret Key для пользователя IAM.
  • Разрешения для отправки пользовательских метрик в CloudWatch.

Установка и настройка CloudWatch

  1. Подключитесь к инстансу, который будете мониторить, и обновите пакеты:
apt-get update  
apt-get upgrade
  1. Установите библиотеки, которые нужны скрипту:
apt-get install libwww-perl libdatetime-perl
  1. Скачайте и распакуйте официальный пакет мониторинга:
cd /opt/  
wget http://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.1.zip  
unzip CloudWatchMonitoringScripts-1.2.1.zip  
rm CloudWatchMonitoringScripts-1.2.1.zip  
cd aws-scripts-mon
  1. Создайте конфигурационный файл с учётными данными AWS:
cp awscreds.template awscreds.conf
  1. Получите Access key и Secret key в AWS Console: Services -> All AWS Services -> IAM (или https://console.aws.amazon.com/iam/home).
    • Перейдите в Users -> выберите пользователя -> User Actions -> Manage Access Keys -> Create Access Key.

ВНИМАНИЕ: секретный ключ отображается только один раз. Сохраните его.

  1. Отредактируйте awscreds.conf и добавьте ключи:
nano awscreds.conf

Вставьте:

AWSAccessKeyId=XXXXXXXXXXXXXXX
AWSSecretKey=YYYYYYYYYYYYYYYYYY

Сохраните и закройте файл (Ctrl+O, затем Ctrl+X).

Настройка мониторинга свободного места на диске

Далее настроим cron, чтобы скрипт регулярно отправлял метрики в CloudWatch. В примере проверка каждые 5 минут.

nano /etc/cron.d/cloudwatch-monitor

Добавьте:

*/5 * * * * root /opt/aws-scripts-mon/mon-put-instance-data.pl --disk-space-avail --disk-path=/ --disk-path=/var --from-cron
chmod +x /etc/cron.d/cloudwatch-monitor
/etc/init.d/cron restart

В примере мониторятся файловые системы root (/) и /var. Вы можете указать другие пути.

Добавление метрики и создание тревоги в AWS Console

  1. Зайдите в AWS Console -> Services -> All AWS Services -> CloudWatch -> Metrics -> Linux System Metrics.
  2. Если cron работает и скрипт отправляет данные, вы увидите метрику с именем “DiskSpaceAvailabe” для каждого указанного пути.
  3. Создайте Alarm: выберите метрику, задайте порог, период и действие (например, отправка уведомления в SNS).

Важно: проверьте, в каких единицах отображается метрика в вашей консоли (байты или проценты). Это влияет на порог тревоги.

Примеры и рекомендации по порогам и поведению тревоги

  • Для систем с логами в /var установите отдельную тревогу для /var, чтобы отделять проблемы логирования от корневой файловой системы.
  • Рекомендуемые параметры тревоги (пример): Threshold = 10% свободного места OR Threshold = 5 GB свободного места; Period = 300s; Evaluation Periods = 2.
  • При критичных системах стоит отправлять уведомление в SNS и автоматически запускать runbook/авто-скрипт для очистки логов или расширения диска.

Поиск и устранение проблем (troubleshooting)

  • Нет метрик в CloudWatch: убедитесь, что cron запущен и скрипт имеет права на выполнение. Проверьте логи cron и права на /opt/aws-scripts-mon/mon-put-instance-data.pl.
  • Неверные учётные данные: проверьте awscreds.conf и корректность Access/Secret ключей.
  • Проблемы с сетью: инстанс должен иметь доступ к API CloudWatch (проверьте маршрутизацию и политики безопасности).
  • Разница единиц: если метрика отображается в байтах, а вы ожидаете проценты — проверьте опции скрипта и метрики в консоли.

Альтернативные подходы

  • CloudWatch Agent (унифицированный агент) — официальное решение, которое собирает больше метрик и проще масштабируется.
  • AWS Systems Manager (SSM) — можно запускать скрипты и собирать данные централизованно.
  • Собственные агенты с отправкой пользовательских метрик — подходит при необходимости кастомных измерений.

Плюсы официального скрипта: простота и минимальные зависимости. Минусы: ограничённая гибкость по сравнению с CloudWatch Agent.

Пошаговая методология внедрения (мини-SOP)

  1. Тест на dev/stage: установите скрипт на тестовый инстанс.
  2. Проверка отправки метрик: дождитесь появления метрик в CloudWatch.
  3. Настройка тревог в CloudWatch с уведомлением в SNS.
  4. Тест срабатывания: искусственно заполните диск, проверьте срабатывание Alarm и получение уведомлений.
  5. Ролл-аут на прод: поэтапный развёртывание с мониторингом результатов.

Рольные чек-листы

  • DevOps:
    • Установить пакет и cron.
    • Проверить права доступа и сеть.
    • Настроить Alarm и SNS.
  • Секьюрити:
    • Убедиться, что Access/Secret не доступны посторонним.
    • Ограничить права IAM до необходимых.
  • Владелец приложения:
    • Определить допустимый уровень свободного места и действия при срабатывании.

Критерии приёмки

  • Метрики DiskSpaceAvailabe появляются в CloudWatch для всех указанных путей.
  • Alarm срабатывает при искусственном снижении свободного места.
  • Уведомления успешно доставляются в SNS/Email/Slack.

Простая карта решений (Mermaid)

flowchart TD
  A[Нет метрик в CloudWatch?] -->|Да| B{cron запущен?}
  B -->|Нет| C[Включить cron и проверить /var/log/syslog]
  B -->|Да| D{Учётные данные верны?}
  D -->|Нет| E[Проверить awscreds.conf и ключи в IAM]
  D -->|Да| F{Сеть доступна к CloudWatch?}
  F -->|Нет| G[Проверить Security Group и маршрутизацию]
  F -->|Да| H[Посмотреть логи скрипта и права на файл]

Краткий словарь

  • DiskSpaceAvailabe — пользовательская метрика, отправляемая скриптом для указанной точки монтирования.

Итог

Настройка отправки метрик свободного места с помощью официального скрипта AWS — быстрый и надёжный способ добавить мониторинг дискового пространства для Ubuntu EC2. Для промышленных окружений рассмотрите переход на CloudWatch Agent и интеграцию с автоматическими действиями при срабатывании тревог.

Summary:

  • Установите скрипт и добавьте awscreds.conf.
  • Добавьте cron для регулярной отправки метрик.
  • Создайте Alarm в CloudWatch и протестируйте срабатывание.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро