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 ;)