mbmon - контроль температуры “железа” под FreeBSD
Ночь на понедельник выдалась несколько беспокойной. Около 22.30 сервер был потерян из виду по неизвестной причине. Удаленный мониторинг буркнул об этом SMS’кой, но, та пришла видимо с небольшим запозданием и среагировал я на возникшую проблему уже после одинадцати вечера.
Сервер по локальной сети не пинговался, маршрутизация во “внешку” тоже не работала. Становилось понятно, что “ежик сдох”. Опасения подтвердились после того, как к трупу были подключены монитор и клавиатура. Пациент отреагировал только на RESET.
Естественно, в сложившейся ситуации сразу возник вопрос: “Что же произошло?” Зашел в BIOS в Hardware Monitor и обалдел. Температура CPU 75 градусов Цельсия. Датчики температуры материнской платы тоже показывали завышенные значения. Насколько мне не изменяет память, нормальная температура для Celeron D 2.4 Hz (и ему подобных) должна лежать в пределах 40 - 60 градусов. Выше - ненормально! Сработала, видимо, защита от перегрева и процессор просто отключился.
Я сначала усомнился в правильности этих значений. Слышал не раз, что датчики температуры, которые ставят производители “железа” очень часто врут и бывает даже что на несколько порядков. Решил перепровериться. В арсенал электромонтажника я когда-то покупал себе ампервольтомметр или, как его еще называют, мультиметр. Ничего особенного. Обычная китайская электроника, работающая от 9-ти вольтовой кроны, которая, как ни странно, еще ни разу не подводила. В комплекте с мультиметром шла термопара, с помощью которой можно было измерять температуру поверхности радиатора на процессоре. Термопарой я еще ни разу за три года не пользовался, но здесь она мне сослужила добрую службу. Температура на радиаторе процессора уже выключеной системы была около 65 градусов. Вывод: показатели не врут и с перегревом надо что-то делать.
А сделать нужно было всего лишь: снять радиатор, снять с него куллер и убрать из-под него отложения пыли.
(вообще, у меня в правилах дважды в год очищать системные блоки пылесосом, но каким-то образом отложения накопились раньше срока). Конечно же, не следует забывать подложить после всего горошинку свежей термопасты между поверностью процессора и радиатора.
После такого “секса с железом” в голове проскочила мысль: “А неплохо бы регулярно мониторить температуру в системнике и в случае появления тревожных симптомов оперативно на них реагировать“. Сказано - сделано!
Что нам нужно для мониторинга температуры? Две вещи: то, что будет эту температуру снимать с датчиков и то, что будет ее визуализировать, например, отрисовывая в красивых графиках. Второе - это конечно же RRD.
А первое?
Для Windows есть масса софта, позволяющего отслеживать температуру всего, чего угодно (главное, чтобы датчики стояли в нужных местах). А для FreeBSD?.. А для FreeBSD, путем недолгого ковыряния в портах /usr/ports/sysutils/, можно отыскать утилиту mbmon, для которой присутствуют как консольная, так и GUI’ная версии.
Port: mbmon-205_4 Path: /usr/ports/sysutils/mbmon Info: A tty motherboard monitor for LM78/79, W8378x, AS99127F, VT82C686 and ADM9240 Maint: ports@FreeBSD.org B-deps: R-deps: WWW: http://www.nt.phys.kyushu-u.ac.jp/shimizu/download/download.html Port: xmbmon-205_9 Path: /usr/ports/sysutils/xmbmon Info: A X motherboard monitor for LM78/79, W8378x, AS99127F, VT82C686 and ADM9240 Maint: ports@FreeBSD.org B-deps: kbproto-1.0.3 libICE-1.0.4_1,1 libSM-1.0.3_1,1 libX11-1.1.3_1,1 libXau-1.0.3_2 libXdmcp-1.0.2_1 libXt-1.0.5_1 pkg-config-0.23_1 xproto-7.0.10_1 R-deps: kbproto-1.0.3 libICE-1.0.4_1,1 libSM-1.0.3_1,1 libX11-1.1.3_1,1 libXau-1.0.3_2 libXdmcp-1.0.2_1 libXt-1.0.5_1 pkg-config-0.23_1 xproto-7.0.10_1 WWW: http://www.nt.phys.kyushu-u.ac.jp/shimizu/download/download.html
За утилитку благодарим японца Накамуру Казуши (Nakamura Kazushi). И хотя mbmon поддерживает далеко не весь спектр материнских плат, продающихся нынче на рынке компьютеров, если у Вас материнка Asus на чипах Intel, mbmon должен с ней работать.
Ставим mbmon без GUI:
# cd /usr/ports/sysutils/mbmon # make install clean
Рекомендую сразу же ознакомиться с файлом /usr/ports/sysutils/mbmon/pkg-descr
Это графическая/консольная мониторилка материнских плат, которая поддерживает LM78/79, WINBond 83781D/83782D/83783S, ASUS 991227F, и VIA VT82C686A/B PC-health чипы посредством трех способов: через шины ISA-I/O, SMBus, VIA-direct. Запустите "mbmon -h" или "xmbmon -help" чтобы увидеть подсказки по использованию. ***ВНИМАНИЕ***. Эта программа получает доступ к шине SMBus или же к порту ввода-вывода ISA напрямую с привелегиями суперпользователя и потому может вызвать падение системы. Пожалуйста, протестируйте программу сначала в режиме отладки запустив ее с ключом: "mbmon -d" (или "xmbmon -debug" для GUI версии).
Напугал дядько.
Попробовал я запустить ее в режиме “mbmon -d” - нифига страшного не случилось, потому сел читать ман.
Эта часть публикации доступна только зарегистрированным посетителям!
Пожалуйста, войдите [Login] или зарегистрируйтесь [Register].
Мануал - это конечно хорошо, но перейдем к практике. Как видно из man’а, mbmon может работать в режиме даемона и выдавать показания по телнет. Это может пригодиться, если у Вас несколько машин в сети, на которых следует мониторить температуру. Но я буду использовать mbmon в режиме единоразового запуска.
Путем недолгих экспериментов я выяснил, что с моей материнкой () mbmon будет работать в режиме “ISA I/O port”. Другие способы не поддерживаются. Составим необходимую команду:
# mbmon -c 1 -r -I -u -t -n TEMP0 : 41.0 TEMP1 : 49.0 TEMP2 : 48.0 FAN0 : 0 FAN1 : 3013 FAN2 : 0 VC0 : +1.42 VC1 : +3.17 V33 : +3.39 V50P : +5.05 V12P : +11.49 V12N : -14.92 V50N : -7.71 Mon Apr 6 12:16:10 EEST 2009 12:16pm up 9:38 daemony.org
Согласно документации, здесь мы имеем:
- TEMP0 - показания температурных датчиков на материнской плате;
- TEMP1 - показания температурных датчиков центрального процессора;
- TEMP2 - показания температурных датчиков чипов на материнской плате.
Кроме этого, из полученных параметров мы можем извлечь также значения напряжений в той или иной точке системы (для более подробного разбирательства читаем документацию). А пока, полученных циферок вполне достаточно, чтобы автоматизировать процесс мониторинга температуры и визуализировать его в виде наглядных графиков как, например, здесь. Но об этом в следущей публикации.
P.S.: Попробуйте запустить тулзовину так: “mbmon -c 1000 -r -I | grep TEMP1”
UPD: для отчета
mbmon был установлен сразу после того, как я “завел” систему после первого дауна (на рис. период “1″) и тоже сказал, что температура процессора около 75 градусов… Значит можно считать, что датчики на материнской плате не врут и показания снимаются верно.

Даунтайм в период “2″ на рисунке - это процесс чистки от пыли и грязи
Таким образом в прошлую ночь получилось два даунтайма с интервалами в один час и полчаса.
Похожие публикации
Теги: cpu, fan, FreeBSD, man mbmon, mbmon, rrd, system, графики, контроль, русский, температура


А вот второй бокс - ASUS P4GE-MX:
[root@simclone /usr/ports/sysutils/consolehm]# mbmon -I -r -c1
TEMP0 : 29.0
TEMP1 : 26.0
TEMP2 : 127.5
FAN0 : 0
FAN1 : 2743
FAN2 : 0
VC0 : +3.07
VC1 : +3.14
V33 : +3.30
V50P : +5.05
V12P : +15.50
V12N : -12.45
V50N : -5.50
Народ, я наблюдаю два весьма различных по железу компа, так у меня TEMP2 > 120! Это как вообще может быть?
[root@simfero /usr/ports/sysutils/mbmon]# /usr/local/bin/mbmon -I -r -c1
TEMP0 : 33.0
TEMP1 : 35.0
TEMP2 : 124.5
FAN0 : 0
FAN1 : 2163
FAN2 : 0
VC0 : +2.43
VC1 : +3.54
V33 : +3.30
V50P : +5.51
V12P : +12.22
V12N : +2.20
V50N : +2.49
Мать ASUS p5k-e
- сервис Яндекса для веб-мастеров. Аналог Google Analytics. Среди всех возможностей, можно также настроить SMS уведомление о недоступности сайта.
Кроме того, - сервис мониторинга серверов. Но у них отправка SMS уведомлений - платная услуга.
Удаленный мониторинг буркнул об этом SMS’кой
Как реализовал?
Господа, статья по использованию RRD выложена. Прошу читать, оценивать, вносить корректировки и дополнения.
В зависимости от того, кто имеет доступ к твоему Забиксу. Если только ты, то беспокоиться думаю не о чем. А что говорит документация относительно внесения пользователя zabbix в группу operator. ?
И еще один нюанс, так как к девайсам доступ на чтение только у группы operator
пришлось пользователя zabbix добавить в эту группу
pw groupmod operator -m zabbix
Я так понимаю это не есть безопасно.
Поправте меня!