Профильтруем этот вывод (через awk)и получим 2 числа значений (в данном примере 27 градусов) температуры, по которым построим график температуры жесткого диска в MRTG
gor# /usr/local/sbin/smartctl -a -s on /dev/ad0 | grep Temp | awk -F " " '{print $10}' 27 27
3. Создадим вот такой конфигурационный файл для MRTG: файл /usr/local/etc/mrtg/hdd-mrtg.conf
# WorkDir: /usr/local/www/data/hdd_temp Language: ukrainian # Background[^]: #a0a0a0a Options[^]: nopercent, nobanner, unknaszero, growright, gauge, transparent Title[hdd_temp]: HDD Temperature Server HP 100 Proliant Target[hdd_temp]: `/usr/local/sbin/smartctl -a -s on /dev/ad0 | grep Temp | awk -F " " '{print $10}'` Options[hdd_temp]: nobanner, unknaszero, growright, nopercent, gauge, transparent LegendI[hdd_temp]: Temperature HDD LegendO[hdd_temp]: YLegend[hdd_temp]: C MaxBytes[hdd_temp]: 200 AbsMax[hdd_temp]: 200 ShortLegend[hdd_temp]: Grad PageTop[hdd_temp]: <h1>Server HP 110 HDD Temperature</h1> Legend1[hdd_temp]: HDD Temperature Server HP 110 Proliant
4. Создаем рабочий каталог куда будут записываться данные для графиков (в конфиге он указан как WorkDir: /usr/local/www/data/hdd_temp)
mkdir usr/local/www/data/hdd_temp
5. Из портов /usr/ports/net-mgmt/mrtg установим MRTG
6. Запускаем MRTG c указанием ему созданного конфиг файла /usr/local/bin/mrtg /usr/local/etc/mrtg/hdd-mrtg.conf
7. При запуске MRTG первый раз он даже если нет ошибок в конфиге все равно выдаст четыре предупреждения (не пугайтесь это нормально)
mrtg /usr/local/etc/hdd-mrtg.conf 2009-06-19 15:37:18, Rateup WARNING: /usr/local/bin/rateup could not read the primary log file 2009-06-19 15:37:18, Rateup WARNING: /usr/local/bin/rateup The backup log file for hdd_temp was invalid 2009-06-19 15:37:18, Rateup WARNING: /usr/local/bin/rateup Can't remove hdd_temp.old updating log file 2009-06-19 15:37:18, Rateup WARNING: /usr/local/bin/rateup Can't rename hdd_temp.log to hdd_temp.old
8. Заходим в рабочий каталог для графиков /usr/local/www/data/hdd_temp и смотрим появились ли там данные
gor# cd /usr/local/www/data/hdd_temp/ gor# ls -Al total 116 -rw-r--r-- 1 root wheel 1322 Jun 19 15:40 hdd_temp-day.png -rw-r--r-- 1 root wheel 1199 Jun 19 15:37 hdd_temp-month.png -rw-r--r-- 1 root wheel 1321 Jun 19 15:37 hdd_temp-week.png -rw-r--r-- 1 root wheel 1608 Jun 19 15:37 hdd_temp-year.png -rw-r--r-- 1 root wheel 4664 Jun 19 15:40 hdd_temp.html -rw-r--r-- 1 root wheel 48205 Jun 19 15:40 hdd_temp.log -rw-r--r-- 1 root wheel 48182 Jun 19 15:37 hdd_temp.old -rw-r--r-- 1 root wheel 538 Jun 19 15:37 mrtg-l.png -rw-r--r-- 1 root wheel 414 Jun 19 15:37 mrtg-m.png -rw-r--r-- 1 root wheel 1759 Jun 19 15:37 mrtg-r.png
9. В файл /etc/crontab добвавляем строчку для запуска MRTG каждые 5 минут (меньше нельзя !!!)
10. Минут через 10 заходим на страничку http://IP-Вашего сервера/hdd_temp/hdd_temp.html и смотрим красивый график температуры на сером фоне который будет обновляться каждые 5 минут
но у меня лично не получилось добратся к материнской плате так как ета тулзовина не оддерживает мою материнку
Я как раз ищу другие варианты.Пока что тупо читаю описание портов из /usr/ports/sysutils/ У меня есть один проблемный сервер а счас еще плюс жара вот до винта добрался а теперь нада до маиеринки и проца долезть
какой тулзой можно температуру проца и материнки посмотреть?
Под фрей? Начиная от соответствующих параметров sysctl (hw.*) до mbmon/healthd из портов. Но не на всех мамках эти программы работают. Например, на ServerWorks мне не удалось добиться показаний.
Ну, какти - это собственно - фронтэнд к rrdtools. Я, помнится, его (rrdtools) прилаживал для получения страницы утилизации диапазона в наших /24 - сетях. Когда мы заявку в RIPE отправляли на получение /17-й сетки. Они требуют доступ к текущей утилизации выделенного адресного пространства. Чтобы посмотреть насколько оно занято в настоящий момент.
Пробовал я по разному из протов тулзовинами.И получил результат Остановился на /usr/ports/sysutils/ipmitool http://www.opennet.ru/base/sys/ipmi_ctr_freebsd.txt.html но результата не было. Вернее он был но неправильный С вольтами кулерами все ОК А вот температуру упорно выдавало 14 и 13.5 Я ету штуковину прикручу для других целей так как вещь хорошая Вот примеры вывода того что меня инересовало
#ipmitool -I open sdr list all Hewlett-Packard | Dynamic MC @ 20h | ok POST Error | 0x01 | ok Memory ECC | 0xc0 | ok ACPI State | 0x01 | ok System Reset | 0x00 | ok CPU FAN | 1443.00 RPM | ok SYSTEM FAN | 1860.12 RPM | ok System 12V | 12.10 Volts | ok System 5V | 5.10 Volts | ok System 3.3V | 3.30 Volts | ok CPU0 Vcore | 1.25 Volts | ok System 1.25V | 1.26 Volts | ok System 1.8V | 1.82 Volts | ok System 1.2V | 1.20 Volts | ok CPU0 Diode | disabled | ns CPU0 Dmn 0 Temp | 14 degrees C | cr CPU0 Dmn 1 Temp | disabled | ns Therm-Trip0 | 0x01 | ok CPU Prochot | 0x01 | ok NMI | 0x01 | ok CPU VRD Hot | 0x01 | ok CPU0 IERR | 0x01 | ok LO100 Present | 0x01 | ok System FRU | Log FRU @00h 00.0 | ok System FRU | Log FRU @01h 00.0 | ok Watchdog | Not Readable | ns
еще
kiv# ipmitool sensor |egrep "[0-9]++ Temp" CPU0 Dmn 0 Temp | 14.000 | degrees C | cr | na | 20.000 | 25.000 | 97.000 | 100.000 | 95.000 CPU0 Dmn 1 Temp | na | degrees C | na | na | 20.000 | 25.000 | 97.000 | 100.000 | 95.000
#ipmitool sdr type Temperature
CPU0 Diode | 20h | ns | 0.0 | Disabled CPU0 Dmn 0 Temp | 21h | ok | 0.0 | 14 degrees C CPU0 Dmn 1 Temp | 22h | ns | 0.0 | Disabled CPU Prochot | 07h | ok | 0.0 | Limit Not Exceeded CPU VRD Hot | 0Eh | ok | 0.0 | Limit Not Exceeded
Но как видете все не то
Поетому я сделал в лоб ибо как говорится
Умелец - это человек, который всегда знает, что можно сделать. Специалист - это человек, который всегда знает, чего нельзя сделать. Мастер - это человек, который всегда знает, что нужно сделать и кому дать задание: умельцу, специалисту, или оно само по себе рассосётся
Делал я так
У меня фря 6 (XEON 2 ядра) а если поточнее то #uname -a FreeBSD 6.3-RELEASE FreeBSD 6.3-RELEASE #2: Tue Jun 30 15:40:10 UTC 2009 /usr/src/sys/i386/compile/hp110 i386
# dmesg | grep cpu cpu0 (BSP): APIC ID: 0 cpu1 (AP): APIC ID: 1 cpu0: <ACPI CPU> on acpi0 cpu1: <ACPI CPU> on acpi0
После пересборки ядра с поддержкой сенсора температуры CPU (о чем будет расказано ниже)етот dmesg вывод должен изменится на
cpu0 (BSP): APIC ID: 0 cpu1 (AP): APIC ID: 1 cpu0: <ACPI CPU> on acpi0 coretemp0: <CPU On-Die Thermal Sensors> on cpu0 est0: <Enhanced SpeedStep Frequency Control> on cpu0 p4tcc0: <CPU Frequency Thermal Control> on cpu0 cpu1: <ACPI CPU> on acpi0 coretemp1: <CPU On-Die Thermal Sensors> on cpu1 est1: <Enhanced SpeedStep Frequency Control> on cpu1 p4tcc1: <CPU Frequency Thermal Control> on cpu1
Как Вы уже наверно поняли надо нам перобрать ядро
Я посмотрел файл /usr/src/sys/i386/conf/NOTES ето в прошлой 4 жизни фри он же LINT и нашел там # coretemp: on-die sensor on Intel Core and newer CPUs device coretemp
Поетому
1. добавил ети строки в ядро
также поставте в ядре обязательно еще 2 строки
device ipmi
device apic # I/O APIC
если собираетесь использовать /usr/ports/sysutils/ipmitool о чем написано выше
2. пересобрал 4. загрузил новое ядро 5. посмотрел вывод dmesg насчет температуры cpu0 (BSP): APIC ID: 0 cpu1 (AP): APIC ID: 1 cpu0: <ACPI CPU> on acpi0 coretemp0: <CPU On-Die Thermal Sensors> on cpu0 est0: <Enhanced SpeedStep Frequency Control> on cpu0 p4tcc0: <CPU Frequency Thermal Control> on cpu0 cpu1: <ACPI CPU> on acpi0 coretemp1: <CPU On-Die Thermal Sensors> on cpu1 est1: <Enhanced SpeedStep Frequency Control> on cpu1 p4tcc1: <CPU Frequency Thermal Control> on cpu1
6.Нажал на кнопку и получил результат от sysctl
# sysctl -a | grep temperature dev.cpu.0.temperature: 23 dev.cpu.1.temperature: 30
Теперь на фильт awk запуск а потом 2 числа кушает MRTG
# sysctl -a | grep temperature | awk -F " " '{print $2}' 24 29
Делаем конфиг для mrtg /usr/local/etc/cpu_temp.cfg
вот он
# WorkDir: /usr/local/www/data/cpu_temp Language: ukrainian # Background[^]: #a0a0a0a Options[^]: nopercent, nobanner, unknaszero, growright, gauge, transparent # Title[cpu_temp]: CPU Temperature Server HP 100 Proliant Target[cpu_temp]: `sysctl -a | grep temperature | awk -F " " '{print $2}'` Options[cpu_temp]: nobanner, unknaszero, growright, nopercent, gauge, transparent LegendI[cpu_temp]: Temperature CPU 0 LegendO[cpu_temp]: Temperature CPU 1 YLegend[cpu_temp]: C MaxBytes[cpu_temp]: 50 AbsMax[cpu_temp]: 50 ShortLegend[cpu_temp]: Grad PageTop[cpu_temp]: <h1>CPU Server Temperature</h1> #Options[cpu_temp]: nopercent, gauge, nobanner, unknaszero, growright Legend1[cpu_temp]: CPU Temperature Server HP 100 Proliant
Делаем рабочую директорию для складывания графиков (она в конфиге /usr/local/www/data/cpu_temp)
Минут через 10 заходим на страничку http://ВАШ-ip/cpu_temp/cpu_temp.html вашего сервера и смотрим красивый график температуры на сером фоне который будет обновляться каждые 5 минут