Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/server/dell/dell_r820_http
This is a template for monitoring DELL PowerEdge R820 servers with iDRAC 8/9 firmware 4.32 and later with Redfish API enabled via Zabbix HTTP agent that works without any external scripts.
Zabbix version: 7.2 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
1. Enable Redfish API in Dell iDRAC interface of your server.
2. Create a user for monitoring with read-only permissions in Dell iDRAC interface.
3. Create a host for Dell server with iDRAC IP as Zabbix agent interface.
4. Link the template to the host.
5. Customize values of {$API.URL}, {$API.USER}, {$API.PASSWORD} macros.
Name | Description | Default |
---|---|---|
{$API.URL} | The Dell iDRAC Redfish API URL in the format |
<Put your URL here> |
{$API.USER} | The Dell iDRAC username. |
<Put your username here> |
{$API.PASSWORD} | The Dell iDRAC user password. |
<Put your password here> |
{$IFCONTROL} | Link status trigger will be fired only for interfaces that have the context macro equaled 1. |
1 |
Name | Description | Type | Key and additional info |
---|---|---|---|
Get system | Returns the metrics of a system. |
HTTP agent | dell.server.system.get Preprocessing
|
Overall system health status | This attribute defines the overall rollup status of all components in the system being monitored by the remote access card. Includes system, storage, IO devices, iDRAC, CPU, memory, etc. |
Dependent item | dell.server.status Preprocessing
|
Hardware model name | This attribute defines the model name of the system. |
Dependent item | dell.server.hw.model Preprocessing
|
Hardware serial number | This attribute defines the service tag of the system. |
Dependent item | dell.server.hw.serialnumber Preprocessing
|
Firmware version | This attribute defines the firmware version of a remote access card. |
Dependent item | dell.server.hw.firmware Preprocessing
|
Redfish API | The availability of Redfish API on the server. Possible values: 0 unavailable 1 available |
Simple check | net.tcp.service[https] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Server is in a critical state | Please check the device for faults. |
find(/DELL PowerEdge R820 by HTTP/dell.server.status,,"like","Critical")=1 |
High | |
Server is in warning state | Please check the device for warnings. |
find(/DELL PowerEdge R820 by HTTP/dell.server.status,,"like","Warning")=1 |
Warning | Depends on:
|
Device has been replaced | Device serial number has changed. Acknowledge to close the problem manually. |
last(/DELL PowerEdge R820 by HTTP/dell.server.hw.serialnumber,#1)<>last(/DELL PowerEdge R820 by HTTP/dell.server.hw.serialnumber,#2) and length(last(/DELL PowerEdge R820 by HTTP/dell.server.hw.serialnumber))>0 |
Info | Manual close: Yes |
Firmware has changed | Firmware version has changed. Acknowledge to close the problem manually. |
last(/DELL PowerEdge R820 by HTTP/dell.server.hw.firmware,#1)<>last(/DELL PowerEdge R820 by HTTP/dell.server.hw.firmware,#2) and length(last(/DELL PowerEdge R820 by HTTP/dell.server.hw.firmware))>0 |
Info | Manual close: Yes |
Redfish API service is unavailable | The service is unavailable or does not accept TCP connections. |
last(/DELL PowerEdge R820 by HTTP/net.tcp.service[https])=0 |
High |
Name | Description | Type | Key and additional info |
---|---|---|---|
Temperature discovery | Discovery of temperature sensors. |
HTTP agent | temp.discovery Preprocessing
|
Name | Description | Type | Key and additional info |
---|---|---|---|
{#SENSOR_NAME} Get sensor | Returns the metrics of a sensor. |
HTTP agent | dell.server.sensor.temp.get[{#SENSOR_NAME}] |
{#SENSOR_NAME} Value | The sensor value. |
Dependent item | dell.server.sensor.temp.value[{#SENSOR_NAME}] Preprocessing
|
{#SENSOR_NAME} Status | The status of the job. Possible values: OK, Warning, Critical. |
Dependent item | dell.server.sensor.temp.status[{#SENSOR_NAME}] Preprocessing
|
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#SENSOR_NAME} is in a critical state | Please check the device for faults. |
find(/DELL PowerEdge R820 by HTTP/dell.server.sensor.temp.status[{#SENSOR_NAME}],,"like","Critical")=1 |
High | |
{#SENSOR_NAME} is in warning state | Please check the device for warnings. |
find(/DELL PowerEdge R820 by HTTP/dell.server.sensor.temp.status[{#SENSOR_NAME}],,"like","Warning")=1 |
Warning | Depends on:
|
Name | Description | Type | Key and additional info |
---|---|---|---|
PSU discovery | Discovery of PSU sensors. |
HTTP agent | psu.discovery Preprocessing
|
Name | Description | Type | Key and additional info |
---|---|---|---|
{#SENSOR_NAME} Get sensor | Returns the metrics of a sensor. |
HTTP agent | dell.server.sensor.psu.get[{#SENSOR_NAME}] |
{#SENSOR_NAME} Status | The status of the job. Possible values: OK, Warning, Critical. |
Dependent item | dell.server.sensor.psu.status[{#SENSOR_NAME}] Preprocessing
|
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#SENSOR_NAME} is in a critical state | Please check the device for faults. |
find(/DELL PowerEdge R820 by HTTP/dell.server.sensor.psu.status[{#SENSOR_NAME}],,"like","Critical")=1 |
High | |
{#SENSOR_NAME} is in warning state | Please check the device for warnings. |
find(/DELL PowerEdge R820 by HTTP/dell.server.sensor.psu.status[{#SENSOR_NAME}],,"like","Warning")=1 |
Warning | Depends on:
|
Name | Description | Type | Key and additional info |
---|---|---|---|
FAN discovery | Discovery of FAN sensors. |
HTTP agent | fan.discovery Preprocessing
|
Name | Description | Type | Key and additional info |
---|---|---|---|
{#SENSOR_NAME} Get sensor | Returns the metrics of a sensor. |
HTTP agent | dell.server.sensor.fan.get[{#SENSOR_NAME}] |
{#SENSOR_NAME} Speed | The sensor value. |
Dependent item | dell.server.sensor.fan.speed[{#SENSOR_NAME}] Preprocessing
|
{#SENSOR_NAME} Status | The status of the job. Possible values: OK, Warning, Critical. |
Dependent item | dell.server.sensor.fan.status[{#SENSOR_NAME}] Preprocessing
|
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#SENSOR_NAME} is in a critical state | Please check the device for faults. |
find(/DELL PowerEdge R820 by HTTP/dell.server.sensor.fan.status[{#SENSOR_NAME}],,"like","Critical")=1 |
High | |
{#SENSOR_NAME} is in warning state | Please check the device for warnings. |
find(/DELL PowerEdge R820 by HTTP/dell.server.sensor.fan.status[{#SENSOR_NAME}],,"like","Warning")=1 |
Warning | Depends on:
|
Name | Description | Type | Key and additional info |
---|---|---|---|
Array controller discovery | Discovery of disk array controllers. |
HTTP agent | array.discovery Preprocessing
|
Name | Description | Type | Key and additional info |
---|---|---|---|
{#CNTLR_NAME} in slot {#SLOT} Status | The status of the job. Possible values: OK, Warning, Critical. |
HTTP agent | dell.server.hw.diskarray.status[{#CNTLR_NAME}{#SLOT}] Preprocessing
|
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#CNTLR_NAME} in slot {#SLOT} is in a critical state | Please check the device for faults. |
find(/DELL PowerEdge R820 by HTTP/dell.server.hw.diskarray.status[{#CNTLR_NAME}{#SLOT}],,"like","Critical")=1 |
High | |
{#CNTLR_NAME} in slot {#SLOT} is in warning state | Please check the device for warnings. |
find(/DELL PowerEdge R820 by HTTP/dell.server.hw.diskarray.status[{#CNTLR_NAME}{#SLOT}],,"like","Warning")=1 |
Warning | Depends on:
|
Name | Description | Type | Key and additional info |
---|---|---|---|
Array controller cache discovery | Discovery of a cache of disk array controllers. |
HTTP agent | array.cache.discovery Preprocessing
|
Name | Description | Type | Key and additional info |
---|---|---|---|
{#BATTERY_NAME} Status | The status of the job. Possible values: OK, Warning, Critical. |
HTTP agent | dell.server.hw.diskarray.cache.battery.status[{#BATTERY_NAME}] Preprocessing
|
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#BATTERY_NAME} is in a critical state | Please check the device for faults. |
find(/DELL PowerEdge R820 by HTTP/dell.server.hw.diskarray.cache.battery.status[{#BATTERY_NAME}],,"like","Critical")=1 |
High | |
{#BATTERY_NAME} is in warning state | Please check the device for warnings. |
find(/DELL PowerEdge R820 by HTTP/dell.server.hw.diskarray.cache.battery.status[{#BATTERY_NAME}],,"like","Warning")=1 |
Warning | Depends on:
|
Name | Description | Type | Key and additional info |
---|---|---|---|
Physical disk discovery | Discovery of physical disks. |
HTTP agent | physicaldisk.discovery Preprocessing
|
Name | Description | Type | Key and additional info |
---|---|---|---|
{#DISK_NAME} Get disk | Returns the metrics of a physical disk. |
HTTP agent | dell.server.hw.physicaldisk.get[{#DISK_NAME}] |
{#DISK_NAME} Status | The status of the job. Possible values: OK, Warning, Critical. |
Dependent item | dell.server.hw.physicaldisk.status[{#DISK_NAME}] Preprocessing
|
{#DISK_NAME} Serial number | The serial number of this drive. |
Dependent item | dell.server.hw.physicaldisk.serialnumber[{#DISK_NAME}] Preprocessing
|
{#DISK_NAME} Model name | The model number of the drive. |
Dependent item | dell.server.hw.physicaldisk.model[{#DISK_NAME}] Preprocessing
|
{#DISK_NAME} Media type | The type of media contained in this drive. Possible values: HDD, SSD, SMR, null. |
Dependent item | dell.server.hw.physicaldisk.media_type[{#DISK_NAME}] Preprocessing
|
{#DISK_NAME} Size | The size, in bytes, of this drive. |
Dependent item | dell.server.hw.physicaldisk.size[{#DISK_NAME}] Preprocessing
|
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#DISK_NAME} is in a critical state | Please check the device for faults. |
find(/DELL PowerEdge R820 by HTTP/dell.server.hw.physicaldisk.status[{#DISK_NAME}],,"like","Critical")=1 |
High | |
{#DISK_NAME} is in warning state | Please check the device for warnings. |
find(/DELL PowerEdge R820 by HTTP/dell.server.hw.physicaldisk.status[{#DISK_NAME}],,"like","Warning")=1 |
Warning | Depends on:
|
{#DISK_NAME} has been replaced | {#DISK_NAME} serial number has changed. Acknowledge to close the problem manually. |
last(/DELL PowerEdge R820 by HTTP/dell.server.hw.physicaldisk.serialnumber[{#DISK_NAME}],#1)<>last(/DELL PowerEdge R820 by HTTP/dell.server.hw.physicaldisk.serialnumber[{#DISK_NAME}],#2) and length(last(/DELL PowerEdge R820 by HTTP/dell.server.hw.physicaldisk.serialnumber[{#DISK_NAME}]))>0 |
Info | Manual close: Yes |
Name | Description | Type | Key and additional info |
---|---|---|---|
Virtual disk discovery | Discovery of virtual disks. |
HTTP agent | virtualdisk.discovery Preprocessing
|
Name | Description | Type | Key and additional info |
---|---|---|---|
{#DISK_NAME} Get disk | Returns the metrics of a virtual disk. |
HTTP agent | dell.server.hw.virtualdisk.get[{#DISK_NAME}] |
{#DISK_NAME} Status | The status of the job. Possible values: OK, Warning, Critical. |
Dependent item | dell.server.hw.virtualdisk.status[{#DISK_NAME}] Preprocessing
|
{#DISK_NAME} RAID status | This property represents the RAID specific status. Possible values: Blocked, Degraded, Failed, Foreign, Offline, Online, Ready, Unknown, null. |
Dependent item | dell.server.hw.virtualdisk.raidstatus[{#DISK_NAME}] Preprocessing
|
{#DISK_NAME} Size | The size in bytes of this Volume. |
Dependent item | dell.server.hw.virtualdisk.size[{#DISK_NAME}] Preprocessing
|
{#DISK_NAME} Current state | The known state of the Resource, for example, enabled. Possible values: Enabled, Disabled, StandbyOffline, StandbySpare, InTest, Starting, Absent, UnavailableOffline, Deferring, Quiesced, Updating, Qualified. |
Dependent item | dell.server.hw.virtualdisk.state[{#DISK_NAME}] Preprocessing
|
{#DISK_NAME} Read policy | Indicates the read cache policy setting for the Volume. Possible values: ReadAhead, AdaptiveReadAhead, Off. |
Dependent item | dell.server.hw.virtualdisk.readpolicy[{#DISK_NAME}] Preprocessing
|
{#DISK_NAME} Write policy | Indicates the write cache policy setting for the Volume. Possible values: WriteThrough, ProtectedWriteBack, UnprotectedWriteBack. |
Dependent item | dell.server.hw.virtualdisk.writepolicy[{#DISK_NAME}] Preprocessing
|
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#DISK_NAME} is in a critical state | Please check the device for faults. |
find(/DELL PowerEdge R820 by HTTP/dell.server.hw.virtualdisk.status[{#DISK_NAME}],,"like","Critical")=1 |
High | |
{#DISK_NAME} is in warning state | Please check the device for warnings. |
find(/DELL PowerEdge R820 by HTTP/dell.server.hw.virtualdisk.status[{#DISK_NAME}],,"like","Warning")=1 |
Warning | Depends on:
|
Name | Description | Type | Key and additional info |
---|---|---|---|
Network interface discovery | The NetworkInterface schema describes links to the NetworkAdapter and represents the functionality available to the containing system. |
HTTP agent | net.if.discovery Preprocessing
|
Name | Description | Type | Key and additional info |
---|---|---|---|
{#IFNAME} Get interface | Returns the metrics of a network interface. |
HTTP agent | dell.server.net.if.get[{#IFNAME}] |
{#IFNAME} Speed | Network port current link speed. |
Dependent item | dell.server.net.if.speed[{#IFNAME}] Preprocessing
|
{#IFNAME} Link status | The status of the link between this port and its link partner. Possible values: Down, Up, null. |
Dependent item | dell.server.net.if.status[{#IFNAME}] Preprocessing
|
{#IFNAME} State | The known state of the Resource, for example, enabled. Possible values: Enabled, Disabled, StandbyOffline, StandbySpare, InTest, Starting, Absent, UnavailableOffline, Deferring, Quiesced, Updating, Qualified. |
Dependent item | dell.server.net.if.state[{#IFNAME}] Preprocessing
|
{#IFNAME} Status | The status of the job. Possible values: OK, Warning, Critical. |
Dependent item | dell.server.net.if.health[{#IFNAME}] Preprocessing
|
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#IFNAME} Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and (find(/DELL PowerEdge R820 by HTTP/dell.server.net.if.status[{#IFNAME}],,"like")="Down" and last(/DELL PowerEdge R820 by HTTP/dell.server.net.if.status[{#IFNAME}],#1)<>last(/DELL PowerEdge R820 by HTTP/dell.server.net.if.status[{#IFNAME}],#2)) |
Average | Manual close: Yes |
{#IFNAME} is in a critical state | Please check the device for faults. |
find(/DELL PowerEdge R820 by HTTP/dell.server.net.if.health[{#IFNAME}],,"like","Critical")=1 |
High | |
{#IFNAME} is in warning state | Please check the device for warnings. |
find(/DELL PowerEdge R820 by HTTP/dell.server.net.if.health[{#IFNAME}],,"like","Warning")=1 |
Warning | Depends on:
|
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums