Surveillance automatique des disques dur avec SMART
Par Dju » 24 février 2013 (14:10) - Hardware
Récemment, je me suis trouvé avec un serveur distant ne répondant plus... Après investigation, il s'est avéré que le disque était mort de vieillesse. Mais si il n'y a pas eu de warning, c'est parce que j'avais oublié d'activer la surveillance automatique du disque, manquant ainsi les signes précurseur du malheur à venir... Grrr !
Voici donc comment activer cette surveillance avec smartmontools pour avoir des alertes au cas ou
En premier, si ce n'est pas deja fait, on installe smartmontools
aptitude install smartmontools
Lors de cette installation, si vous n'avez pas deja le necessaire pour envoyer des mails, aptitude vous l'installera par dépendance (sur debian/ubuntu, c'est exim par défaut).
Je ne reviendrai par sur la partie mail car il y aurait trop de choses à dire
Une fois installé, on édite le fichier /etc/default/smartmontools et ondécommente la ligne
start_smartd=yes
ceci permet de lancer le demon smartd au démarrage de la machine.
On édite maintenant le fichier /etc/smartd.conf dans lequel on va indiquer quel disque surveiller.
On commente la ligne
DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner
en ajoutant un # devant, puis jute en desous on déclare explicitement quel disque surveiller
/dev/sda -H -l error -l selftest -m moi@mondomaine.com
/dev/sdb -H -l error -l selftest -m moi@mondomaine.com
on indique ici plusieurs options :
-H : pour surveiller l'état de santé général du disque
-l error : pour remonter toute erreur présente dans les logs du disque
-l selftest : pour remonter toute erreur sruvenue pendant un test automatique du disque
-m moi@mondomaine.com : pour indiquer ou envoyer les alertes par email
Une fois la config enregistrée, on peut lancer le démon smart :
/etc/init.d/smartmontools start
et surveiller le résultat dans daemon.log aussitot :
tail /var/log/daemon.log
ou
egrep smartd /var/log/daemon.log
On devrait y voir quelques lignes comme cela :
Device: /dev/sdb [SAT], is SMART capable. Adding to "monitor" list. Device: /dev/sda [SAT], is SMART capable. Adding to "monitor" list. Monitoring 2 ATA and 0 SCSI devices
Si smartd n'arrive pas à correctement identifier les disques, ou si ils sont trop vieux et ne savent pas causer smart, cela sera indiqué dans les logs.
A partir de la, la surveillance est maintenant automatiquement activée
Il ne reste qu'une chose à faire: programmer via cron un test automatique des disque régulièrement.
crontab -e
# surveillance disque 0 5 */30 * * /usr/sbin/smartctl --test=short /dev/sda 5 5 */30 * * /usr/sbin/smartctl --test=short /dev/sda
ici j'indique de lancer un test (le test de type short dure 2/3 minutes) sur sda à 5h du mat', et un test sur sdb à 5h05, le tout tous les 30 jours.
Pour être sur que smartctl se lance bien, vérifier ou se trouve le binaire de manière à indiquer le chemin correct
which smartctl
Pour obtenir la liste des test effecutés :
smartctl -l selftest /dev/sda
Il devrait y avoir une ligne par test, avec le status "Completed without error" si tout s'est bien passé
And voila ! désormais, si un disque montre un signe de défaillance, un mail vous sera envoyé et vous permettra d'intervenir avant que le disque ne lache (dan la plupart des cas en tout cas :D )
Egalement, tout évènement détecté part smartd sera indiqué dans le log système (syslog). Vous serez donc également averti si vous un soft de surveillance de logs
Soyez le premier à commenter ce billet
URL de rétrolien : https://blog.crifo.org/trackback/95