1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
|
zabbix_export:
version: '6.0'
date: '2022-01-26T10:33:53Z'
groups:
-
uuid: e960332b3f6c46a1956486d4f3f99fce
name: 'Templates/Server hardware'
templates:
-
uuid: 02f35169a5a54a5aad8b3f06e798ab1f
template: 'Chassis by IPMI'
name: 'Chassis by IPMI'
description: |
Template for monitoring servers with BMC over IPMI that work without any external scripts.
All metrics are collected at once, thanks to Zabbix's bulk data collection. The template is available starting from Zabbix version 5.0.
It collects metrics by polling BMC remotely using an IPMI agent.
Known Issues:
Description: If the BMC has a sensor with an empty threshold value, we get the LLD error "Cannot create trigger...".
You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/398023-discussion-thread-for-official-zabbix-template-ipmi
Template tooling version used: 0.41
groups:
-
name: 'Templates/Server hardware'
items:
-
uuid: dbcf45cb09284fc19a17e7369c8fda43
name: 'Get IPMI sensors'
type: IPMI
key: ipmi.get
history: '0'
trends: '0'
value_type: TEXT
description: 'The master item that receives all sensors with values for LLD and dependent elements from BMC.'
tags:
-
tag: component
value: raw
discovery_rules:
-
uuid: d0a3bd3c62d7438d8acde8ff0a9bb4db
name: 'Discrete sensors discovery'
type: DEPENDENT
key: ipmi.discrete.discovery
delay: '0'
filter:
evaltype: AND
conditions:
-
macro: '{#SENSOR_READING_TYPE}'
value: threshold
operator: NOT_MATCHES_REGEX
formulaid: A
-
macro: '{#SENSOR_TYPE}'
value: '{$IPMI.SENSOR_TYPE.MATCHES}'
formulaid: B
-
macro: '{#SENSOR_TYPE}'
value: '{$IPMI.SENSOR_TYPE.NOT_MATCHES}'
operator: NOT_MATCHES_REGEX
formulaid: C
description: 'Discovery of the discrete IPMI sensors.'
item_prototypes:
-
uuid: 6ce86fa51c614f94b2250e14af8d9385
name: 'IPMI: {#SENSOR_ID}'
type: DEPENDENT
key: 'ipmi.state_text[{#SENSOR_ID}]'
delay: '0'
history: 7d
trends: '0'
value_type: CHAR
description: 'It is a state of the discrete IPMI sensor.'
preprocessing:
-
type: JSONPATH
parameters:
- '$.[?(@.id==''{#SENSOR_ID}'')].state.text.first()'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1d
master_item:
key: ipmi.get
tags:
-
tag: component
value: environment
-
tag: sensor
value: '{#SENSOR_TYPE}'
trigger_prototypes:
-
uuid: efe107571d704895bbb43c95407e6689
expression: 'last(/Chassis by IPMI/ipmi.state_text[{#SENSOR_ID}],#1)<>last(/Chassis by IPMI/ipmi.state_text[{#SENSOR_ID}],#2)'
name: 'IPMI: {#SENSOR_ID} value has changed'
priority: INFO
description: 'The trigger is informing about changes in a state of the discrete IPMI sensor. A problem generated by this trigger can be manually closed.'
manual_close: 'YES'
tags:
-
tag: scope
value: availability
master_item:
key: ipmi.get
lld_macro_paths:
-
lld_macro: '{#SENSOR_ID}'
path: $.id
-
lld_macro: '{#SENSOR_READING_TYPE}'
path: $.reading.text
-
lld_macro: '{#SENSOR_TYPE}'
path: $.sensor.text
-
lld_macro: '{#SENSOR_UNIT}'
path: $.units
-
uuid: bd5ceb5412d3462d90fa857b2d214788
name: 'Threshold sensors discovery'
type: DEPENDENT
key: ipmi.sensors.discovery
delay: '0'
filter:
evaltype: AND
conditions:
-
macro: '{#SENSOR_READING_TYPE}'
value: threshold
formulaid: A
-
macro: '{#SENSOR_TYPE}'
value: '{$IPMI.SENSOR_TYPE.MATCHES}'
formulaid: B
-
macro: '{#SENSOR_TYPE}'
value: '{$IPMI.SENSOR_TYPE.NOT_MATCHES}'
operator: NOT_MATCHES_REGEX
formulaid: C
description: 'Discovery of the threshold IPMI sensors.'
item_prototypes:
-
uuid: 77e8c8c6e2444667b5da698c802dbae0
name: 'IPMI: {#SENSOR_ID}, {#SENSOR_UNIT}'
type: DEPENDENT
key: 'ipmi.value[{#SENSOR_ID}]'
delay: '0'
history: 7d
value_type: FLOAT
description: 'It is a state of the threshold IPMI sensor.'
preprocessing:
-
type: JSONPATH
parameters:
- '$.[?(@.id==''{#SENSOR_ID}'')].value.first()'
-
type: DISCARD_UNCHANGED_HEARTBEAT
parameters:
- 1h
master_item:
key: ipmi.get
tags:
-
tag: component
value: environment
-
tag: sensor
value: '{#SENSOR_TYPE}'
trigger_prototypes:
-
uuid: e9c37c1847d64920b80a20cc764b6c81
expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)>{#SENSOR_HI_CRIT}'
name: 'IPMI: {#SENSOR_ID} value is above critical high (greater than {#SENSOR_HI_CRIT} for 5m)'
priority: HIGH
description: 'The trigger is informing that a value higher than the upper critical threshold has been reached.'
dependencies:
-
name: 'IPMI: {#SENSOR_ID} value is above non-recoverable high (greater than {#SENSOR_HI_DISAST} for 5m)'
expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)>{#SENSOR_HI_DISAST}'
tags:
-
tag: scope
value: notice
-
uuid: 0fc9d9baa3dd4d3db841e2153b6c39b2
expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)>{#SENSOR_HI_WARN}'
name: 'IPMI: {#SENSOR_ID} value is above non-critical high (greater than {#SENSOR_HI_WARN} for 5m)'
priority: WARNING
description: 'The trigger is informing that a value higher than the upper non-critical threshold has been reached.'
dependencies:
-
name: 'IPMI: {#SENSOR_ID} value is above critical high (greater than {#SENSOR_HI_CRIT} for 5m)'
expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)>{#SENSOR_HI_CRIT}'
-
name: 'IPMI: {#SENSOR_ID} value is above non-recoverable high (greater than {#SENSOR_HI_DISAST} for 5m)'
expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)>{#SENSOR_HI_DISAST}'
tags:
-
tag: scope
value: notice
-
uuid: 2c3dbc3f68db44f1924682a8241e0086
expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)>{#SENSOR_HI_DISAST}'
name: 'IPMI: {#SENSOR_ID} value is above non-recoverable high (greater than {#SENSOR_HI_DISAST} for 5m)'
priority: DISASTER
description: 'The trigger is informing that a value higher than the upper non-recoverable threshold has been reached.'
tags:
-
tag: scope
value: notice
-
uuid: adbb7e20a46d42329e4744548aa9d5f6
expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)<{#SENSOR_LO_CRIT}'
name: 'IPMI: {#SENSOR_ID} value is below critical low (less than {#SENSOR_LO_CRIT} for 5m)'
priority: HIGH
description: 'The trigger is informing that a value less than the lower critical threshold has been reached.'
dependencies:
-
name: 'IPMI: {#SENSOR_ID} value is below non-recoverable low (less than {#SENSOR_LO_DISAST} for 5m)'
expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)<{#SENSOR_LO_DISAST}'
tags:
-
tag: scope
value: notice
-
uuid: 7b712e7b11a34635948517467f77ad9d
expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)<{#SENSOR_LO_WARN}'
name: 'IPMI: {#SENSOR_ID} value is below non-critical low (less than {#SENSOR_LO_WARN} for 5m)'
priority: WARNING
description: 'The trigger is informing that a value less than the lower non-critical threshold has been reached.'
dependencies:
-
name: 'IPMI: {#SENSOR_ID} value is below critical low (less than {#SENSOR_LO_CRIT} for 5m)'
expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)<{#SENSOR_LO_CRIT}'
-
name: 'IPMI: {#SENSOR_ID} value is below non-recoverable low (less than {#SENSOR_LO_DISAST} for 5m)'
expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)<{#SENSOR_LO_DISAST}'
tags:
-
tag: scope
value: notice
-
uuid: b078ee6b820f44f2871c2e3fcd0ce4cf
expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)<{#SENSOR_LO_DISAST}'
name: 'IPMI: {#SENSOR_ID} value is below non-recoverable low (less than {#SENSOR_LO_DISAST} for 5m)'
priority: DISASTER
description: 'The trigger is informing that a value less than the lower non-recoverable threshold has been reached.'
tags:
-
tag: scope
value: notice
graph_prototypes:
-
uuid: 85099badf8d547d89f498cf29bcd51a8
name: 'IPMI: {#SENSOR_ID}'
graph_items:
-
color: 1A7C11
item:
host: 'Chassis by IPMI'
key: 'ipmi.value[{#SENSOR_ID}]'
master_item:
key: ipmi.get
lld_macro_paths:
-
lld_macro: '{#SENSOR_HI_CRIT}'
path: $.threshold.upper.crit
-
lld_macro: '{#SENSOR_HI_DISAST}'
path: $.threshold.upper.non_recover
-
lld_macro: '{#SENSOR_HI_WARN}'
path: $.threshold.upper.non_crit
-
lld_macro: '{#SENSOR_ID}'
path: $.id
-
lld_macro: '{#SENSOR_LO_CRIT}'
path: $.threshold.lower.crit
-
lld_macro: '{#SENSOR_LO_DISAST}'
path: $.threshold.lower.non_recover
-
lld_macro: '{#SENSOR_LO_WARN}'
path: $.threshold.lower.non_crit
-
lld_macro: '{#SENSOR_READING_TYPE}'
path: $.reading.text
-
lld_macro: '{#SENSOR_TYPE}'
path: $.sensor.text
-
lld_macro: '{#SENSOR_UNIT}'
path: $.units
overrides:
-
name: 'trigger SENSOR_HI_CRIT'
step: '5'
operations:
-
operationobject: TRIGGER_PROTOTYPE
operator: LIKE
value: '{#SENSOR_HI_CRIT}'
status: ENABLED
discover: NO_DISCOVER
-
name: 'trigger SENSOR_HI_DISAST'
step: '6'
operations:
-
operationobject: TRIGGER_PROTOTYPE
operator: LIKE
value: '{#SENSOR_HI_DISAST}'
status: ENABLED
discover: NO_DISCOVER
-
name: 'trigger SENSOR_HI_WARN'
step: '4'
operations:
-
operationobject: TRIGGER_PROTOTYPE
operator: LIKE
value: '{#SENSOR_HI_WARN}'
status: ENABLED
discover: NO_DISCOVER
-
name: 'trigger SENSOR_LO_CRIT'
step: '2'
operations:
-
operationobject: TRIGGER_PROTOTYPE
operator: LIKE
value: '{#SENSOR_LO_CRIT}'
status: ENABLED
discover: NO_DISCOVER
-
name: 'trigger SENSOR_LO_DISAST'
step: '3'
operations:
-
operationobject: TRIGGER_PROTOTYPE
operator: LIKE
value: '{#SENSOR_LO_DISAST}'
status: ENABLED
discover: NO_DISCOVER
-
name: 'trigger SENSOR_LO_WARN'
step: '1'
operations:
-
operationobject: TRIGGER_PROTOTYPE
operator: LIKE
value: '{#SENSOR_LO_WARN}'
status: ENABLED
discover: NO_DISCOVER
tags:
-
tag: class
value: hardware
-
tag: target
value: server
macros:
-
macro: '{$IPMI.PASSWORD}'
description: 'This macro is used for access to BMC. It can be overridden on the host or linked template level.'
-
macro: '{$IPMI.SENSOR_TYPE.MATCHES}'
value: '.*'
description: 'This macro is used in sensors discovery. It can be overridden on the host or linked template level.'
-
macro: '{$IPMI.SENSOR_TYPE.NOT_MATCHES}'
value: invalid
description: 'This macro is used in sensors discovery. It can be overridden on the host or linked template level.'
-
macro: '{$IPMI.USER}'
description: 'This macro is used for access to BMC. It can be overridden on the host or linked template level.'
|