Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
MRTG+SMART+FreBSD Строим графмк температуры винчестера, MRTG+SMART+FreeBSD Строим графмк температуры винчестера
 
MRTG + SMART Как следить за температурой винчестера в FreeBSD?

Мой ответ есть тут

http://xgu.ru/wiki/%D0%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%­BD%D0%B3#MRTG_.2B_SMART_.D0.9A.D0.B0.D0.BA_.D1.81.D0.B4.D0.B5.D0.BB.D0.B8.D1.82.D1.8C_.D0.B7.D0.B0_.D1.82.D0.B5.D0.BC.D0.BF.D0.B5.D1.80.D0.B0.D1.82.D1.83.D1.80.D0.BE.D0.B9_.D0.B2.D0.B8.D0.BD.D1.87.D0.B5.D1.81.D1.82.D0.B5.D1.80.D0.B0_.D0.B2_FreeBSD.3F

Здесь я просто повторюсь так как видел кто-то спрашивал

Графики в MRTG рисуются ОБЯЗАТЕЛЬНО по 2-м значениям поэтому нам нужно их получить

Исходные данные

1. ОС FreeBSD 6.3-RELEASE

2. Два жестких диска SATA

команда df -h показывает

Filesystem     Size    Used   Avail Capacity  Mounted on
dev/ad0s1a    496M     56M    400M    12%    /
/devfs          1.0K    1.0K      0B   100%    /dev
/dev/ad0s1f     97G    8.8G     80G    10%    /Data
/dev/ad0s1e    3.9G     22K    3.6G     0%    /tmp
/dev/ad0s1g    113G    1.9G    102G     2%    /usr
/dev/ad0s1d    3.9G     75M    3.5G     2%    /var
/dev/ad1s1d    226G     28G    179G    14%    /Backup
/devfs          1.0K    1.0K      0B   100%    /var/named/dev

Задача: построить графики температуры для диска /dev/ad0

Решение

1. Из портов ставим /usr/ports/sysutils/smartmontools/

2. Запускаем и смотрим значения температуры винчестера в градусах Цельсия (в данном примере 27)

   gor# /usr/local/sbin/smartctl -a -s on /dev/ad0 | grep Temp
   190 Airflow_Temperature_Cel 0x0022   071   069   045    Old_age   Always  -  27 (Lifetime   Min/Max 24/31)
   194 Temperature_Celsius     0x0022   029   040   000    Old_age   Always   -       27 (0 16 0 0)


Профильтруем этот вывод (через 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 минут (меньше нельзя !!!)

 # HDD Temperature
 */5     *       *       *       *       root    /usr/local/bin/mrtg /usr/local/etc/mrtg/hdd-mrtg.conf

10. Минут через 10 заходим на страничку http://IP-Вашего сервера/hdd_temp/hdd_temp.html и смотрим красивый график температуры на сером фоне который будет обновляться каждые 5 минут
Изменено: Анатолий * - 25.06.2009 16:13:21
 
Спасибо за полезную и познавательную статью.
Хоть и оффтопик, но все же: а какой тулзой можно температуру проца и материнки посмотреть?
 
Вот тут есть как делать

http://live.daemony.org/freebsd/rrdtools-usage-for-server-stats-full-manual-by-daemony.html/6#4

А ето еще много интересного по рисованию графиков и не только

http://live.daemony.org/freebsd/rrdtools-usage-for-server-stats-full-manual-by-daemony.html/5

но у меня лично не получилось добратся к материнской плате
так как ета тулзовина не оддерживает мою материнку

Я как раз ищу другие варианты.Пока что тупо читаю описание портов из /usr/ports/sysutils/
У меня есть один проблемный сервер а счас еще плюс жара
вот до винта добрался а теперь нада до маиеринки и проца долезть
Изменено: Анатолий * - 26.06.2009 10:53:27
 
Цитата
какой тулзой можно температуру проца и материнки посмотреть?

Под фрей? :) Начиная от соответствующих параметров sysctl (hw.*) до mbmon/healthd из портов. Но не на всех мамках эти программы работают. Например, на ServerWorks мне не удалось добиться показаний.
 
Спасибо, будем пробовать. Про sysctl как-то забыл  :oops:
 
У меня кактус это делает http://forums.cacti.net/about32838.html
 
Ну, какти - это собственно - фронтэнд к 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)

#mkdir /usr/local/www/data/cpu_temp
Запускаем mrtg

/usr/local/bin/mrtg /usr/local/etc/cpu_temp.cfg


При запуске MRTG первый раз он даже если нет ошибок в конфиге все равно выдаст четыре предупреждения (не пугайтесь это нормально)

2009-06-30 16:51:57, Rateup WARNING: /usr/local/bin/rateup could not read the primary log f
2009-06-30 16:51:57, Rateup WARNING: /usr/local/bin/rateup The backup log file for cpu_tem well
2009-06-30 16:51:57, Rateup WARNING: /usr/local/bin/rateup Can't remove cpu_temp.old updating log file
2009-06-30 16:51:57, Rateup WARNING: /usr/local/bin/rateup Can't rename cpu_temp.log updating log file

8. Заходим в рабочий каталог для графиков /usr/local/www/data/hdd_temp и смотрим появились ли там данные

cd /usr/local/www/data/cpu_temp

# ls -Al
total 68
-rw-r--r--  1 root  wheel   1235 Jun 30 16:51 cpu_temp-day.png
-rw-r--r--  1 root  wheel   1230 Jun 30 16:51 cpu_temp-month.png
-rw-r--r--  1 root  wheel   1273 Jun 30 16:51 cpu_temp-week.png
-rw-r--r--  1 root  wheel   1563 Jun 30 16:51 cpu_temp-year.png
-rw-r--r--  1 root  wheel   5321 Jun 30 16:51 cpu_temp.html
-rw-r--r--  1 root  wheel  48182 Jun 30 16:51 cpu_temp.log
-rw-r--r--  1 root  wheel    538 Jun 30 16:51 mrtg-l.png
-rw-r--r--  1 root  wheel    414 Jun 30 16:51 mrtg-m.png
-rw-r--r--  1 root  wheel   1759 Jun 30 16:51 mrtg-r.png

В файл /etc/crontab добвавляем строчку для запуска MRTG каждые 5 минут (меньше нельзя !!!)

# HDD Temperature
*/5 * * * * root /usr/local/bin/mrtg /usr/local/etc/cpu_temp.cfg

Минут через 10 заходим на страничку http://ВАШ-ip/cpu_temp/cpu_temp.html вашего сервера
и смотрим красивый график температуры на сером фоне который будет обновляться каждые 5 минут
Изменено: Анатолий * - 01.07.2009 10:44:15
 
Цитата
Анатолий Сидорук пишет:
# sysctl -a | grep temperature | awk -F " " '{print $2}'

лучше написать как-то так:

sysctl dev.cpu | awk '/temperature/ {print int($2)}'
Страницы: 1
Читают тему