Вступ
У світі IoT та домашніх серверів Raspberry Pi є незамінним помічником. Проте для забезпечення його стабільної роботи важливо постійно контролювати ключові параметри, зокрема температуру процесора. У цій статті я покажу, як за допомогою Zabbix налаштувати моніторинг температури CPU Raspberry Pi – від прав доступу до створення графіка на дашборді. Цей гайд допоможе вам не лише дізнатися поточну температуру, але й вчасно отримувати сповіщення у випадку перегріву.
В мене Zabbix встановлений на Raspberry Pi, тому для неї він виступає в ролі як сервера так і клієнта, що трошки полегшує налаштування.
Налаштування прав доступа для Zabbix агента
Щоб уникнути помилок при зборі температури необхідно додатково виконати наступні дії, вони залежать від певних помилок, з якими я стикався під час налаштування.
Try creating a device file with: sudo mknod /dev/vcio c 100 0
Оскільки девайс /dev/vcio існує, йому просто недостатньо прав для коректної роботи. Необхідно змінити дозвіл, щоб Zabbix міг використовувати /dev/vcio
sudo chgrp video /dev/vcio
sudo chmod 660 /dev/vcio
Також треба додати користувача zabbix до групи video, щоб мати доступ
sudo usermod -aG video zabbix
Щоб зміни вступили в силу, треба перезавантажити агента
sudo systemctl restart zabbix-agent
Тепер можна перейти до користувацьких налаштувань
Налаштування відстеження температури
Для того, щоб агент розумів як і звідки брати значення температури, в конфігурації агента необхідно прописати користувацький параметр за яким агент отримує оброблену інформацію про поточну температуру.
sudo nano /etc/zabbix/zabbix_agentd.conf
В кінці файлу додайте рядок:
UserParameter=system.cpu.temp,vcgencmd measure_temp | sed -n "s/temp=\([0-9]*\.[0-9]*\)[^0-9]*$/\1/p"
Детальний опис цієї команди:
- UserParameter – це назва функції для користувацького ключа
- system.cpu.temp – це ключ, який ми будемо використовувати
- vcgencmd measure_temp – Це стандартна команда Raspberry Pi, яка повертає температуру CPU у форматі: temp=45.0’C
- s/temp=\([0-9]*\.[0-9]*\)[^0-9]*$/\1/p – це регулярний вираз який прибирає зайві символи і залишає числове значення.
У результаті команда повертає тільки число, в моєму випадку це, 63.3. Для того, щоб зміни вступили в силу, необхідно перезавантажити сервіс забікс аггента
sudo systemctl restart zabbix-agent
Таким чином на стороні сервера все налаштовано, переходимо до налаштувань забікса через веб.
Додавання елемента (item) у Zabbix
У веб-інтерфейсі Zabbix відкрий: Data collection → Hosts → Zabbix server → Items → Create item

Заповнюються такі поля:
- Name: CPU Temperature
- Type: Zabbix agent
- Key: system.cpu.temp
- Type of information: Numeric (float)
- Units: °C

Щоб впевнитися, що все правильно заповнено необхідно протестувати роботу цього айтемса, клацаємо на кнопку Test. У вікні Test item клацаємо Get value and test і отримуємо результат.

Зберігаємо цей Айтем клацнувши на Add або Update
Налаштування тригера для сповіщення
Для того, щоб я отримував сповіщення про підвищення температури, наприклад до бажаного значення в 70 градусів, потрібно створитти тригер. Він буде порівнювати поточну температуру із критичною, і якщо така подія відбудеться то на дашборді з’явиться нотифікація.
Перейди до: Data collection → Hosts → Zabbix server → Triggers → Create trigger

У вікні треба заповнити поля:
- Name: CPU Temperature is too high
- Event name: CPU Temperature is too high
- Severity: Warning
- Expression: last(/Zabbix server/system.cpu.temp)>=70
або клацнути на кнопку Add і через конструктор виразу вибрати необхідні параметри як зображено на скріншоті.

Це означає, що якщо температура перевищить 70°C, тригер спрацює.
Натисни Add, щоб зберегти цей тригер.
Віджет графа на дашборді
Було б візуально привабливо спостерігати за графіком температури пристрою в залежності від умов використання.
Для цього треба перейти на дашборд, натиснути “edit dashboard” і визначити місце нового графіку. Відкриється вікно з налаштуваннями, треба вибрати:
- Type: Graph
- Name: RPI Temp C
- Host patterns: Zabbix Server
- Item patterns: CPU Temperature
Додати цей віджет клацнувши на кнопку Add.

Таким чином дашборд заббікса буде відстежувати температуру распбері пай та візуально ілюструвати графік на дашборді.
Далі можна змінити розмір та розмістити цей віджет як буде зручно. Після цього в правому верхньому куті підтвердити збереження дашборду клацнувши на кнопку Save changes.

Висновки
Як бачимо, налаштування Zabbix для моніторингу температури CPU на Raspberry Pi не є складним, але вимагає уваги до деталей, особливо при роботі з правами доступу. Завдяки кастомному параметру, тригеру та візуалізації на дашборді, ви отримаєте потужний інструмент для контролю стану вашого пристрою. Це особливо корисно для довготривалих проєктів, серверних завдань або просто для ентузіастів, що бажають знати більше про роботу свого Raspberry Pi.