add lm-sensors
This commit is contained in:
parent
7f2afa5a05
commit
8e790628bb
@ -18,4 +18,4 @@ copy the `userparameter_nginx.conf` file in the directory "/etc/zabbix/zabbix_ag
|
|||||||
|
|
||||||
### On your Zabbix WebUI :
|
### On your Zabbix WebUI :
|
||||||
|
|
||||||
In "Configurations" -> "Templates", clic on the "Import" button and load the `module NGINX.yaml` file
|
In "Configurations" -> "Templates", clic on the "Import" button and load the `Template App Nginx by Zabbix agent Enhanced.yaml` file
|
||||||
|
17
Template Module lm-sensors/README.md
Normal file
17
Template Module lm-sensors/README.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
## What is the purpose of this template:
|
||||||
|
|
||||||
|
This template will automatically detect and supervise the temperature sensors of the machines.
|
||||||
|
|
||||||
|
It's optimized to make only one request on the agent, and to proceed the data on the Zabbix server
|
||||||
|
|
||||||
|
## How to setup:
|
||||||
|
|
||||||
|
### On your servers :
|
||||||
|
|
||||||
|
Make sure to install lm-sensors >= 3.5.0 and run the command `sensors-detect`
|
||||||
|
|
||||||
|
copy the `userparameter_sensors.conf` file in the directory "/etc/zabbix/zabbix_agentd.d/" and restart your zabbix agent
|
||||||
|
|
||||||
|
### On your Zabbix WebUI :
|
||||||
|
|
||||||
|
In "Configurations" -> "Templates", clic on the "Import" button and load the `Template Module lm-sensors.yaml` file
|
122
Template Module lm-sensors/Template Module lm-sensors.yaml
Normal file
122
Template Module lm-sensors/Template Module lm-sensors.yaml
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
zabbix_export:
|
||||||
|
version: '5.2'
|
||||||
|
date: '2021-04-13T20:45:01Z'
|
||||||
|
groups:
|
||||||
|
-
|
||||||
|
name: Templates
|
||||||
|
templates:
|
||||||
|
-
|
||||||
|
template: 'Template Module lm-sensors'
|
||||||
|
name: 'Template Module lm-sensors'
|
||||||
|
description: |
|
||||||
|
This template will automatically detect and supervise the temperature sensors of the machines.
|
||||||
|
|
||||||
|
It's optimized to make only one request on the agent, and to proceed the data on the Zabbix server
|
||||||
|
|
||||||
|
Important: this template is only compatible with lm-sensors >= 3.5.0 because it uses JSON.
|
||||||
|
groups:
|
||||||
|
-
|
||||||
|
name: Templates
|
||||||
|
applications:
|
||||||
|
-
|
||||||
|
name: Sensors
|
||||||
|
-
|
||||||
|
name: Temperatures
|
||||||
|
-
|
||||||
|
name: 'Zabbix raw items'
|
||||||
|
items:
|
||||||
|
-
|
||||||
|
name: 'Information about the lm-sensors'
|
||||||
|
key: sensors
|
||||||
|
history: 1h
|
||||||
|
trends: '0'
|
||||||
|
value_type: TEXT
|
||||||
|
applications:
|
||||||
|
-
|
||||||
|
name: 'Zabbix raw items'
|
||||||
|
discovery_rules:
|
||||||
|
-
|
||||||
|
name: 'Discovery of temperature sensors'
|
||||||
|
type: DEPENDENT
|
||||||
|
key: sensors.discovery
|
||||||
|
delay: '0'
|
||||||
|
lifetime: 7d
|
||||||
|
item_prototypes:
|
||||||
|
-
|
||||||
|
name: 'Temperature of "{#DEVICE}" - "{#SENSOR}"'
|
||||||
|
type: DEPENDENT
|
||||||
|
key: 'sensor-value["{#DEVICE}","{#SENSOR}"]'
|
||||||
|
delay: '0'
|
||||||
|
value_type: FLOAT
|
||||||
|
units: °C
|
||||||
|
applications:
|
||||||
|
-
|
||||||
|
name: Sensors
|
||||||
|
-
|
||||||
|
name: Temperatures
|
||||||
|
preprocessing:
|
||||||
|
-
|
||||||
|
type: JSONPATH
|
||||||
|
parameters:
|
||||||
|
- '$.[''{#DEVICE}''].[''{#SENSOR}''].[''{#INPUT}'']'
|
||||||
|
master_item:
|
||||||
|
key: sensors
|
||||||
|
trigger_prototypes:
|
||||||
|
-
|
||||||
|
expression: '{last()}>={#THRESHOLD}'
|
||||||
|
name: 'The temperature of the {#DEVICE} - {#SENSOR} sensor is too high'
|
||||||
|
priority: AVERAGE
|
||||||
|
graph_prototypes:
|
||||||
|
-
|
||||||
|
name: 'Evolution of the Temperature of "{#DEVICE}" - "{#SENSOR}"'
|
||||||
|
ymin_type_1: FIXED
|
||||||
|
graph_items:
|
||||||
|
-
|
||||||
|
sortorder: '1'
|
||||||
|
color: 1A7C11
|
||||||
|
item:
|
||||||
|
host: 'Template Module lm-sensors'
|
||||||
|
key: 'sensor-value["{#DEVICE}","{#SENSOR}"]'
|
||||||
|
master_item:
|
||||||
|
key: sensors
|
||||||
|
preprocessing:
|
||||||
|
-
|
||||||
|
type: JAVASCRIPT
|
||||||
|
parameters:
|
||||||
|
- |
|
||||||
|
var parsedvalue = JSON.parse(value);
|
||||||
|
var output = '[';
|
||||||
|
for(var device in parsedvalue) {
|
||||||
|
for(var sensor in parsedvalue[device]) {
|
||||||
|
input = '';
|
||||||
|
max = '';
|
||||||
|
crit = '';
|
||||||
|
threshold = '';
|
||||||
|
for (var index in parsedvalue[device][sensor]) {
|
||||||
|
if (index.substr(0,4) == "temp" && index.substr(index.length-6,index.length) == "_input") {
|
||||||
|
input = index;
|
||||||
|
} else if (index.substr(index.length-4,index.length) == "_max") {
|
||||||
|
max = parseFloat(parsedvalue[device][sensor][index]);
|
||||||
|
} else if (index.substr(index.length-5,index.length) == "_crit") {
|
||||||
|
crit = parseFloat(parsedvalue[device][sensor][index]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (input) {
|
||||||
|
if (max && crit) {
|
||||||
|
if (max < crit) {
|
||||||
|
threshold = max;
|
||||||
|
} else {
|
||||||
|
threshold = crit;
|
||||||
|
}
|
||||||
|
} else if (max) {
|
||||||
|
threshold = max;
|
||||||
|
} else if (crit) {
|
||||||
|
threshold = crit;
|
||||||
|
} else {
|
||||||
|
threshold = "2147483647";
|
||||||
|
}
|
||||||
|
output += '{"{#DEVICE}":"' + device + '","{#SENSOR}":"' + sensor + '","{#INPUT}":"' + input + '","{#THRESHOLD}":"' + threshold + '"},';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return output.slice(0,-1) + ']';
|
1
Template Module lm-sensors/userparameter_sensors.conf
Normal file
1
Template Module lm-sensors/userparameter_sensors.conf
Normal file
@ -0,0 +1 @@
|
|||||||
|
UserParameter=sensors,sensors -j -A
|
Loading…
Reference in New Issue
Block a user