Σκληρός δίσκος παρακολούθησης για διακομιστές χωρίς κεφαλές Linux
Οι σύγχρονοι σκληροί δίσκοι έχουν έναν εσωτερικό μηχανισμό που ονομάζεται S.M.A.R.T. μέσω του οποίου είναι δυνατό να γνωρίζουμε πότε πρόκειται να αποτύχει ένας σκληρός δίσκος. Δεν θα ήταν ωραίο από το διακομιστή να στείλει μήνυμα ηλεκτρονικού ταχυδρομείου πριν από μια τέτοια αποτυχία?
ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ
Προγράμματα όπως το "mdadm" (για τη διαχείριση RAID λογισμικού) και το "Palimpsest Disk Utility" (που χρησιμοποιείται στο Ubuntu LiveCD), χρησιμοποιούν τις πληροφορίες S.M.A.R.T για να σας ενημερώσουν πότε πρόκειται να αποτύχει ο δίσκος. Ωστόσο, σε διακομιστή χωρίς κεφαλές (χωρίς γραφικό περιβάλλον) δεν υπάρχει υπηρεσία που να σας ενημερώνει για την εκκρεμούσα καταδίκη προτού είναι πολύ αργά. Επιπλέον, πώς θα το γνωρίζατε χωρίς να συνδεθείτε με μη αυτόματο τρόπο στο διακομιστή?
Αυτό το σενάριο, όταν εκτελείται μία φορά την ημέρα με το cron, θα ειδοποιήσει αν κάποιος από τους σκληρούς δίσκους του συστήματος μετράει κακό κλάδο έχει φτάσει σε ένα όριο που είναι σκόπιμα χαμηλότερο από το κατώτατο όριο του "δίσκου είναι κακό" και στείλτε την ειδοποίηση μέσω ηλεκτρονικού ταχυδρομείου στον διαχειριστή του μηχανήματος.
Προϋποθέσεις και παραδοχές
- Έχετε ήδη ρυθμίσει την υποστήριξη ηλεκτρονικού ταχυδρομείου για το διακομιστή χρησιμοποιώντας τον οδηγό "Πώς να εγκαταστήσετε ειδοποιήσεις ηλεκτρονικού ταχυδρομείου σε Linux".
- Χρησιμοποιείτε ένα σύστημα που βασίζεται στο Debian.
- Δεν χρησιμοποιείτε έναν * ελεγκτή υλικού RAID.
- Θα με δείτε να χρησιμοποιώ το VIM ως πρόγραμμα επεξεργασίας, ακριβώς επειδή είμαι συνηθισμένος σε αυτό ... μπορείτε να χρησιμοποιήσετε οποιοδήποτε άλλο πρόγραμμα επεξεργασίας που θέλετε.
* Επειδή είναι πολύ πιθανό ο ελεγκτής RAID υλικού να αποκλείσει την πρόσβαση του συστήματος σε αυτές τις πληροφορίες.
Ρύθμιση
Εγκαταστήστε το πακέτο "smartmontools" που διαβάζει τις πληροφορίες S.M.A.R.T από τον ελεγκτή σκληρού δίσκου και μας το παρουσιάζει.
sudo aptitude install smartmontools
Δημιουργήστε τη δέσμη ενεργειών οθόνης:
sudo vim /root/smart-monitor.sh
Κάντε αυτό το περιεχόμενο:
#! / bin / bash
######## Λειτουργία ηλεκτρονικού ταχυδρομείου ########
email_admin_func ()
echo "στο: [email protected]"> $ temp_email_file
echo "Από: [email protected]" >> $ temp_email_file
echo "Θέμα: Παρακολούθηση του κατωφλίου του S.M.A.R.T" >> $ temp_email_file
echo "" >> $ temp_email_file
echo -e $ 1 >> $ temp_email_file
/ usr / sbin / ssmtp -t < $temp_email_file
echo "Στείλτε ένα μήνυμα ηλεκτρονικού ταχυδρομείου στο διαχειριστή"
smartc_func ()
/ usr / sbin / smartctl -A / dev / $ 1 | grep Reallocated_Sector_Ct | tr -s "| cut -d" -f11
######## Λήξη λειτουργιών ########
######## Ρύθμιση παραμέτρου εργασίας ########
temp_email_file = / tmp / smart_monitor.txt
allow_threshold = 5 #set το ποσό των κακών τομέων σας πρόθυμοι να ζήσουν με, συνιστάται 5.
########Κινητήρας########
για το i στο sda sdb. do # Προσθέστε ή αφαιρέστε τα ονόματα δίσκων από αυτήν τη λίστα ανάλογα με τις ρυθμίσεις σας.
εάν [["'smartc_func $ i'" -ge $ allowed_threshold]]. έπειτα
echo Αποστολή ηλεκτρονικού μηνύματος στον Administrator
mail_admin_func "Ένα από τα HD στο" hostname "", έχει φτάσει στο ανώτερο όριο !!! n Το όριο έχει οριστεί σε: $ allowed_threshold και η κατάσταση του δίσκου $ i ήταν: "'smartc_func $ i'
fi
Έγινε
Τα βασικά σημεία που πρέπει να σημειώσουμε είναι:
- Λειτουργία ηλεκτρονικού ταχυδρομείου - Ορίστε τις κατάλληλες πληροφορίες όπως το όνομα του μηχανήματος και το μήνυμα ηλεκτρονικού ταχυδρομείου διαχειριστή.
- Επιτρεπόμενο κατώτατο όριο - Ορίστε αυτήν την παράμετρο σε αυτό που θεωρείτε κατάλληλο, έχω χρησιμοποιήσει 5 επειδή το όριο που έχει οριστεί για τους σκληρούς δίσκους "server grade" που χρησιμοποίησα ήταν 10. (βρήκα το κατώφλι για δίσκους "consumer grade" να είναι τόσο υψηλό όσο 140).
- Ρυθμίστε τις συσκευές που θέλετε να παρακολουθήσετε προσαρμόζοντας την απαρίθμηση των ονομάτων δίσκων στον βρόχο "για". Προς το παρόν περιλαμβάνονται δύο δίσκοι (sda & sdb), ώστε να προσαρμόσετε τη ρύθμιση. Μπορείτε να συμπεριλάβετε όλους τους δίσκους σας ή μερικούς μόνο, αν θέλετε να εξαιρέσετε έναν δίσκο για κάποιο λόγο.
* στην αρχική μου εγκατάσταση ο πρώτος δίσκος ήταν μια μονάδα flash, οπότε η ανάγνωση των πληροφοριών της, αν είναι δυνατόν, δεν είναι πολύ χρήσιμη.
Κάντε το εκτελέσιμο σενάριο:
sudo chmod + x /root/smart-monitor.sh
Η ρύθμιση έγινε.
Προγραμματίστε την εκτέλεση του σεναρίου αυτόματα
Θέλουμε να κάνουμε το script να τρέξει αυτόματα έτσι θα δημιουργήσουμε μια νέα δουλειά του Cron για αυτό.
Όπως αναφέρεται στο "Πώς να εγκαταστήσετε ειδοποιήσεις μέσω ηλεκτρονικού ταχυδρομείου στο Linux" καθοδηγεί το αποτέλεσμα αυτό, είναι ότι αν το σενάριο αντιμετωπίζει ένα σφάλμα, το cron θα μας ενημερώσει αυτόματα μέσω ηλεκτρονικού ταχυδρομείου μόλις συμβεί.
Ανοίξτε τον προγραμματιστή εργασιών cron:
sudo crontab -e
Προσθέστε αυτό στο περιεχόμενό του:
0 7 * * * /root/smart-monitor.sh> /tmp/last_smart_monitor_run.log
Αυτό θα θέσει το σενάριο να τρέχει κάθε πρωί στις 7 το πρωί.
Όλος ο τομέας σας ανήκει σε εμάς :)