LINUX.ORG.RU

mrtg - слежение за температурой cpu и MB


0

0

Есть mrtg, изначально настроенный на сбор информации по трафику на ppp-интерфейсе. После правки скрипта для сбора информации с ppp0, была сделана попытка сбора информации о температуре с датчиков CPU и M/B (через sensors). При запуске скрипт выводит нужные параметры в нужном формате (во всяком случае выглядит именно так). На странице слежения - в итоге везде нули, в логах такая вот ругань:

2009-07-17 18:25:08 -- Started mrtg with config '/etc/mrtg/mrtg.cfg'
2009-07-17 18:25:09 -- 2009-07-17 18:25:08: WARNING: Problem with External get '/bin/tempstat':
Expected a Number for 'in' but got ''

2009-07-17 18:25:09 -- 2009-07-17 18:25:08: WARNING: Problem with External get '/bin/tempstat':
Expected a Number for 'out' but got ''

2009-07-17 18:25:10 -- 2009-07-17 18:25:09: ERROR: Target[temper][_IN_] ' $target->[1]{$mode} ' did not eval into defined data
2009-07-17 18:25:10 -- 2009-07-17 18:25:09: ERROR: Target[temper][_OUT_] ' $target->[1]{$mode} ' did not eval into defined data


файл настроек - /etc/mrtg/mrtg.cfg

# mrtg configuration file

WorkDir:/var/www/html/mrtg
LogDir:/var/log/mrtg
Refresh:300
RunAsDaemon: no
Interval: 5
NoMib2: yes
Language:russian

Target[unlimited]: `/bin/mrtgstat`
Options[unlimited]: growright
MaxBytes[unlimited]: 2000000
XSize[unlimited]: 600
YSize[unlimited]: 160
Title[unlimited]: Stat for unlimited connection
PageTop[unlimited]: mySERVEr STAT <br/>

Target[temper]: `/bin/tempstat`
MaxBytes[temper]: 110
MaxBytes2[temper]: 110
Title[temper]: CPU and MB temperature
Options[temper]: integer, gauge, nopercent, growright
YLegend[temper]: Temperature, C
ShortLegend[temper]: C
Legend1[temper]: CPU temp, C
Legend2[temper]: M/B temp, C
LegendI[temper]: CPU
LegendO[temper]: M/B
XSize[temper]: 600
YSize[temper]: 160
PageTop[temper]: <H1>mySERVEr STAT11!! </H1> <br/>


И сами скрипты:
1) /bin/mrtgstat

#!/bin/bash
INPUT=`/sbin/ifconfig ppp0 | grep -m 1 'bytes' | awk {'print substr($2,7)'}`
OUTPUT=`/sbin/ifconfig ppp0 | grep -m 1 'bytes' | awk {'print substr($6,7)'}`
DATE=`cat /proc/uptime| awk '{print ($1/3600)" hours"}'`
NAME='computer'
echo $INPUT
echo $OUTPUT
echo $DATE
echo $NAME
exit 0

при запуске выводит:
$ tempstat
43
57
90.5276 hours
computer


2) /bin/tempstat

#!/bin/bash
INPUT=`/usr/bin/sensors |grep Temp3| awk '{print substr($2,2,length($2)-3)}'`
OUTPUT=`/usr/bin/sensors |grep M\/B| awk '{print substr($3,2,length($3)-3)}'`
DATE=`cat /proc/uptime| awk '{print ($1/3600)" hours"}'`
NAME='computer'
echo $INPUT
echo $OUTPUT
echo $DATE
echo $NAME
exit 0

при запуске выводит:
$ mrtgstat
692542505
47443785
90.5379 hours
computer


Запускается mrtg с помощью cron, каждые 5 минут.


Ответ на: комментарий от Obey-Kun

дауж, munin работает. Спасибо. Но хотелось бы разобраться с mrtg

n_play
() автор топика

Попробуй выставить LANG=C. У меня сенсорз выдавали температуру с символом градуса (°) и авк его считал за два восьмибитных символа

bakagaijin
()
Ответ на: комментарий от bakagaijin

ура! спасибо, помогло!

как я мог забыть что mrtg запускается с LANG=C..

n_play
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.