Munin, carte RAID, et température des disques durs

Monitorer la température de ses disques durs n'est pas très compliqué. De base, Munin fait ça très bien avec un minimum de réglages. Il suffit d'installer smartmontools, Munin, et de régler ce dernier pour qu'il sache quels disques on veut surveiller.
On obtient rapidement ce genre de graphique :

Mais si les disques durs sont connectés non pas à la carte mère directement, mais à une carte RAID, la chose se complique. En effet, le système ne sait pas qui est ad4 (ou ad6, ou toute autre appellation interne). Le système ne voit que la carte RAID.

Disons que nous sommes sur un bon système (FreeBSD), avec une bonne carte RAID (3Ware) utilisant le pilote twa. Cette carte sera donc vue du système sous le nom interne /dev/twa0 (0 car c'est la première carte de ce type dans la machine).
L'outil smartctl permet d'accéder au S.M.A.R.T. des disques durs au travers de la carte RAID par des requêtes comme :

smartctl -a /dev/twa0 -d 3ware,0  # 1er disque branché sur la carte
smartctl -a /dev/twa0 -d 3ware,1  # 2nd disque branché sur la carte
...

Comme le plugin hddtemp_smartctl de Munin utilise smartctl aussi, il ne reste plus qu'à lui faire comprendre la syntaxe. On ne doit plus lire les données S.M.A.R.T. de /dev/ad4, /dev/ad6… mais celles de /dev/twa0 -d 3ware,0, /dev/twa0 -d 3ware,1
Il faut éditer le fichier plugins.conf de Munin, en créant une section [hddtemp_smartctl] dans la quelle :

  1. on crée des disques durs "virtuels"
  2. on rattache chacun de ces disques à notre carte twa0
  3. on précise le type de chaque disque dur (3Ware,0, 3Ware,1…)

Voici ce que cela donne pour une carte 3Ware twa0, à la quelle sont connectés quatre disques durs que l'on décide de nommer tout à fait arbitrairement hd0 à hd3 :

[hddtemp_smartctl]
env.smartctl /usr/local/sbin/smartctl
env.drives hd0 hd1 hd2 hd3
env.dev_hd0 twa0
env.dev_hd1 twa0
env.dev_hd2 twa0
env.dev_hd3 twa0
env.type_hd0 3ware,0 
env.type_hd1 3ware,1
env.type_hd2 3ware,2
env.type_hd3 3ware,3

J'insiste bien sur le fait que les noms hdx sont des abstractions arbitraires, utilisées pour mettre en relation un "dev" et un "type". On pourrait mettre "toto", "titi"… cela marcherait de la même manière.
Cela donne finalement quelque chose comme ça :

Related posts

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.