Yet Another Consultant

Web Fireman, Consultant, Photographer, Father, ...
... Roaming in the IT World

Sorry! This content is not yet translated in this language, try another one using the buttons above.

J'ai récemment  eu quelques soucis avec un des disques durs (Western Digital 2 To WD20EARX-00PASB0) de mon NAS maison. Il n'est pas encore remplacé, mais a été rasé et devrait être prochainement renvoyé à WD (et merci @bdunogier pour ton retour sur leur SAV).

Bref, je n'ai pas vu le truc venir, et s'en est suivi un perte de médias assez énorme dans ma médiathèque il y a un mois de ça. Aujourd'hui j'ai donc cherché à anticiper ce genre de problème. J'avais bien sur installé munin et le monitoring S.M.A.R.T, mais la seule erreur était le code de retour de l'execution de smartctl (64) lequel n'est pas très explicite si on ne fait pas l'effort de lire la doc... (no comment). Et comme l'erreur était là depuis le début, je n'ai pas relevé...

J'ai donc regardé ce que je pouvais faire avec smartmontools et le démon associé (smartd).

S.M.A.R.T ?

S.M.A.R.T dont les initiales signifient S elf-M onitoring A nalysis and R eporting T echnology, est donc un système de surveillance qui a pour but d'alerter tout administrateur système sur la future défaillance d'un disque dur. Tous les disques récents sont équipés de plusieurs mécanismes comme la réallocation de secteurs défectueux, lesquels permettent à un disque dur de continuer à fonctionner lorsqu'il commence à faillir. Mais il s'agit bien d'un garde-fou et il est nécessaire de rapidement prendre ses dispositions.

Plus d'informations sur S.M.A.R.T : http://fr.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology

Choix des options à utiliser par le démon

smartd utilise smartctl  pour analyser les disques durs de votre système, reste donc à choisir les options à utiliser. La commande sudo smartctl -i /dev/sdX pour identifier vos disques durs éventuellement (ou pour récupérer le numéro de série pour le SAV par exemple).

Je ne vais pas m'étendre dessus, mais grosso modo sudo smartctl -a /dev/sdb donnera des informations sur votre disque sdb :

smartctl 5.40 2010-07-12 r3124 [x86_64-unknown-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net
 
=== START OF INFORMATION SECTION ===
Device Model:     WDC WD20EARX-00PASB0
Serial Number:    WD-XXXXXXXXXX
Firmware Version: 51.0AB51
User Capacity:    2 000 398 934 016 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Wed Jan  4 10:58:42 2012 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
 
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
 
[...]
 
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   198   197   051    Pre-fail  Always       -       69
  3 Spin_Up_Time            0x0027   172   168   021    Pre-fail  Always       -       6375
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       138
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   097   097   000    Old_age   Always       -       2601
 10 Spin_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       56
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       22
193 Load_Cycle_Count        0x0032   193   193   000    Old_age   Always       -       21604
194 Temperature_Celsius     0x0022   117   110   000    Old_age   Always       -       33
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   196   000    Old_age   Always       -       1
198 Offline_Uncorrectable   0x0030   200   196   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   200   156   000    Old_age   Offline      -       0
 
SMART Error Log Version: 1
Warning: ATA error count 4724 inconsistent with error log pointer 1
 
ATA Error Count: 4724 (device log contains only the most recent five errors)
 CR = Command Register [HEX]
 FR = Features Register [HEX]
 SC = Sector Count Register [HEX]
 SN = Sector Number Register [HEX]
 CL = Cylinder Low Register [HEX]
 CH = Cylinder High Register [HEX]
 DH = Device/Head Register [HEX]
 DC = Device Command Register [HEX]
 ER = Error register [HEX]
 ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.
 
[...]
 
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed: read failure       90%      2586         19380744
 
SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Les options choisies, il suffit d'aller éditer le fichier /etc/smartd.conf, commenter la première ligne 

#DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner

Et ajouter pour chacun des disques durs à monitorer, la ligne correspondante avec les options voulues :

 /dev/sdb -d sat -a -o on -S on -s (S/../.././02|L/../../6/03) -m root

Notez l'option -m root, qui enverra un mail à l'utilisateur root de mon système. Pour les autres options voir les manpage correspondantes.

Notez aussi que je ne monitore qu'un seul disque sur les 3 dont je dispose puisque pour le moment les autres ne remontent pas d'erreur dans munin.

Ne pas oublier d'activer le démon dans /etc/default/smartmontools en décommentant la ligne start_smartd=yes

Envoi des mails

Déjà mis en place quelques mois auparavant pour monitorer l'état de mon UPS (dont l'une de mes sources a été http://blog.agdunn.net/?p=385 ), il suffit d'installer ssmtp et de le configurer dans /etc/ssmtp/ssmtp.conf. Personnellement j'utilise un compte gmail pour l'envoi smtp.

#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=user@domain.com
 
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=smtp.gmail.com:587
 
# Where will the mail seem to come from?
#rewriteDomain=
 
# The full hostname
hostname=yourhostname
 
# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES
 
UseSTARTTLS=YES
UseTLS=YES
AuthUser=smtpuser
AuthPass=smtppassword

La première directive transferera donc tous les mails envoyés à l'utilisateur root sur l'adresse mail indiquée.

Tags: Monitoring Monitoring , Note2self Note2self , Système Système

blog comments powered by Disqus

About me

7 years, roaming in the IT world, working on different project sizes, different project types and using a lot of technologies and solutions that are usually used on LAMP projects.

My last job at eZ Systems  (the company behind eZ Publish) as Technical Accounter Manager and Senior Consultant, was very formative since it gave me the opportunity to work for prestigious and high-end customers

I can now operate as a freelance for both customers and IT companies, always keeping in mind everybody's needs.

Get in touch with me using this form .

Arnaud Lafon is eZ Publish Community Partner