Hi,
I am hoping to get some extra brains in this project. I am trying to monitor the Dell PowerVault ME4024 with a JSON file, using LLD with a dependent item. At the moment, Dell does not provide or has a working MIB to use SNMP to monitor this device with Zabbix.
I have created an Python script to generate a JSON file, with the selected API basetype properties. An extract of the Python script is shown below.
After successfully creating the JSON file, which contains several JSON arrays. Each JSON array contains several JSON Objects. An example JSON file is shown below.
At this moment, I am able to create items (JSON array: system) configured with an Master Item. But I failed to created a Discovery Rule for the JSON array: controllers. I have researched different options and methods, but all failed. Currently, I got one Discovery Rule configured:


Links consulted:
- https://blog.zabbix.com/low-level-di...t-items/13634/
- https://www.zabbix.com/forum/zabbix-...m-prototype
How can I make this happen? Only one working configuration is needed, to be an example for others.
I am hoping to get some extra brains in this project. I am trying to monitor the Dell PowerVault ME4024 with a JSON file, using LLD with a dependent item. At the moment, Dell does not provide or has a working MIB to use SNMP to monitor this device with Zabbix.
I have created an Python script to generate a JSON file, with the selected API basetype properties. An extract of the Python script is shown below.
Code:
!/usr/bin/env python3
...
commands = (
"controllers",
# "controller-statistics",
# "disks",
# "fans",
# "frus",
# "pools",
# "ports",
# "power-supplies",
# "sensor-status",
"system",
# "volumes",
# "volume-statistics",
)
...
def main(argv=None):
...
data_list = {"data":[],"lld":[
{"{#CNTLRS}": "controllers"}
]}
for element in commands:
r = s.get(url + "/api/show/" + element)
parsed = json.loads(r.content)
data_list["data"].append(parsed)
print(json.dumps(data_list, indent=4))
if __name__ == "__main__":
sys.exit(main())
Code:
{
"data": [
{
"controllers": [
{
"object-name": "controllers",
"meta": "/meta/controllers",
"durable-id": "controller_a",
"controller-id": "A",
"controller-id-numeric": 1,
"serial-number": "xxx",
"hardware-version": "9.1",
"cpld-version": "3.9",
"mac-address": "xxx",
"node-wwn": "xxx",
"ip-address": "xxx",
"ip-subnet-mask": "255.255.254.0",
"ip-gateway": "xxx",
"ip6-link-local-address": "xxx",
"ip6-link-local-gateway": "::",
"ip6-auto-address": "::/0",
"ip6-auto-address-source": "DHCPv6",
"ip6-auto-address-source-numeric": 0,
"ip6-auto-gateway": "",
"ip61-address": "::/0",
"ip61-gateway": "::",
"ip62-address": "::/0",
"ip62-gateway": "::",
"ip63-address": "::/0",
"ip63-gateway": "::",
"ip64-address": "::/0",
"ip64-gateway": "::",
"disks": 12,
"number-of-storage-pools": 0,
"virtual-disks": 1,
"cache-memory-size": 4096,
"system-memory-size": 8192,
"host-ports": 4,
"drive-channels": 2,
"drive-bus-type": "SAS",
"drive-bus-type-numeric": 8,
"status": "Operational",
"status-numeric": 0,
"failed-over": "No",
"failed-over-numeric": 0,
"fail-over-reason": "Not applicable",
"fail-over-reason-numeric": 0,
"sc-fw": "GTS280R10-29",
"vendor": "DELL EMC",
"model": "ME4024",
"platform-type": "Gallium3 LX",
"platform-type-numeric": 6,
"multicore": "Enabled",
"multicore-numeric": 1,
"sc-cpu-type": "Broadwell",
"sc-cpu-speed": 2200,
"internal-serial-number": "00C0FF658C19",
"cache-lock": "Yes",
"cache-lock-numeric": 1,
"write-policy": "write-back",
"write-policy-numeric": 0,
"description": "ASSY,ENCL,CTL,SAS,ME40XXS,12G",
"part-number": "FXGPW",
"revision": "A01",
"dash-level": "",
"fru-shortname": "",
"mfg-date": "2021-12-17 23:16:00",
"mfg-date-numeric": 1639782960,
"mfg-location": "",
"mfg-vendor-id": "",
"locator-led": "Off",
"locator-led-numeric": 0,
"ssd-alt-path-io-count": 3,
"health": "OK",
"health-numeric": 0,
"health-reason": "",
"health-recommendation": "",
"position": "Top",
"position-numeric": 2,
"rotation": "0 Degrees",
"rotation-numeric": 0,
"phy-isolation": "Enabled",
"phy-isolation-numeric": 0,
"redundancy-mode": "Active-Active ULP",
"redundancy-mode-numeric": 8,
"redundancy-status": "Redundant",
"redundancy-status-numeric": 2,
"network-parameters": [
{
"object-name": "controller-a",
"meta": "/meta/network-parameters",
"durable-id": "mgmtport_a",
"active-version": 4,
"ip-address": "xxx",
"gateway": "xxx",
"subnet-mask": "255.255.254.0",
"mac-address": "xxx",
"addressing-mode": "DHCP",
"addressing-mode-numeric": 2,
"link-speed": "1000mbps",
"link-speed-numeric": 2,
"duplex-mode": "full",
"duplex-mode-numeric": 0,
"auto-negotiation": "Enabled",
"auto-negotiation-numeric": 1,
"health": "OK",
"health-numeric": 0,
"health-reason": "",
"health-recommendation": "",
"ping-broadcast": "Enabled",
"ping-broadcast-numeric": 1
}
],
"port": [
{
"object-name": "ports",
"meta": "/meta/port",
"durable-id": "hostport_A0",
"controller": "A",
"controller-numeric": 1,
"port": "A0",
"port-type": "SAS",
"port-type-numeric": 8,
"media": "SAS",
"target-id": "500c0fff24ef4000",
"status": "Up",
"status-numeric": 0,
"actual-speed": "12Gb",
"actual-speed-numeric": 11,
"configured-speed": "",
"configured-speed-numeric": 255,
"fan-out": 1,
"health": "OK",
"health-numeric": 0,
"health-reason": "",
"health-recommendation": "",
"sas-port": [
{
"object-name": "port-details",
"meta": "/meta/sas-port",
"configured-topology": "Direct",
"configured-topology-numeric": 0,
"width": 4,
"sas-lanes-expected": 4,
"sas-active-lanes": 4,
"sas-disabled-lanes": 0
}
]
},
{
"object-name": "ports",
"meta": "/meta/port",
"durable-id": "hostport_A1",
"controller": "A",
"controller-numeric": 1,
"port": "A1",
"port-type": "SAS",
"port-type-numeric": 8,
"media": "SAS",
"target-id": "500c0fff24ef4100",
"status": "Up",
"status-numeric": 0,
"actual-speed": "12Gb",
"actual-speed-numeric": 11,
"configured-speed": "",
"configured-speed-numeric": 255,
"fan-out": 1,
"health": "OK",
"health-numeric": 0,
"health-reason": "",
"health-recommendation": "",
"sas-port": [
{
"object-name": "port-details",
"meta": "/meta/sas-port",
"configured-topology": "Direct",
"configured-topology-numeric": 0,
"width": 4,
"sas-lanes-expected": 4,
"sas-active-lanes": 4,
"sas-disabled-lanes": 0
}
]
},
{
"object-name": "ports",
"meta": "/meta/port",
"durable-id": "hostport_A2",
"controller": "A",
"controller-numeric": 1,
"port": "A2",
"port-type": "SAS",
"port-type-numeric": 8,
"media": "SAS",
"target-id": "500c0fff24ef4200",
"status": "Disconnected",
"status-numeric": 6,
"actual-speed": "Auto",
"actual-speed-numeric": 3,
"configured-speed": "",
"configured-speed-numeric": 255,
"fan-out": 1,
"health": "N/A",
"health-numeric": 4,
"health-reason": "There is no active connection to this host port.",
"health-recommendation": "- If this host port is intentionally unused, no action is required. - Otherwise, use an appropriate interface cable to connect this host port to a switch or host. - If a cable is connected, check the cable and the switch or host for problems.",
"sas-port": [
{
"object-name": "port-details",
"meta": "/meta/sas-port",
"configured-topology": "Direct",
"configured-topology-numeric": 0,
"width": 4,
"sas-lanes-expected": 4,
"sas-active-lanes": 0,
"sas-disabled-lanes": 0
}
]
},
{
"object-name": "ports",
"meta": "/meta/port",
"durable-id": "hostport_A3",
"controller": "A",
"controller-numeric": 1,
"port": "A3",
"port-type": "SAS",
"port-type-numeric": 8,
"media": "SAS",
"target-id": "500c0fff24ef4300",
"status": "Disconnected",
"status-numeric": 6,
"actual-speed": "Auto",
"actual-speed-numeric": 3,
"configured-speed": "",
"configured-speed-numeric": 255,
"fan-out": 1,
"health": "N/A",
"health-numeric": 4,
"health-reason": "There is no active connection to this host port.",
"health-recommendation": "- If this host port is intentionally unused, no action is required. - Otherwise, use an appropriate interface cable to connect this host port to a switch or host. - If a cable is connected, check the cable and the switch or host for problems.",
"sas-port": [
{
"object-name": "port-details",
"meta": "/meta/sas-port",
"configured-topology": "Direct",
"configured-topology-numeric": 0,
"width": 4,
"sas-lanes-expected": 4,
"sas-active-lanes": 0,
"sas-disabled-lanes": 0
}
]
}
],
"expander-ports": [
{
"object-name": "expander-port",
"meta": "/meta/expander-ports",
"durable-id": "expport_universal_0.A0",
"enclosure-id": 0,
"controller": "A",
"controller-numeric": 1,
"sas-port-type": "Expansion Port Universal",
"sas-port-type-numeric": 5,
"sas-port-index": 0,
"name": "Expansion Port",
"status": "Disconnected",
"status-numeric": 6,
"health": "N/A",
"health-numeric": 4,
"health-reason": "No drive enclosure is connected to this expansion port. This is normal if this is the last (or only) enclosure in the cabling sequence of the system.",
"health-recommendation": "- No action is required."
}
],
"compact-flash": [
{
"object-name": "controller-a-compact-flash",
"meta": "/meta/compact-flash",
"durable-id": "Ctlr A CF",
"controller-id": "A",
"controller-id-numeric": 1,
"name": "Controller A CompactFlash",
"status": "Installed",
"status-numeric": 1,
"cache-flush": "Enabled",
"cache-flush-numeric": 1,
"health": "OK",
"health-numeric": 0,
"health-reason": "",
"health-recommendation": ""
}
],
"expanders": [
{
"object-name": "expanders",
"meta": "/meta/expanders",
"durable-id": "expander_0.A",
"enclosure-id": 0,
"drawer-id": 255,
"dom-id": 0,
"path-id": "A",
"path-id-numeric": 1,
"name": "Root Expander-A",
"location": "Enclosure 0, Iom A",
"status": "OK",
"status-numeric": 1,
"extended-status": "00000000",
"fw-revision": "52B2",
"health": "OK",
"health-numeric": 0,
"health-reason": "",
"health-recommendation": ""
}
]
},
{
"object-name": "controllers",
"meta": "/meta/controllers",
"durable-id": "controller_b",
"controller-id": "B",
"controller-id-numeric": 0,
"serial-number": "xxx",
"hardware-version": "9.1",
"cpld-version": "3.9",
"mac-address": "xxx",
"node-wwn": "500C0FFF24EF4000",
"ip-address": "xxx",
"ip-subnet-mask": "255.255.254.0",
"ip-gateway": "xxx",
"ip6-link-local-address": "xxx",
"ip6-link-local-gateway": "::",
"ip6-auto-address": "::/0",
"ip6-auto-address-source": "DHCPv6",
"ip6-auto-address-source-numeric": 0,
"ip6-auto-gateway": "",
"ip61-address": "::/0",
"ip61-gateway": "::",
"ip62-address": "::/0",
"ip62-gateway": "::",
"ip63-address": "::/0",
"ip63-gateway": "::",
"ip64-address": "::/0",
"ip64-gateway": "::",
"disks": 12,
"number-of-storage-pools": 0,
"virtual-disks": 1,
"cache-memory-size": 4096,
"system-memory-size": 8192,
"host-ports": 4,
"drive-channels": 2,
"drive-bus-type": "SAS",
"drive-bus-type-numeric": 8,
"status": "Operational",
"status-numeric": 0,
"failed-over": "No",
"failed-over-numeric": 0,
"fail-over-reason": "Not applicable",
"fail-over-reason-numeric": 0,
"sc-fw": "GTS280R10-29",
"vendor": "DELL EMC",
"model": "ME4024",
"platform-type": "Gallium3 LX",
"platform-type-numeric": 6,
"multicore": "Enabled",
"multicore-numeric": 1,
"sc-cpu-type": "Broadwell",
"sc-cpu-speed": 2200,
"internal-serial-number": "00C0FF658B84",
"cache-lock": "Yes",
"cache-lock-numeric": 1,
"write-policy": "write-back",
"write-policy-numeric": 0,
"description": "ASSY,ENCL,CTL,SAS,ME40XXS,12G",
"part-number": "FXGPW",
"revision": "A01",
"dash-level": "",
"fru-shortname": "",
"mfg-date": "2021-12-17 23:16:00",
"mfg-date-numeric": 1639782960,
"mfg-location": "",
"mfg-vendor-id": "",
"locator-led": "Off",
"locator-led-numeric": 0,
"ssd-alt-path-io-count": 3,
"health": "OK",
"health-numeric": 0,
"health-reason": "",
"health-recommendation": "",
"position": "Bottom",
"position-numeric": 3,
"rotation": "180 Degrees",
"rotation-numeric": 2,
"phy-isolation": "Enabled",
"phy-isolation-numeric": 0,
"redundancy-mode": "Active-Active ULP",
"redundancy-mode-numeric": 8,
"redundancy-status": "Redundant",
"redundancy-status-numeric": 2,
"network-parameters": [
{
"object-name": "controller-b",
"meta": "/meta/network-parameters",
"durable-id": "mgmtport_b",
"active-version": 4,
"ip-address": "xxx",
"gateway": "xxx",
"subnet-mask": "255.255.254.0",
"mac-address": "xxx",
"addressing-mode": "DHCP",
"addressing-mode-numeric": 2,
"link-speed": "1000mbps",
"link-speed-numeric": 2,
"duplex-mode": "full",
"duplex-mode-numeric": 0,
"auto-negotiation": "Enabled",
"auto-negotiation-numeric": 1,
"health": "OK",
"health-numeric": 0,
"health-reason": "",
"health-recommendation": "",
"ping-broadcast": "Enabled",
"ping-broadcast-numeric": 1
}
],
"port": [
{
"object-name": "ports",
"meta": "/meta/port",
"durable-id": "hostport_B0",
"controller": "B",
"controller-numeric": 0,
"port": "B0",
"port-type": "SAS",
"port-type-numeric": 8,
"media": "SAS",
"target-id": "500c0fff24ef4400",
"status": "Up",
"status-numeric": 0,
"actual-speed": "12Gb",
"actual-speed-numeric": 11,
"configured-speed": "",
"configured-speed-numeric": 255,
"fan-out": 1,
"health": "OK",
"health-numeric": 0,
"health-reason": "",
"health-recommendation": "",
"sas-port": [
{
"object-name": "port-details",
"meta": "/meta/sas-port",
"configured-topology": "Direct",
"configured-topology-numeric": 0,
"width": 4,
"sas-lanes-expected": 4,
"sas-active-lanes": 4,
"sas-disabled-lanes": 0
}
]
},
{
"object-name": "ports",
"meta": "/meta/port",
"durable-id": "hostport_B1",
"controller": "B",
"controller-numeric": 0,
"port": "B1",
"port-type": "SAS",
"port-type-numeric": 8,
"media": "SAS",
"target-id": "500c0fff24ef4500",
"status": "Up",
"status-numeric": 0,
"actual-speed": "12Gb",
"actual-speed-numeric": 11,
"configured-speed": "",
"configured-speed-numeric": 255,
"fan-out": 1,
"health": "OK",
"health-numeric": 0,
"health-reason": "",
"health-recommendation": "",
"sas-port": [
{
"object-name": "port-details",
"meta": "/meta/sas-port",
"configured-topology": "Direct",
"configured-topology-numeric": 0,
"width": 4,
"sas-lanes-expected": 4,
"sas-active-lanes": 4,
"sas-disabled-lanes": 0
}
]
},
{
"object-name": "ports",
"meta": "/meta/port",
"durable-id": "hostport_B2",
"controller": "B",
"controller-numeric": 0,
"port": "B2",
"port-type": "SAS",
"port-type-numeric": 8,
"media": "SAS",
"target-id": "500c0fff24ef4600",
"status": "Disconnected",
"status-numeric": 6,
"actual-speed": "Auto",
"actual-speed-numeric": 3,
"configured-speed": "",
"configured-speed-numeric": 255,
"fan-out": 1,
"health": "N/A",
"health-numeric": 4,
"health-reason": "There is no active connection to this host port.",
"health-recommendation": "- If this host port is intentionally unused, no action is required. - Otherwise, use an appropriate interface cable to connect this host port to a switch or host. - If a cable is connected, check the cable and the switch or host for problems.",
"sas-port": [
{
"object-name": "port-details",
"meta": "/meta/sas-port",
"configured-topology": "Direct",
"configured-topology-numeric": 0,
"width": 4,
"sas-lanes-expected": 4,
"sas-active-lanes": 0,
"sas-disabled-lanes": 0
}
]
},
{
"object-name": "ports",
"meta": "/meta/port",
"durable-id": "hostport_B3",
"controller": "B",
"controller-numeric": 0,
"port": "B3",
"port-type": "SAS",
"port-type-numeric": 8,
"media": "SAS",
"target-id": "500c0fff24ef4700",
"status": "Disconnected",
"status-numeric": 6,
"actual-speed": "Auto",
"actual-speed-numeric": 3,
"configured-speed": "",
"configured-speed-numeric": 255,
"fan-out": 1,
"health": "N/A",
"health-numeric": 4,
"health-reason": "There is no active connection to this host port.",
"health-recommendation": "- If this host port is intentionally unused, no action is required. - Otherwise, use an appropriate interface cable to connect this host port to a switch or host. - If a cable is connected, check the cable and the switch or host for problems.",
"sas-port": [
{
"object-name": "port-details",
"meta": "/meta/sas-port",
"configured-topology": "Direct",
"configured-topology-numeric": 0,
"width": 4,
"sas-lanes-expected": 4,
"sas-active-lanes": 0,
"sas-disabled-lanes": 0
}
]
}
],
"expander-ports": [
{
"object-name": "expander-port",
"meta": "/meta/expander-ports",
"durable-id": "expport_universal_0.B0",
"enclosure-id": 0,
"controller": "B",
"controller-numeric": 0,
"sas-port-type": "Expansion Port Universal",
"sas-port-type-numeric": 5,
"sas-port-index": 0,
"name": "Expansion Port",
"status": "Disconnected",
"status-numeric": 6,
"health": "N/A",
"health-numeric": 4,
"health-reason": "No drive enclosure is connected to this expansion port. This is normal if this is the last (or only) enclosure in the cabling sequence of the system.",
"health-recommendation": "- No action is required."
}
],
"compact-flash": [
{
"object-name": "controller-b-compact-flash",
"meta": "/meta/compact-flash",
"durable-id": "Ctlr B CF",
"controller-id": "B",
"controller-id-numeric": 0,
"name": "Controller B CompactFlash",
"status": "Installed",
"status-numeric": 1,
"cache-flush": "Enabled",
"cache-flush-numeric": 1,
"health": "OK",
"health-numeric": 0,
"health-reason": "",
"health-recommendation": ""
}
],
"expanders": [
{
"object-name": "expanders",
"meta": "/meta/expanders",
"durable-id": "expander_0.B",
"enclosure-id": 0,
"drawer-id": 255,
"dom-id": 0,
"path-id": "B",
"path-id-numeric": 0,
"name": "Root Expander-B",
"location": "Enclosure 0, Iom B",
"status": "OK",
"status-numeric": 1,
"extended-status": "00000000",
"fw-revision": "52B2",
"health": "OK",
"health-numeric": 0,
"health-reason": "",
"health-recommendation": ""
}
]
}
],
"status": [
{
"object-name": "status",
"meta": "/meta/status",
"response-type": "Success",
"response-type-numeric": 0,
"response": "Command completed successfully. (2023-05-15 10:28:40)",
"return-code": 0,
"component-id": "",
"time-stamp": "2023-05-15 10:28:40",
"time-stamp-numeric": 1684146520
}
]
},
{
"system": [
{
"object-name": "system-information",
"meta": "/meta/system",
"system-name": "PVME",
"system-contact": "John Doe",
"system-location": "SOR",
"system-information": "Dell EMC PowerVault ME4024",
"midplane-serial-number": "xxx",
"vendor-name": "DELL EMC",
"product-id": "ME4024",
"product-brand": "",
"scsi-vendor-id": "DellEMC",
"scsi-product-id": "ME4",
"enclosure-count": 1,
"health": "OK",
"health-numeric": 0,
"health-reason": "",
"other-MC-status": "Operational",
"other-MC-status-numeric": 4760,
"pfuStatus": "Idle",
"supported-locales": "English (English), Spanish (espa\u00f1ol), French (fran\u00e7ais), German (Deutsch), Japanese (\u65e5\u672c\u8a9e), Korean (\ud55c\uad6d\uc5b4), Chinese-Simplified (\u7b80\u4f53\u4e2d\u6587)",
"current-node-wwn": "N/A",
"fde-security-status": "Unsecured",
"fde-security-status-numeric": 1,
"platform-type": "Gallium",
"platform-type-numeric": 3,
"platform-brand": "DELL EMC",
"platform-brand-numeric": 22,
"redundancy": [
{
"object-name": "system-redundancy",
"meta": "/meta/redundancy",
"redundancy-mode": "Active-Active ULP",
"redundancy-mode-numeric": 8,
"redundancy-status": "Redundant",
"redundancy-status-numeric": 2,
"controller-a-status": "Operational",
"controller-a-status-numeric": 0,
"controller-a-serial-number": "xxx",
"controller-b-status": "Operational",
"controller-b-status-numeric": 0,
"controller-b-serial-number": "xxx",
"other-MC-status": "Operational",
"other-MC-status-numeric": 4760
}
]
}
],
"status": [
{
"object-name": "status",
"meta": "/meta/status",
"response-type": "Success",
"response-type-numeric": 0,
"response": "Command completed successfully. (2023-05-15 10:28:41)",
"return-code": 0,
"component-id": "",
"time-stamp": "2023-05-15 10:28:41",
"time-stamp-numeric": 1684146521
}
]
}
],
"lld": [
{
"{#CNTLRS}": "controllers"
}
]
}
Links consulted:
- https://blog.zabbix.com/low-level-di...t-items/13634/
- https://www.zabbix.com/forum/zabbix-...m-prototype
How can I make this happen? Only one working configuration is needed, to be an example for others.