Мониторинг температуры процессора в Linux и отправка данных в VizIoT

В этом примере мы настроим отслеживание температуры процессора вашего сервера, ПК или майнинг-фермы, работающих под управлением Linux, и автоматическую отправку данных в VizIoT.

Статья подойдёт для:

  • системных администраторов;
  • майнеров;
  • владельцев домашних серверов;
  • всех, кто хочет удалённо контролировать температуру CPU.

Что потребуется

  • Компьютер с Linux

  • Утилиты:

    • nano — текстовый редактор
    • grep — фильтрация текста в командной строке
    • curl — отправка HTTP-запросов
    • lm_sensors — получение температуры CPU и датчиков
    • cron — автоматический запуск задач

Создание устройства в VizIoT

  1. Создайте новое устройство с именем «Тест температура процессора».

  2. Добавьте параметры (пример для четырёхъядерного CPU):

    • phys0 — Температура CPU
    • core0 — Температура ядра 0
    • core1 — Температура ядра 1
    • core2 — Температура ядра 2
    • core3 — Температура ядра 3
  3. В «Основных настройках» скопируйте:

    • Ключ доступа
    • Пароль доступа

Эти данные понадобятся в скрипте.


Установка необходимых утилит

Обычно lm_sensors и curl уже установлены, но если нет — установите вручную.

RedHat / CentOS

sudo yum install lm_sensors curl

Debian / Ubuntu / Linux Mint

sudo apt-get install lm-sensors curl

Настройка lm_sensors

После установки выполните автоматическую конфигурацию:

sudo sensors-detect

На все вопросы можно нажимать Enter, соглашаясь с вариантами по умолчанию.

Теперь выведите температуры:

sensors

Пример вывода:

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +29.0°C  (high = +80.0°C, crit = +100.0°C)
Core 0:         +23.0°C  
Core 1:         +26.0°C  
Core 2:         +24.0°C  
Core 3:         +24.0°C  

Извлечение температуры через grep

Например, получим температуру ядра 0:

sensors | grep -Eo '^Core 0: +\+[0-9]+\.[0-9]+' | grep -Eo '\+[0-9]+\.[0-9]+'

Отправка данных в VizIoT

Ручной пример запроса:

curl --silent "https://viziot.com/update?key=_____&pass=_____&temp=28" > /dev/null

Создание автоматического скрипта

Откройте файл:

nano /var/viziot.sh

Вставьте содержание:

key='_____________'
pass='_________________'

phys0=$(sensors | grep -Eo '^Physical id 0: +\+[0-9]+\.[0-9]+' | grep -Eo '[0-9]+\.[0-9]+')
core0=$(sensors | grep -Eo '^Core 0: +\+[0-9]+\.[0-9]+' | grep -Eo '[0-9]+\.[0-9]+')
core1=$(sensors | grep -Eo '^Core 1: +\+[0-9]+\.[0-9]+' | grep -Eo '[0-9]+\.[0-9]+')
core2=$(sensors | grep -Eo '^Core 2: +\+[0-9]+\.[0-9]+' | grep -Eo '[0-9]+\.[0-9]+')
core3=$(sensors | grep -Eo '^Core 3: +\+[0-9]+\.[0-9]+' | grep -Eo '[0-9]+\.[0-9]+')

curl --silent "https://viziot.com/update?key=$key&pass=$pass&phys0=$phys0&core0=$core0&core1=$core1&core2=$core2&core3=$core3" > /dev/null

Сохраните файл и сделайте его исполняемым:

chmod +x /var/viziot.sh

Автоматический запуск через cron

Откройте crontab:

crontab -e

Добавьте запуск скрипта каждую минуту:

0-59 * * * * /var/viziot.sh

Теперь данные будут обновляться автоматически.


Добавление виджета в панели VizIoT

  1. Создайте панель с именем «Тест Сервер».

  2. Добавьте виджет «Температура процессора»:

    • тип: «График»
    • устройство: «Тест температура процессора»
    • параметры: phys0, core0, core1, core2, core3

Готово!

Теперь ваш сервер автоматически отправляет температуру процессора на VizIoT, где вы можете:

  • наблюдать графики,
  • строить аналитику,
  • отслеживать перегрев,
  • получать историю температуры процессора и ядер.