Monitoring Raspberry Pi CPU Temperature with Zabbix



Introduction

In the world of IoT and home servers, Raspberry Pi stands out as a versatile companion. However, to ensure its stable operation, it’s crucial to monitor key metrics such as the CPU temperature. In this guide, I’ll walk you through how to configure Zabbix for Raspberry Pi temperature monitoring — from setting access permissions to visualizing CPU temperature trends directly on the dashboard. You’ll also learn how to create an alert trigger for overheating.

Since I have Zabbix installed directly on the Raspberry Pi, it acts as both the server and agent, making setup slightly easier.

Fixing Permissions for Zabbix Agent

To avoid errors while collecting temperature data, you may need to perform some permission tweaks, especially if you run into this error:

Try creating a device file with: sudo mknod /dev/vcio c 100 0

In my case, /dev/vcio already existed but lacked proper permissions. I need to fix it.

Permission settings

sudo chgrp video /dev/vcio
sudo chmod 660 /dev/vcio

Then, add the zabbix user to the video group

sudo usermod -aG video zabbix

and restart the agent to apply changes

sudo systemctl restart zabbix-agent

Now you can go to user settings

Creating a Custom User Parameter

To let Zabbix agent fetch the CPU temperature, we add a custom user parameter to the config file

sudo nano /etc/zabbix/zabbix_agentd.conf

Add this line to the end of the file:

UserParameter=system.cpu.temp,vcgencmd measure_temp | sed -n "s/temp=\([0-9]*\.[0-9]*\)[^0-9]*$/\1/p"

Breakdown:

  • UserParameter defines a custom key.
  • system.cpu.temp is the key name.
  • vcgencmd measure_temp is a standard Raspberry Pi command returning temp like temp=45.0'C.
  • The sed command extracts just the numeric part (e.g., 63.3).

Restart the agent again:

sudo systemctl restart zabbix-agent

Adding a New Item in Zabbix Web Interface

Go to: Data collection → Hosts → Zabbix server → Items → Create item

Fill in the fields:

  • Name: CPU Temperature
  • Type: Zabbix agent
  • Key: system.cpu.temp
  • Type of information: Numeric (float)
  • Units: °C

Test the item by clicking TestGet value and test.

We got the correct result, which indicates the correct settings. We save this item. Сlick Add or Update

Creating a Trigger for Alerts

In order for me to receive notifications about the temperature rising, for example to the desired value of 70 degrees, I need to create a trigger. It will compare the current temperature with the critical one, and if such an event occurs, a notification will appear on the dashboard.

Navigate to: Data collection → Hosts → Zabbix server → Triggers → Create trigger

Fill in:

  • Name: CPU Temperature is too high
  • Event name: CPU Temperature is too high
  • Severity: Warning
  • Expression: last(/Zabbix server/system.cpu.temp)>=70

You can also use the expression constructor

Click Add to save.

Adding a Graph Widget to the Dashboard

It would be visually appealing to observe the device’s temperature graph depending on the conditions of use.

To visualize temperature data, go to your Zabbix dashboard, click Edit dashboard, and add a new widget.

Configure the widget as:

  • Type: Graph
  • Name: RPI Temp C
  • Host patterns: Zabbix Server
  • Item patterns: CPU Temperature

Click Add, then resize or reposition the widget as you like.

Add this widget by clicking the Add button. You can then resize and position this widget as you see fit. After that, confirm saving the dashboard by clicking the Save changes button in the upper right corner.

Conclusion

As you can see, Zabbix Raspberry Pi temperature monitoring is quite achievable. Once configured, you’ll have a reliable tool that can alert you when your Pi overheats and display historical temperature trends in a clean graphical format. Whether you’re running a home server or experimenting with projects, CPU temperature monitoring on Raspberry Pi is a smart precaution.