Zabbix template & scripts to discover & monitor Linux sensors
- Low-level discovery of sensors: temperature (with thresholds), fans, voltage and power
- Triggers on temperature, fans and voltage (detect stopped fan, adjustable)
- Data is gathered once as a single JSON and all other items are
Dependent- extracted from raw JSON - All data is gathered directly from
SysFS- nolm-sensorsneeded to function
- Put sensors.conf in /etc/zabbix/zabbix_agentd.d folder
- Put sensors.py in /etc/zabbix/scripts folder (or in any other, but then you'll need to adjust sensors.conf)
- Import & link template
- Python3
{$SENSORS_FAN_LOW}: Low fan speed sensor threshold{$SENSORS_TEMP_CRIT}: Crit value for temp sensors{$SENSORS_TEMP_HIGH}: High value for temp sensors{$SENSORS_TEMP_HYST}: Hysteresis for temp sensors to make sure that trigger is not firing when value oscillates over threshold and back{$SENSORS_VOLTAGE_HIGH}: Voltage high threshold{$SENSORS_VOLTAGE_LOW}: Voltage low threshold
All *_LOW, *_HIGH, and *_CRIT macros can also be set per sensor as
described below.
Having all your items named Fan 'it8688' - 'fan1', Fan 'it8688' - 'fan2' etc. can be confusing.
To rename the first item as Front case fan 'it8688' - 'fan1', set a macro on the host:
{$SENSORS_FAN_NAME:"it8688_fan1"} = Front case fan
Set as much macros as you have sensors to rename. Use the macro name matching the sensor type:
{$SENSORS_FAN_NAME}{$SENSORS_TEMP_NAME}{$SENSORS_POWER_NAME}{$SENSORS_VOLTAGE_NAME}
See Zabbix's documentation for more information about user macros with context.
- Script was rewritten to gather data directly from
sysfsinstead of usingsensorsbinary - Updated templates for
6.0and6.4
- Script was rewritten from scratch to make use of new
sensorsargument-jto export in JSON format. If it's not supported then it'll fall back to parse raw text output of-u- this will stick for some time for backwards compatibility - Move to Python3