monitoraggio hardware

Riccardo Torrini riccardo a torrini.org
Dom 9 Dic 2007 11:14:36 CET


On Sun, Dec 09, 2007 at 10:44:27AM +0100, Enrico M. wrote:

>> Prima di tutto servono i driver giusti nel kernel (smbus,
>> smb, viapm, intpm, amdpm, dipende dalla mobo che hai),

> provveduto

Hai verificato in /var/run/dmesg.boot che il nuovo device
venga riconosciuto vero?


>> poi installa sysutils/mbmon e databases/rrdtool
> fatto

Hai verificato che mbmon legga qualcosa di utile vero?
# mbmon -rc1
TEMP0 : 33.0
TEMP1 :  0.0
TEMP2 :  0.0
FAN0  : 3750
FAN1  :    0
FAN2  :    0
VC0   :  +2.32
VC1   :  +0.00
V33   :  +0.00
V50P  :  +0.00
V12P  :  +0.00
V12N  :  +0.00
V50N  :  +0.00

Sul mio vecchio k6/350 per esempio riconosce solo la ventola
del processore, la sua temperatura e la tensione del core.


>> (il primo acquisisce i valori, il secondo registra lo storico
>> e fa i grafici).  Il tutto va farcito da due colpi di awk(tm).

> E qui mi perdo.  Come si fa?

Non regalare un pesce a chi ha fame, portalo al ristorante
(leggero adattamento, perche` se ti insegno a pescare mi sa
che muori di fame e poi mi vengono i rimorsi  :-)

-----8<-----[ crea un db vuoto ]-----8<-----
rrdtool create ${db} \
	--start "20030621 00:00" \
	--step 60 \
	DS:cpuHeat:GAUGE:180:0:200 \
	DS:fanSpeed:GAUGE:180:0:9000 \
	DS:Vcore:GAUGE:180:0:5 \
	DS:cpuLoad:GAUGE:180:U:U \
	RRA:AVERAGE:0.5:1:1440 \
	RRA:AVERAGE:0.5:60:168 \
	RRA:AVERAGE:0.5:168:366 \
	RRA:MIN:0.5:168:366 \
	RRA:MAX:0.5:168:366 \
	RRA:LAST:0.5:168:366

-----8<-----[ popopalo da cron ogni 5' ]-----8<-----
rrdtool update ${db} N`mbmon -rc1 | awk '/^(TEMP|FAN|VC)0 *:/ {printf( ":%s", $3 )}'`:`sysctl vm.loadavg | awk '{print $3}'`

-----8<-----
dfrom="-s `date -v-1d +%s`"
dend=""

rrdtool graph ${outdir}/${type}-fan.png -a PNG ${dfrom} ${dend} \
	--title "${host} fanSpeed (${type})" \
	--vertical-label RPM \
	DEF:my=${db}:fanSpeed:AVERAGE \
	LINE1:my#ff0000
rrdtool graph ${outdir}/${type}-load.png -a PNG ${dfrom} ${dend} \
	--title "${host} cpuLoad (${type})" \
	--vertical-label load \
	DEF:my=${db}:cpuLoad:AVERAGE \
	LINE1:my#ff0000

-----8<-----

NB: il codice e` estratto da uno script reale, funzionante.
    il contenuto delle variabili e` facilmente intuibile.
    se proprio non ce la fai potrei passarti il mio...


-- 
Riccardo. ( http://www.GUFI.org/~vic/ )


Maggiori informazioni sulla lista aiuto