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 :
- on crée des disques durs "virtuels"
- on rattache chacun de ces disques à notre carte
twa0
- 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 :