Zabbix cpu temperature linux

Прикручиваем мониторинг параметров smart или какой-либо температуры (cpu, motherboard) к Zabbix

Собственно не нашел собранной в кучу статьи как прикрутить к zabbix мониторинг какой-либо температуры, поэтому решил написать свою.

Задача1.
Имеем установленную и настроенную систему мониторинга zabbix 1.8.2. Нужно прикрутить мониторинг температуры жестких дисков (или любого другого параметра smart) на linux-сервере (debian).

Поехали.
1. Устанавливаем пакет smartmontools.
2. Команда

выводит все параметры smart, ищем там значение температуры.
3. У меня параметр называется Temperature_Celsius.
4. Далее необходимо из вывода команды smartctl выбрать значение температуры. Это можно сделать одной строкой, но проблема в том, что zabbix-agent запустит эту команду от пользователя zabbix, а она требует прав рута. Можно конечно добавить в sudoers пользователя zabbix, ну или ещё что-то, но я просто добавил запуск скрипта

в crontab c периодичностью запуска 15 минут (конечно напрягает запись в syslog каждые 15 минут, потом может переделаю).
5. Теперь добавляем в конфиг zabbix-агента пользовательский параметр, в котором выбираем только последние три байта файла (после grep там получается строка, в которой последние два знака и есть температура винчестера, третий знак это конец строки наверное)

UserParameter=smart_ct,tail -bytes 3 /tmp/smart

$! &; ( ) | # @.
6. Смотрим логи агента на предмет ругательств. Проверяем на zabbix-сервере работает ли наш параметр

7. Ну а теперь дело техники-добавляем из веб-морды zabbix новый элемент данных к хосту, триггер, и, собственно, всё.
Побочный эффект-я смотрю таким образом температуру в серверной.
Задача 2.
Имеем установленную и настроенную систему мониторинга zabbix 1.8.2. Нужно прикрутить мониторинг температуры системной платы (процессора, памяти etc) на linux-сервере (debian). Встроенные изначально элементы данных с ключами sensor[temp1|2|3] пишут, что не поддерживаются.

Поехали
1. Устанавливаем пакет lm-sensors.
2. Запускаем команду

и скорее всего видим, что нас отправляют в sensors-detect.
3. Запускаем

на все вопросы кроме последнего отвечаем да. Если найдутся поддерживаемые железки, то видим (в моем случае) примерно следующее

To load everything that is needed, add this to /etc/modules:
#—-cut here—-
# Chip drivers
coretemp
f71882fg
#—-cut here—-

UserParameter=temb_mb,/usr.bin/sensors | grep ‘temp3’ | cut -f 2 -d +| grep -Eo ‘^..’

тут пришлось немного вспомнить регулярные выражения, в итоге получилась такая конструкция для извлечения температуры из строчки. Уверен, что можно сделать проще, но опыта не хватает. Ещё добавляем в конфиг агента строчку UnsafeUserParameters=1 (зачем написано выше). Делаем рестарт демона zabbix-agent.
6. Смотрим логи агента на предмет ругательств, проверяем на zabbix-сервере работает ли параметр

7. Ну а теперь дело техники-добавляем из веб-морды zabbix новый элемент данных к хосту, триггер, и, собственно, всё.
Количество параметров, которые выводит команда sensors естественно зависит от железа. Возможно у кого-то и работают встроенные изначально в zabbix элементы данных по мониторингу температуры, но мне не повезло…

Источник

MyOpsBlog

From IT infrastructure youngster

CPU temperature monitoring with Zabbix

With contemporary monitoring systems you can monitor whatever you wish. All you need – understand technology of data gathering and visualizing. 2016 year serves thousands of ways to perform it. At this post I’ll show up one of the most popular ways to do it – monitoring customization with Zabbix.

CPU temperature metric is one of the most important for every kind of IT infrastructure. You can analyze your hardware healthcare, check server refrigeration at your datacenter. If this value is around critical – your project looks so close to crash. But here is just an example about how to track anything your OS has. You can go through the list of instructions I’ll point below with every data metric. All we need now – Zabbix-agent on host with installed lm-sensors utility and Zabbix-server. You can find lm_sensors utility in every default repository for your Linux distribution.

Filter sensors command to see average CPU temperature

Just run this command:

Читайте также:  Windows не может завершить форматирование флешки raw

You should see just one figure. That’s an average temperature of processor cores.

You can monitor temperature of each core running few commands and add each of this metrics as a special user parameter. You can gather this temperature metrics at the one graph easily. That’s just my opinion of look at it, average picture for one physical CPU will be enough.

Add user parameter to Zabbix agent

1. Edit Zabbix agent config file (/etc/zabbix/zabbix_agentd.conf). At first ensure that user parameters option is on

2. Add new parameter at the bottom of file.

3. Restart Zabbix agent on the Wowza server to enable your changes at last. Now you have a streaming metric which is going to be shipped to connected Zabbix server.

Configure Zabbix web-panel

1. Add new item to your host (Configuration -> Hosts -> Items of desired host). Configure stored time, choose subject application, data type and so on.

2. Add new trigger for your item (Configuration -> Hosts -> Triggers of desired host). Your trigger has to contain the comparison between your item and critical value. Set up your own value, I picked 70 degrees. Later you can receive from Zabbix alerts if your metric is getting higher than the trigger value.

3. Add new graph to your host (Configuration -> Hosts -> Graphs of desired host). Point there name of created item and customize properties of visualization.

4. Check your new graph.

My CPU temperature was too high. But with monitoring I’ve got an opportunity to fix cooling problem in time.

That’s all. Change the metric and command – principles will stay as they are.

Источник

Cross-platform CPU and disk temperature monitoring (LLD, Trapper) Popular

NEW: Update your OHMR version!

CPU and disk temperature monitoring scripts for zabbix. Also support voltage and fan speed monitoring on certain configurations. Uses lm-sensors , smartmontools and OpenHardwareMonitorReport . For Linux, BSD and Windows.

Features

  • Low-Level Discovery
  • Bulk item upload with zabbix-sender
  • No unnecessary processes are spawned
  • Does not spin idle drives
  • RAID passthrough (manual)

These scripts were tested to work with following configurations:

  • Centos 7 / Zabbix 3.0 / Python 3.6
  • Debian 9 / Zabbix 3.0 / Python 3.5
  • Ubuntu 17.10 / Zabbix 3.0 / Python 3.6
  • FreeBSD 10.3 / Zabbix 3.0 / Python 3.6
  • Windows XP / Zabbix 3.0 / Python 3.4
  • Windows 7 / Zabbix 3.0 / Python (3.4, 3.7, 3.8)
  • Windows Server 2012 / Zabbix 3.0 / Python 3.7

Updates from time to time. Please use the latest version.

Источник

Zabbix cpu temperature linux

CPU and disk temperature monitoring scripts for zabbix. Also support voltage and fan speed monitoring on certain configurations. Uses lm-sensors , smartmontools and OpenHardwareMonitorReport . For Linux, BSD and Windows.

  • Multi-CPU, disk and GPU solution
  • Low-Level Discovery
  • Bulk item upload with zabbix-sender
  • No unnecessary processes are spawned
  • Does not spin idle drives
  • RAID passthrough (manual)

UPD: not relevant anymore. Just use custom 0.8.0.5+.

Choosing OHMR version

NEW: Update your OHMR version!

Version for Windows XP.

Only custom param-capable versions are supported on Windows 7+.

As prerequisites you need python3 , lm-sensors , smartmontools , sudo and zabbix-sender packages. For testing zabbix-get is also required.
Take a look at scripts first lines and provide paths if needed. If you have custom RAID configuration, also provide that by hand. Import Template_mini-IPMI_v2.xml in zabbix web interface.

Then, for Intel processor you need to add coretemp_load=»YES» to /boot/loader.conf . For AMD it will be amdtemp_load=»YES» . Reboot or manual kldload is required to take effect.

Install python3, adding it to PATH during installation for all users. Install smartmontools and add its bin folder to PATH in environment variables. OpenHardwareMonitorReport 0.8.0.5+ requires .NET Framework 4 . 0.3.2.0 requires .NET Framework 3 .

Then you need to include your zabbix conf folder in zabbix_agentd.conf , like this:

Also its recomended to add at least Timeout=10 to config file to allow drives spun up and OHMR execution.

Thats all for Windows. For others run the following to finish configuration:

Default operation mode. Displays json that server should get, detaches, then waits and sends data with zabbix-sender. Example host is your Host name field in zabbix. You might want to use nonexistent name for testing to avoid unnecessary database pollution (client introduces itself with this name and false names will be ignored).

Verbose mode. Does not detaches or prints LLD. Lists all items sent to zabbix-sender, also it is possible to see sender output in this mode.

Читайте также:  Как всегда открывать от имени администратора windows 10

These scripts were tested to work with following configurations:

  • Centos 7 / Zabbix 3.0 / Python 3.6
  • Debian 9 / Zabbix 3.0 / Python 3.5
  • Debian 10 / Server 5.0 / Agent 4.0 / Python 3.7
  • Ubuntu 20.04 / Server 5.0 / Agent 4.0 / Python 3.8
  • FreeBSD 10.3 / Zabbix 3.0 / Python 3.6
  • Windows XP / Zabbix 3.0 / Python 3.4
  • Windows 7 / Zabbix (3.0, 5.0) / Python (3.4, 3.7, 3.8)
  • Windows Server 2012 / Zabbix 3.0 / Python 3.7

Источник

Мониторинг температуры в Zabbix

Мониторинг температуры процессора, материнской платы, памяти и жестких дисков системой Zabbix очень важен и крайне необходим. Контроль над температурными параметрами компьютера избавляет от серьезных проблем связанных с постоянным перегревом важных узлов компьютера.

Введение

Мониторинг температуры сервера это перовое что я обычно настраиваю сразу. Контролирую по максимуму все важные элементы.

Описание подойдёт для разных систем Linux. Более детально про установку и настройку Zabbix агентов для разных систем можно узнать в статье Zabbix agent установка и настройка.

Общий принцип мониторинга температуры

Для любой операционной системы необходимо выполнить 4 условия:

  1. Возможными способами извлечь данные с датчиков температуры нужного устройства;
  2. Обработать данные получив нужное значение;
  3. Передать полученное значение на сервер Zabbix;
  4. На сервере Zabbix добавить элемент данных, тригер и график.

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

Для примера я буду использовать систему Debian 10 Buster.

Мониторинг температуры CPU и Memory

Для получения данных о температуре будем применять утилиту lm-sensors. Утилита очень популярна и присутствует во всех дистрибутивах Linux.

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

После установки необходимо запустить мастер настройки. Мастер обнаружит все доступные в системе встроенные аппаратные датчики, а также автоматически определит подходящие драйвера для них.

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

Примерно такой вывод будет при отрицательном ответе на последний вопрос при настройке. При положительном ответе вы увидите гораздо больше параметров.

В выводе мы видим следующие группы датчиков:

  • coretemp-isa-0001 — второй 4 ядерный процессор;
  • i5k_amb-isa-0000 — 8 модулей памяти;
  • coretemp-isa-0000 — первый 4 ядерный процессор.

Можно вывести показания одной группы датчиков.

Команды для вывода нужных параметров

Получить необходимые значения можно разными вариантами. Причем как в том как написать код так и в том какие параметры получать для мониторинга.

Например, в моем случае имеется 4 ядерный процессор который показывает температуры на каждом ядре. Можно передавать максимальное, минимальное или среднее значение.

Мне кажется что правильней передавать максимальное значение. Если одно из ядер будет сильно перегреваться а другие имеют температуру ниже среднего я увижу среднюю температуры немного выше обычного показателя и не пойму что надо срочно решать проблему. Возможно для процессора такое и не сможет произойти, но для 8 модулей памяти вполне реально. Контролировать все показатели ядер и каждой планки памяти можно, но не имеет смысла.

Для выборки параметра из всех полей где присутствует параметр Core и есть значение температуры можно использовать следующие универсальные команды:

Для вывода параметра с одной строки можно использовать следующий код:

Где параметры имеют следующее значение:

  • sensors — сама программа;
  • coretemp-isa-00000 — группа датчиков с которой выводить значение;
  • grep ‘Core 0’ — название параметра;
  • cut -c16-17 — выводит 16 и 17 знак с начала строки.

В нашем случае присутствует два процессора и у обоих одинаковое значение параметра Core. Для вывода параметров для конкретного процессора необходимо указать группу датчиков.

Для вывода нужной температуры для памяти можно использовать два варианта:

Надеюсь вам стало понятно как можно используя эти команды вывести нужный вариант.

Если будут вопросы вы всегда можете задать их в комментариях или поделиться своим опытом.

Добавление параметров для Zabbix агента

Для того чтобы Zabbix агент мог работать с нашими параметрами необходимо добавить в файл настройки необходимый параметр.

После необходимого параметра добавляем нужный код. В моем случае получился следующий код:

Расшифрую первую строчку кода которая содержит следующие значения:

  • UserParameter — параметр согласно которого агент понимает что с ним надо работать;
  • pve-t.core0 — название параметра который мы будем использовать при добавлении элемента данных;
  • sensors coretemp-isa-00000 | awk -F'[:+°]’ ‘; if(max Проверка получения значения Zabbix агентом

Для уверенности в том что агент правильно получает данные нам необходимо выполнить команду которая покажет какой параметр получает агент Zabbix.

Выведем значение первого параметра который был в добавляемом коде:

Параметр работает и получает правильное значение.

В случае получения ошибок

перейдите по ссылке и узнаете почему не работает zabbix_get.

Мониторинг температуры HDD и SSD

Можно получить данные о температуре жесткого диска с системы SMART, которая присутствует на всех современных дисках. На сервере, с которого я собираюсь получать значения, работает система Proxmox в которой присутствует собственный механизм проверки дисков на основании SMART. Будем получать данные температуры другим способом.

Утилиту hddtemp которая присутствует во всех дистрибутивах Linux и позволяет получать значения температуры дисков нам идиально подходит.

Установим утилиту выполнив команду:

Команды для вывода нужных параметров

Вначале нам необходимо вывести список дисков которые используются в системе. Например, я выполняю следующую команду:

Из вывода видно что в системе есть два диска sda и sdb.

Выведем показание температуры для диска sda:

Команда для получения значений температуры будет такой:

Где параметры в коде имеют следующее значение:

  • hddtemp /dev/sda — утилита и диск с которого нужно получить значение;
  • cut -c24-25 — вывод 24 и 25 знака с начала строки.

Добавление параметров для Zabbix агента

Для того чтобы Zabbix агент мог работать с нашими параметрами необходимо наличие в файл настройки необходимого параметра.

После проверки наличия параметра добавляем необходимый код:

Расшифрую первую строчку кода которая содержит следующие значения:

  • UserParameter — параметр согласно которого агент понимает что с ним надо работать;
  • pve-t.sda — название параметра который мы будем использовать при добавлении элемента данных;
  • hddtemp /dev/sda | cut -c24-25 — команда которой получается требуемое значение.

После внесения изменений в файл настройки Zabbix агента его обязательно нужно перезапустить.

Для систем использующих Systemd команда перезапуска агента будет одинаковой. Например, для Debian 10 и CentOS 7 команда будет следующая:

Проверка получения значения Zabbix агентом

Советую всегда проверять как агент получает значения на самом узле сбора данных.

Перейдите по ссылке сможете узнаете почему Не работает zabbix_get.

Пробуем получить данные температуры диска sda:

Мы получили ошибку в которой говорится что нет доступа на выполнение команды от пользователя Zabbix. В интернете масса советов о том как эти права добавить использую sudo, но в нашем случае используется система Proxmox в которой нет этого механизма а усложнять сам гипервизор занятие дурное.

Выведем информацию о правах на утилиту:

Из вывода видно что принадлежит она root и право запускать имеет только он.

Выполним команду которая позволит пользователю Zabbix запускать это файл:

Мониторинг температуры в системах Windows

Настроить мониторинг на системе Windows температурных параметров оказалось не просто. В большинстве случаев статьи в интернете описывают различные варианты использования программы Open Hardware Monitor а именно её консольной версии. На сайте разработчика я не нашел консольного варианта а скачивать с других сайтов считаю не целесообразно по разным причинам.

Программа позволяет создавать логи в формате csv и имеет веб лицо с выводом всех параметров. Возможно, как то использовать эти возможности, но ответа на этот вопрос я пока не нашел.

Поделитесь пожалуйста в комментариях своими вариантами мониторинга температур в системах Windows.

Действия на сервере Zabbix

Добавление данных для мониторинга будет показано на примере данных максимальной температуры ядра первого процессора.

Добавление элемента данных

Открываем необходимый узел и перейдя в «Элементы данных» добавляем новый нажав «Создать элемент данных«.

Необходимо заполнить следующие поля:

  • Имя — core0 Temperature;
  • Ключ — pve-t.core0;
  • Тип информации — Числовой (с плавающей точкой);
  • Интервал обновления — 1m;
  • Период хранения истории — 1w;
  • Группы элементов данных — CPU.

Добавление тригера

Открываем необходимый узел и перейдя в «Тригеры» добавляем новый нажав «Создать тригер«.

Необходимо заполнить следующие поля:

Выражение формируется на вкладке открывающейся по кнопке «Добавить» рядом с полем «Выражение«.

Добавление графика

Открываем необходимый узел и перейдя в «Графики» добавляем новый нажав «Создать график«.

Какое количество графиков и настройки параметров отображения решите сами. Например, мне нравится выводить все параметры температур в один график.

По нажатию кнопки «Добавить» в параметре «Элемент данных» выбираем все необходимые элементы данных для отображения на графике.

В результате мой график имеет следующий вид:

На графике видно как менялись показания когда я подбирал оптимальное положение и тип вентиляторов.

К моему удивлению расположение мощного вентилятора на выдув воздуха снижает общую температуру при закрытом корпусе лучше чем при его отсутствии и открытом корпусе.

Заключение

После того как вы увидите свой график температурных параметров вам захочется поиграться с корпусом системного блока и вентиляторами для получения оптимальных параметров температуры. Основываясь на реальных данных вы сможете правильно настроить охлаждение важных узлов системного блока. Иногда наши мнения ошибочны. Против законов физики не попрешь. Например, после того как я стал использовать мониторинг температуры я кардинально поменял отношение и к тому какие должны быть вентиляторы и как их располагать.

В результате все мои сервера стали работать тише а температурные параметры соответствует средним для данных типов устройств.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Оцените статью