Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/server/dell/dell_r820_http

DELL PowerEdge R820 by HTTP

Overview

For Zabbix version: 6.2 and higher
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.

Setup

See Zabbix template operation for basic instructions.

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.

Zabbix configuration

No specific Zabbix configuration is required.

Macros used

Name Description Default
{$API.PASSWORD}

The Dell iDRAC user password.

<Put your password here>
{$API.URL}

The Dell iDRAC Redfish API URL in the format <scheme>://<host>:<port>.

<Put your URL here>
{$API.USER}

The Dell iDRAC username.

<Put your username here>
{$IFCONTROL}

Link status trigger will be fired only for interfaces that have the context macro equaled 1.

1

Template links

There are no template links in this template.

Discovery rules

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:

- JAVASCRIPT: The text is too long. Please see the template.

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Array controller discovery

Discovery of disk array controllers.

HTTP_AGENT array.discovery

Preprocessing:

- JAVASCRIPT: The text is too long. Please see the template.

- DISCARD_UNCHANGED_HEARTBEAT: 6h

FAN discovery

Discovery of FAN sensors.

HTTP_AGENT fan.discovery

Preprocessing:

- JAVASCRIPT: The text is too long. Please see the template.

- DISCARD_UNCHANGED_HEARTBEAT: 6h

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:

- JAVASCRIPT: The text is too long. Please see the template.

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Physical disk discovery

Discovery of physical disks.

HTTP_AGENT physicaldisk.discovery

Preprocessing:

- JAVASCRIPT: The text is too long. Please see the template.

- DISCARD_UNCHANGED_HEARTBEAT: 6h

PSU discovery

Discovery of PSU sensors.

HTTP_AGENT psu.discovery

Preprocessing:

- JAVASCRIPT: The text is too long. Please see the template.

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Temperature discovery

Discovery of temperature sensors.

HTTP_AGENT temp.discovery

Preprocessing:

- JAVASCRIPT: The text is too long. Please see the template.

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Virtual disk discovery

Discovery of virtual disks.

HTTP_AGENT virtualdisk.discovery

Preprocessing:

- JAVASCRIPT: The text is too long. Please see the template.

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Items collected

Group Name Description Type Key and additional info
Fans Dell R820: {#SENSOR_NAME} Speed

The sensor value.

DEPENDENT dell.server.sensor.fan.speed[{#SENSOR_NAME}]

Preprocessing:

- JSONPATH: $.Reading

Fans Dell R820: {#SENSOR_NAME} Status

The status of the job. Possible values: OK, Warning, Critical.

DEPENDENT dell.server.sensor.fan.status[{#SENSOR_NAME}]

Preprocessing:

- JSONPATH: $.Status.Health

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Inventory Dell R820: Hardware model name

This attribute defines the model name of the system.

DEPENDENT dell.server.hw.model

Preprocessing:

- JSONPATH: $.model

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Inventory Dell R820: Hardware serial number

This attribute defines the service tag of the system.

DEPENDENT dell.server.hw.serialnumber

Preprocessing:

- JSONPATH: $.serialnumber

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Inventory Dell R820: Firmware version

This attribute defines the firmware version of a remote access card.

DEPENDENT dell.server.hw.firmware

Preprocessing:

- JSONPATH: $.firmware

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Network interfaces Dell R820: {#IFNAME} Speed

Network port current link speed.

DEPENDENT dell.server.net.if.speed[{#IFNAME}]

Preprocessing:

- JSONPATH: $.CurrentLinkSpeedMbps

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Network interfaces Dell R820: {#IFNAME} Link status

The status of the link between this port and its link partner. Possible values: Down, Up, null.

DEPENDENT dell.server.net.if.status[{#IFNAME}]

Preprocessing:

- JSONPATH: $.LinkStatus

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Network interfaces Dell R820: {#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 dell.server.net.if.state[{#IFNAME}]

Preprocessing:

- JSONPATH: $.Status.State

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Network interfaces Dell R820: {#IFNAME} Status

The status of the job. Possible values: OK, Warning, Critical.

DEPENDENT dell.server.net.if.health[{#IFNAME}]

Preprocessing:

- JSONPATH: $.Status.Health

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Physical disks Dell R820: {#DISK_NAME} Status

The status of the job. Possible values: OK, Warning, Critical.

DEPENDENT dell.server.hw.physicaldisk.status[{#DISK_NAME}]

Preprocessing:

- JSONPATH: $.Status.Health

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Physical disks Dell R820: {#DISK_NAME} Serial number

The serial number of this drive.

DEPENDENT dell.server.hw.physicaldisk.serialnumber[{#DISK_NAME}]

Preprocessing:

- JSONPATH: $.SerialNumber

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Physical disks Dell R820: {#DISK_NAME} Model name

The model number of the drive.

DEPENDENT dell.server.hw.physicaldisk.model[{#DISK_NAME}]

Preprocessing:

- JSONPATH: $.Model

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Physical disks Dell R820: {#DISK_NAME} Media type

The type of media contained in this drive. Possible values: HDD, SSD, SMR, null.

DEPENDENT dell.server.hw.physicaldisk.media_type[{#DISK_NAME}]

Preprocessing:

- JSONPATH: $.MediaType

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Physical disks Dell R820: {#DISK_NAME} Size

The size, in bytes, of this drive.

DEPENDENT dell.server.hw.physicaldisk.size[{#DISK_NAME}]

Preprocessing:

- JSONPATH: $.CapacityBytes

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Power supply Dell R820: {#SENSOR_NAME} Status

The status of the job. Possible values: OK, Warning, Critical.

DEPENDENT dell.server.sensor.psu.status[{#SENSOR_NAME}]

Preprocessing:

- JSONPATH: $.Status.Health

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Status Dell R820: 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 dell.server.status

Preprocessing:

- JSONPATH: $.status

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Status Dell R820: Redfish API

The availability of Redfish API on the server.

Possible values:

0 unavailable

1 available

SIMPLE net.tcp.service[https]
Temperature Dell R820: {#SENSOR_NAME} Value

The sensor value.

DEPENDENT dell.server.sensor.temp.value[{#SENSOR_NAME}]

Preprocessing:

- JSONPATH: $.Reading

Temperature Dell R820: {#SENSOR_NAME} Status

The status of the job. Possible values: OK, Warning, Critical.

DEPENDENT dell.server.sensor.temp.status[{#SENSOR_NAME}]

Preprocessing:

- JSONPATH: $.Status.Health

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Virtual disks Dell R820: {#DISK_NAME} Status

The status of the job. Possible values: OK, Warning, Critical.

DEPENDENT dell.server.hw.virtualdisk.status[{#DISK_NAME}]

Preprocessing:

- JSONPATH: $.Status.Health

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Virtual disks Dell R820: {#DISK_NAME} RAID status

This property represents the RAID specific status. Possible values: Blocked, Degraded, Failed, Foreign, Offline, Online, Ready, Unknown, null.

DEPENDENT dell.server.hw.virtualdisk.raidstatus[{#DISK_NAME}]

Preprocessing:

- JSONPATH: $.Oem.Dell.DellVirtualDisk.RaidStatus

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Virtual disks Dell R820: {#DISK_NAME} Size

The size in bytes of this Volume.

DEPENDENT dell.server.hw.virtualdisk.size[{#DISK_NAME}]

Preprocessing:

- JSONPATH: $.CapacityBytes

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Virtual disks Dell R820: {#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 dell.server.hw.virtualdisk.state[{#DISK_NAME}]

Preprocessing:

- JSONPATH: $.Status.State

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Virtual disks Dell R820: {#DISK_NAME} Read policy

Indicates the read cache policy setting for the Volume. Possible values: ReadAhead, AdaptiveReadAhead, Off.

DEPENDENT dell.server.hw.virtualdisk.readpolicy[{#DISK_NAME}]

Preprocessing:

- JSONPATH: $.Oem.Dell.DellVirtualDisk.ReadCachePolicy

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Virtual disks Dell R820: {#DISK_NAME} Write policy

Indicates the write cache policy setting for the Volume. Possible values: WriteThrough, ProtectedWriteBack, UnprotectedWriteBack.

DEPENDENT dell.server.hw.virtualdisk.writepolicy[{#DISK_NAME}]

Preprocessing:

- JSONPATH: $.Oem.Dell.DellVirtualDisk.WriteCachePolicy

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Zabbix raw items Dell R820: Get system

Returns the metrics of a system.

HTTP_AGENT dell.server.system.get

Preprocessing:

- JAVASCRIPT: The text is too long. Please see the template.

Zabbix raw items Dell R820: {#SENSOR_NAME} Get sensor

Returns the metrics of a sensor.

HTTP_AGENT dell.server.sensor.temp.get[{#SENSOR_NAME}]
Zabbix raw items Dell R820: {#SENSOR_NAME} Get sensor

Returns the metrics of a sensor.

HTTP_AGENT dell.server.sensor.psu.get[{#SENSOR_NAME}]
Zabbix raw items Dell R820: {#SENSOR_NAME} Get sensor

Returns the metrics of a sensor.

HTTP_AGENT dell.server.sensor.fan.get[{#SENSOR_NAME}]
Zabbix raw items Dell R820: {#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:

- JSONPATH: $.Status.Health

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Zabbix raw items Dell R820: {#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:

- JSONPATH: $.Oem.Dell.DellControllerBattery.PrimaryStatus

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Zabbix raw items Dell R820: {#DISK_NAME} Get disk

Returns the metrics of a physical disk.

HTTP_AGENT dell.server.hw.physicaldisk.get[{#DISK_NAME}]
Zabbix raw items Dell R820: {#DISK_NAME} Get disk

Returns the metrics of a virtual disk.

HTTP_AGENT dell.server.hw.virtualdisk.get[{#DISK_NAME}]
Zabbix raw items Dell R820: {#IFNAME} Get interface

Returns the metrics of a network interface.

HTTP_AGENT dell.server.net.if.get[{#IFNAME}]

Triggers

Name Description Expression Severity Dependencies and additional info
Dell R820: {#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
Dell R820: {#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:

- Dell R820: {#SENSOR_NAME} is in a critical state

Dell R820: Device has been replaced

Device serial number has changed. Ack to close

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

Dell R820: Firmware has changed

Firmware version has changed. Ack to close.

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

Dell R820: {#IFNAME} Link down

This trigger expression works as follows:

1. Can be triggered if operations status is down.

2. {$IFCONTROL:"{#IFNAME}"}=1 - user can redefine Context macro to value - 0. That marks this interface as not important. No new trigger will be fired if this interface is down.

3. Condition of difference between last and previous value - trigger fires only if operational status was up(1) sometime before. (So, do not fire 'ethernal off' interfaces.)

WARNING: if closed manually - won't fire again on next poll, because of .diff.

{$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))

Recovery expression:

find(/DELL PowerEdge R820 by HTTP/dell.server.net.if.status[{#IFNAME}],,"like")<>"Down" or {$IFCONTROL:"{#IFNAME}"}=0
AVERAGE

Manual close: YES

Dell R820: {#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
Dell R820: {#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:

- Dell R820: {#IFNAME} is in a critical state

Dell R820: {#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
Dell R820: {#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:

- Dell R820: {#DISK_NAME} is in a critical state

Dell R820: {#DISK_NAME} has been replaced

{#DISK_NAME} serial number has changed. Ack to close

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

Dell R820: {#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
Dell R820: {#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:

- Dell R820: {#SENSOR_NAME} is in a critical state

Dell R820: 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
Dell R820: 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:

- Dell R820: Server is in a critical state

Dell R820: 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
Dell R820: {#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
Dell R820: {#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:

- Dell R820: {#SENSOR_NAME} is in a critical state

Dell R820: {#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
Dell R820: {#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:

- Dell R820: {#DISK_NAME} is in a critical state

Dell R820: {#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
Dell R820: {#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:

- Dell R820: {#CNTLR_NAME} in slot {#SLOT} is in a critical state

Dell R820: {#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
Dell R820: {#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:

- Dell R820: {#BATTERY_NAME} is in a critical state

Feedback

Please report any issues with the template at https://support.zabbix.com

You can also provide feedback, discuss the template or ask for help with it at ZABBIX forums.

Articles and documentation

+ Propose new article

Sie können die Integration nicht finden, die Sie benötigen?