04 февраля 2015

Удаленный мониторинг температуры CPU


Как узнать температуру процессора или скорость кулера из удаленной консоли на freebsd сервере?

А очень просто!







Если у вас процессор Intel Core или новее, то можно так

# kldload coretemp
# sysctl -a | grep temperature

Если AMD,
# nkldload amdtemp
# sysctl -a | grep temp

Но, если какой-нибудь Pentium 4, то coretemp работать не будет.

Благо в портах есть удобная утилитка mbmon, сокращенно от MotherBoard Monitor. Этот порт с недавнего времени был перенесен в sysutils/xmbmon.
# uname -srm
FreeBSD 10.1-STABLE i386
# dmesg | grep CPU
CPU: Intel(R) Celeron(R) CPU 2.66GHz (2666.84-MHz 686-class CPU)
Краткий, "how to" как обращаться.
Запускаем с опцией  -A, она автоматически определяет подходящий метод доступа "VIA686 HWM directly", "SMBus", "ISA I/O port".
# mbmon -A
Запуск в debag режиме покажет какой метод используется.
# mbmon -d
ioctl(smb0:open): No such file or directory
SMBus[VT8233/A/8235/8237(KT266/333/400/600/880)] found, but No HWM available on it!!
Using ISA-IO access method!!
* Winbond Chip W83697HF found.
Опция -r выводит информацию в столбик
# mbmon -I -r -с1

TEMP0 : 45.0
TEMP1 : 51.5
TEMP2 : 0.0
FAN0 : 0
FAN1 : 1807
FAN2 : 0
VC0 : +1.38
VC1 : +0.06
V33 : +3.26
V50P : +5.08
V12P : +10.94
V12N : +0.14
V50N : +1.64
Первая температура материнской платы, затем отдельно каждое ядро.
Опция -T задает краткий вывод. Имеется 7 режимов:
  1. temp0\n
  2. temp1\n
  3. temp2\n
  4. temp0\temp1\n
  5. temp0\temp2\n
  6. temp1\temp2\n
  7. temp0\temp1\temp2\n
# mbmon -I -T 2
50.5
И аналогично для скорости вращения вентиляторов, опция -F.

Для удобства можно забабахать небольшой скриптик и получать письма или смс-ки в критических ситуациях.
#!/bin/sh
t=`mbmon -I -c 1 -T 2`
if [ "$t" > "60" ]
then
echo "Temperature is $t " | mail -s "[Warning]: High Temp!" your@gmail.com
echo "Temperature is $t " | mail -s "[Warning]: High Temp!" 79124567890@sms.ural.mts.ru
fi
У мтс нужно подключить бесплатную доп услугу "Прием SMS с E-mail".

Так же для удобно, когда температура выводится автоматически на экран приветствия при логине. Для этого сделаем скрипт motd.sh
#!/bin/sh
t1=`mbmon -I -c 1 -T 2`
t2=`mbmon -I -c 1 -T 1`
f=`mbmon -I -c 1 -F 2`
echo "The weather is"
echo "CPU: $t1"
echo "Chipset: $t2"
echo "Fan: $f
"
Кладем его в /usr/local/sbin и прописываем в пользовательском .profile после или вместо подсказок.
#if [ -x /usr/games/fortune ] ; then /usr/games/fortune freebsd-tips ; fi
echo ""

if [ -f /usr/local/sbin/motd.sh ]; then motd.sh; else echo "file is absent"; fi
Теперь каждый раз во время логина будете видеть текущую погоду на сервере, насколько там жарко и ветрено!

1 комментарий: