EC2 डिस्क स्थान को स्वचालित रूप से जांचने का सबसे आसान तरीका है और अगर यह कम चल रहा है तो सतर्क हो सकता है?


25

अमेज़ॅन लिनक्स एएमआई चल रहा है। ऐसा लगता है कि CloudWatch मुफ्त डिस्क स्थान की जांच नहीं करता है। मेरे पास कई सर्वर हैं और आदर्श रूप से प्रत्येक को मेल सर्वर, डिस्क स्थान की जांच करने के लिए स्क्रिप्ट आदि को कॉन्फ़िगर करने की आवश्यकता नहीं है।

क्या ऐसा करने का कोई सरल तरीका है?

जवाबों:


13

अमेज़न मार्च 2012 के लिए इसके लिए स्क्रिप्ट प्रदान करता है:

लिनक्स के लिए अमेज़ॅन क्लाउडवॉच मॉनिटरिंग लिपियों : http://aws.amazon.com/code/8720044071969977


स्क्रिप्ट काफी सीधे आगे दिखाई देती हैं। जो चीज मुझे चिंतित करती है, वह यह है कि इसे एडब्ल्यूएस एक्सेस कुंजी और गुप्त की एक ज्ञात जोड़ी की आवश्यकता है। किसी को पता है कि क्या यह भी EC2 में एक अस्थायी जोड़ी पाने के लिए भूमिका निभाएगा या अगर मुझे खुद को कोड करना होगा?
सर्गियोपेरेरा

मेरे अपने प्रश्न का उत्तर देने के लिए। हाँ! स्क्रिप्ट EC2 उदाहरण (यदि मौजूद है) के IAM भूमिका का उपयोग करेंगे। पकड़ यह है कि आपके द्वारा चुनी गई भूमिका में आवश्यक CloudWatch अनुमतियाँ होनी चाहिए।
सेर्गेओपेरेरा

5

इस डेटा को देने के लिए EC2 नियंत्रण और निगरानी उपकरणों के लिए आपके पास कोई रास्ता नहीं है क्योंकि आपके इंस्टेंस की फ़ाइल सिस्टम केवल इंस्टेंस द्वारा ही पहुंच योग्य है । हार्डवेयर की बुनियादी संरचना और सुरक्षा मॉडल दोनों इस सीमा की मांग करते हैं। इस बारे में सोचें कि अगर आपके कंप्यूटर के बाहर का सॉफ्टवेयर आपकी हार्ड ड्राइव पर मौजूद फाइलों को दबा सकता है तो कितना बुरा होगा!

यहां क्रोन बनाने का एक कम महत्वपूर्ण तरीका है (वैसे भी अधिकांश सिस्टमों पर स्थापित) इस डेटा को समय-समय पर जांचें। आपके सिस्टम में रूट मेल नोटिफिकेशन को संभालने के लिए न्यूनतम आवश्यकताएं होनी चाहिए। मैं कम से कम एक भौतिकवादी आउटगोइंग मेल एजेंट होने की सलाह देता हूं और आपके द्वारा प्रशासित सभी प्रणालियों पर आपको अग्रेषित करने के लिए रूट या एडमिनिस्ट्रेटर उपनाम को कॉन्फ़िगर करता हूं। cronइस कॉन्फ़िगरेशन की अपेक्षा सहित कई कार्यक्रम ।

आप इसे अपने क्रेस्टैब में जोड़ सकते हैं:

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

उस टूटने के लिए, यह

  • एक नौकरी बनाता है जो दिन में एक बार 00:00 बजे चलता है।
  • क्रोन स्वचालित रूप से नौकरियों के आउटपुट के साथ सिस्टम व्यवस्थापक को ईमेल करता है। यह कार्य केवल आउटपुट उत्पन्न करता है यदि कोई त्रुटि है या यदि डिस्क स्थान कम है
  • testएक साधारण खोल तुलना अप आदेश सेट का उपयोग कर -ltऑपरेटर से भी कम समय और 1GB मुफ़्त अंतरिक्ष के लिए एक निश्चित मूल्य equivolent।
  • dfआदेश पर मुक्त अंतरिक्ष परीक्षण /फाइल सिस्टम
  • grepतुम सिर्फ उत्पादन की लाइन हो जाता है आप हेडर के बजाय जरूरत dfभी शामिल है।
  • awkप्राप्त सिर्फ उत्पादन में चौथे स्तंभ, मुक्त अंतरिक्ष संख्या है।
  • &&अगले आदेश पहले एक (केवल यदि चलाने के लिए कहते हैं test x -lt y) सच देता है।

4

मैंने एक स्क्रिप्ट लिखी थी क्योंकि मुझे अपने EC2 समूह के भीतर कई सर्वरों की जांच करने की आवश्यकता थी। यह एक लाइन पर प्रत्येक सर्वर आईपी / डोमेन नाम की एक सूची के साथ एक फ़ाइल की जरूरत है।

#! /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

2
"अमेज़ॅन क्लाउडवॉच मॉनिटरिंग लिपियों लिनक्स के लिए" कस्टम मेट्रिक्स के रूप में क्लाउड उपयोग में डिस्क उपयोग को धक्का दे सकता है। docs.amazonwebservices.com/AmazonCloudWatch/latest/…
२३:२२ पर लॉरियन बर्छल

@LaurionBurchall कृपया एक उत्तर के रूप में रखें। IMO जो कि सही उत्तर है क्योंकि यह CloudWatch अलर्ट का उपयोग करने की क्षमता देता है।
जो कॉन्सटेंट



0

क्रोन आपका दोस्त है। इस फ़ाइल को अपनी /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

नोट: यह लिपि कहेगी कि आरोहित CDROM भरे हुए हैं।


0

यह एक त्वरित PowerShell स्क्रिप्ट है जो मैंने लिखा था कि AWS में हमारे DC पर चलता है और एक ड्राइव के पूर्ण होने पर प्राप्तकर्ताओं के समूह को एक ई-मेल शूट करता है। यह 2 कॉलम के साथ एक सीएसवी लेता है - एक कंप्यूटर नाम के साथ एक शीर्षक वाला नाम और एक ड्राइव अक्षर के साथ एक शीर्षक वाला ड्राइव। हमारे AWS वातावरण में एक मेल सर्वर नहीं है, इसलिए मैंने इसे SES के माध्यम से भेजने के लिए कॉन्फ़िगर किया है। आप स्क्रिप्ट को थोड़ा संशोधित कर सकते हैं, यदि आप चाहें तो बस हर बार रिपोर्ट का उपयोग करें। बस सोचा था कि मैं इसे यहाँ पोस्ट करूँगा, क्योंकि मेरे द्वारा पाए गए सभी समाधान लिनक्स उदाहरणों के लिए थे।

$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
    } 


}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.