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

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

24
задан 8 May 2011 в 13:28
7 ответов

Нет никакого пути к управлению EC2 и контролирующим инструментам, чтобы дать Вам эти данные, потому что файловая система Ваших экземпляров ТОЛЬКО доступна самим экземпляром. И базовая архитектура аппаратных средств и модель обеспечения безопасности требуют этого ограничения. Думайте о том, как плохо это было бы, если программное обеспечение вне Вашего компьютера могло бы ввести по абсолютному адресу вокруг в файлах на Ваших жестких дисках!

Вот сдержанный способ сделать крон (установленный в большинстве систем так или иначе), проверяют эти данные на Ваш периодически. Ваши системы должны иметь минимальные требования для обработки корневых почтовых уведомлений так или иначе. Я рекомендую иметь, по крайней мере, материалистический агент исходящей почты и настроить корень или псевдоним администратора, чтобы передать Вам во всех системах, которые Вы администрируете. Много программ включая cron ожидайте эту конфигурацию.

Вы могли добавить это к своему crontab:

0 0 * * * test $(df / | grep ^/ | awk '{print $4}') -lt 1048576 && echo "Warning: Free disk space is less than 1G on /"

Сломать это, это

  • Создает задание это руны один раз в день в 0:00.
  • Крон автоматически обрабатывает пользование электронной почтой системного администратора с выводом заданий. Это задание только производит вывод, если существует ошибка или если дисковое пространство является низким
  • test наборы команд простое сравнение оболочки с помощью -lt меньше, чем оператор и фиксированное значение, эквивалентное свободному пространству на 1 ГБ.
  • df управляйте тестирует свободное пространство на / файловая система
  • grep получает Вас просто строка вывода, в котором Вы нуждаетесь вместо заголовков df включает.
  • awk get's просто четвертый столбец в выводе, числе свободного пространства.
  • && говорит для выполнения следующей команды только если первая ( test x -lt y) возвращает true.
5
ответ дан 28 November 2019 в 20:18

Я записал сценарий, поскольку я должен был проверить несколько серверов в своей группе EC2. Этому нужен файл со списком каждого IP/доменного имени сервера на одной строке.

#! /bin/bash

ADMIN="serveralerts@youraddress.com"
ALERT=85

for SERVER in `cat ~/scripts/servers.txt` do
ssh -i ~/.ssh/yourkey.pem $SERVER df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
echo $output
usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1  )
partition=$(echo $output | awk '{ print $2 }' )
if [ $usep -ge $ALERT ]; then
echo "Running out of space \"$partition ($usep%)\" on $SERVER as on $(date)" | 
mail -s "Alert: Almost out of disk space $usep" $ADMIN
fi
done done
4
ответ дан 28 November 2019 в 20:18
0
ответ дан 28 November 2019 в 20:18

Крон - ваш друг. Поместите этот файл в свой каталог /etc/cron.daily , и он будет запускаться один раз в день:

#!/bin/sh
# this script is /etc/cron.daily/diskAlert.cron    
ADMIN="jdoe@maildomain.com"
ALERT=90    
df -PkH | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $6 }' | while read output;
do
  usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 )
  partition=$(echo $output | awk '{print $2}' )
  if [ $usep -ge $ALERT ]; then
    echo "Running out of space \"$partition ($usep%)\" on $(hostname) as on $(date)" |
    mail -s "Alert: Almost out of disk space $usep%" $ADMIN
  fi
done

ПРИМЕЧАНИЕ. Этот сценарий сообщит, что смонтированные компакт-диски заполнены.

0
ответ дан 28 November 2019 в 20:18

Amazon provides scripts for this as of march 2012:

Amazon CloudWatch Monitoring Scripts for Linux: http://aws.amazon.com/code/8720044071969977

13
ответ дан 28 November 2019 в 20:18

Пошаговые инструкции по настройке для экземпляра EC2 в CloudWatch:

http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/mon-scripts.html

2
ответ дан 28 November 2019 в 20:18

Это быстрый сценарий PowerShell, который я написал и который запускается на нашем контроллере в AWS и рассылает электронное письмо группе получателей, если диск переполнен. Он занимает csv с 2 столбцами - одно заглавное имя с именем компьютера и один заглавный диск с буквой диска. У нас нет почтового сервера в нашей среде AWS, поэтому я настроил его на отправку через SES. Вы также можете слегка изменить сценарий, чтобы просто посылать отчет об использовании диска так часто, если хотите. Просто подумал, что напишу это здесь, так как все решения, которые я нашел, были для экземпляров Linux.

$CSVPath = "c:\Scripts\computerNames.csv"
$computerName = new-object System.Data.DataSet
$computerName = Import-CSV $CSVPath
$AwsUn = "" 
$AwsPw = ConvertTo-SecureString "" -AsPlainText -Force

$cred = New-Object -typename System.Management.Automation.PSCredential -ArgumentList $AwsUn, $AwsPw

Foreach($name in $computerName)
{

    $dl = $name.drive

    $Utilization = Get-WmiObject win32_Volume -ComputerName $name.computerName -Filter "DriveLetter = '$($dl)'"|   Foreach{ “{0:N2}” -f ((1-$_.FreeSpace / $_.Capacity)*100) } 

    if($Utilization -gt 90)
    {
        Send-MailMessage -From Sender to Recipients -subject (
    "$($name.computerName) Disk utilization" )-Body "The $dl drive on the AWS instance $($name.computerName) has $utilization% disk utilization.   Please log in and delete log files or contact the Network Operations team to increase the storage allocated to this instance"  -SmtpServer email-smtp.us-west-2.amazonaws.com -Credential $cred -useSSL -port 25
    } 


}
0
ответ дан 28 November 2019 в 20:18

Теги

Похожие вопросы