Uses native Zabbix selection fields.
- Select
Host(on normal dashboards). On template dashboards the linked host is used automatically. - Set
RowsandPorts per row(total ports = rows x ports per row). - Set optional
BrandandModeltext for switch bezel. - Set widget
Nameto control the dashboard widget title (header text). - Optional: set
Legend text(leave empty to hide). - Optional: set traffic patterns (
Traffic in item pattern,Traffic out item pattern) using*as port placeholder (example:ifInOctets[*]). - Optional: set
Port index startfor wildcard mapping (*), default1(set0for devices where first interface index is 0). - Optional: set
SFP index startwhen SFP SNMP indexes are not contiguous after Ethernet (leave0to auto-take SFPs after Ethernet). - Optional: set
Speed item pattern(example:ifHighSpeed[*]ornet.if.speed[ifHighSpeed.*]) for utilization calculations. - Optional: set
Speed data unitto match how Zabbix stores the speed value (Mbpsfor rawifHighSpeed[*],b/sfor template items likenet.if.speed[ifHighSpeed.*]that already apply ×1,000,000). - Optional: set
Show utilization overlayto enable/disable heatmap strip + grid. - Optional: tune utilization thresholds (
Low,Warn,High) and colors (Low,Warn,High,n/a). - Optional: select
Profileto auto-fill layout (Rows,Ports per row,SFP ports,Size (%),Brand,Model). - Optional: rename profile directly next to
Profile. - Optional: use
Save current to selected profileto overwrite selected profile (1-7). - Set optional
Size (%)(40-100) to make switch compact. - Set optional
SFP ports(0 = none, 2 = two extra SFP ports). - Select per-port
Triggerfrom dropdown (for selected host). - Set per-port
Default color,Trigger OK colorandTrigger NOK color. - Optional: use
Bulk actionsto apply one color to all ports for each state.
Note: Trigger options are rendered server-side from selected host.
If you change host, reopen widget edit to refresh trigger lists.
On template dashboards, the linked host is used automatically (template_support); re-save the widget once after upgrading so the dashboard host reference is stored.
SFP index start may be lower than Port index start (for example MikroTik: SFP ifIndex 11-14, Ether from 15).
- Widget renders with switch-style port front panel.
- Widget header title uses the widget
Namefield. - Port status uses LED-like color indicator:
- default color (light gray) = no trigger configured
- trigger OK color = trigger configured and OK
- trigger NOK color = active problem
- Port hover tooltip includes:
- state/type/trigger text
- IN/OUT sparkline + latest value (when user has item read permission)
- Fixed wildcard mapping when SFP SNMP indexes come before Ethernet indexes (MikroTik-style layouts).
- Added
Speed data unit(Mbpsorb/s) so utilization works with both rawifHighSpeed[*]and template items likenet.if.speed[ifHighSpeed.*]. - Restored direct
Hostselection on normal dashboards. - Bound template-dashboard widgets to the dashboard host context so port data loads on linked hosts.
- Switched host selection to Zabbix
Override hostso the widget follows dashboard/template host context. - Resolved host via template/dashboard linkage when no override is set.
- Added host name link in the switch header when a host is available.
- Marked the widget as available for template dashboards in
manifest.json.
- Added support for large SNMP interface indexes in wildcard-based item mapping.
- Increased key field widths for better readability in widget configuration.
- Moved heatmap legend into the switch header to free vertical space above the switch.
- Updated live panel label from
UtilizationtoPort utilizationfor clarity. - Tightened live metric value alignment so IN/OUT/utilization values stay visually closer to their labels.
- Added integrated switch summary panel under the switch face.
- Added summary item-key configuration fields (software, VLANs, CPU, fan, uptime, serial).
- Added live per-port telemetry block in summary panel (IN/OUT sparklines, utilization, errors, discards, 24h state bars).
- Restored hover-driven port live updates with click/focus fallback.
- Removed redundant
Ports: ...summary row. - Improved sparkline visuals and sizing to better match switch style.
- Updated long item-pattern/key fields to 40 characters for consistency.
- Kept trigger LED behavior authoritative while utilization overlay remains optional.
- Fixed edit-form item suggestion popups opening all at once on load.
- Fixed click selection in item suggestion lists to work reliably with blur/focus handling.
- Added
Port index startto support devices where interface indexing does not start at1(for example0on some platforms). - Fixed maintenance badge logic to respect maintenance window timing (ended windows now show OFF correctly).
- Utilization heatmap layout now follows switch geometry (UTP block + separate SFP block), matching port placement better.
- Primary target: Zabbix
7.0. - Should also work on Zabbix
7.2and7.4. 7.2and7.4are currently not actively tested or maintained.
Profiles are stored in profiles.json inside the module directory.
The web/PHP user must be able to write this file when using Save current to selected profile.
Common paths:
- Zabbix 7.x:
/usr/share/zabbix/modules/switch/profiles.json - Zabbix 8.x:
/usr/share/zabbix/ui/modules/switch/profiles.json
Example (RHEL/Alma/Rocky with apache, Zabbix 7.x path):
sudo chown root:apache /usr/share/zabbix/modules/switch/profiles.json
sudo chmod 664 /usr/share/zabbix/modules/switch/profiles.json
sudo chmod 755 /usr/share/zabbix/modules/switchIf SELinux is enabled, also set writable context:
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/usr/share/zabbix/modules/switch/profiles.json"
sudo restorecon -v /usr/share/zabbix/modules/switch/profiles.jsonFor Zabbix 8.x, use the same commands but replace /usr/share/zabbix/modules/switch/... with /usr/share/zabbix/ui/modules/switch/....
Parts of this software were generated using Codex. We do not guarantee the total accuracy, security, or stability of the generated code.
