Add Zabbix template for HID Fargo DTC4500e card printer
Template monitors via HID Enterprise MIB (1.3.6.1.4.1.28959): - Printer status and error states - Print counts (current session and lifetime) - Ribbon remaining count - Card hopper status - Door/hopper open detection - Film/ribbon loaded status - Firmware version and serial number Includes triggers for: - Printer error state - Door/hopper open - Film not loaded - Input hopper empty - Ribbon low/critically low - No SNMP data (offline detection) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
528
zabbix_template_hid_dtc4500e.yaml
Normal file
528
zabbix_template_hid_dtc4500e.yaml
Normal file
@@ -0,0 +1,528 @@
|
||||
zabbix_export:
|
||||
version: '7.4'
|
||||
template_groups:
|
||||
- uuid: 3cd4e8d0b828464e8f4b3becf13a9dbd
|
||||
name: Printers
|
||||
templates:
|
||||
- uuid: a8f3d2e1b5c74a9e8d6f0c3b2a1e9d8c
|
||||
template: HID Fargo DTC4500e Card Printer
|
||||
name: HID Fargo DTC4500e Card Printer
|
||||
description: |
|
||||
Template for HID Fargo DTC4500e ID Card Printer
|
||||
Uses HID Enterprise MIB (1.3.6.1.4.1.28959)
|
||||
|
||||
Monitors:
|
||||
- Printer status and health
|
||||
- Print counts (current and lifetime)
|
||||
- Ribbon/supply levels
|
||||
- Firmware version
|
||||
- Status flags (hopper, film, errors)
|
||||
groups:
|
||||
- name: Printers
|
||||
items:
|
||||
# === System Information ===
|
||||
- uuid: b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6
|
||||
name: System Description
|
||||
type: SNMP_AGENT
|
||||
snmp_oid: 'get[1.3.6.1.2.1.1.1.0]'
|
||||
key: hid.sysdescr
|
||||
delay: 1h
|
||||
history: 90d
|
||||
trends: '0'
|
||||
value_type: TEXT
|
||||
description: 'System description from sysDescr MIB'
|
||||
tags:
|
||||
- tag: component
|
||||
value: system
|
||||
- tag: type
|
||||
value: info
|
||||
|
||||
- uuid: c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7
|
||||
name: System Uptime
|
||||
type: SNMP_AGENT
|
||||
snmp_oid: 'get[1.3.6.1.2.1.1.3.0]'
|
||||
key: hid.uptime
|
||||
delay: 5m
|
||||
history: 90d
|
||||
trends: 365d
|
||||
value_type: FLOAT
|
||||
units: uptime
|
||||
description: 'System uptime in ticks (divide by 100 for seconds)'
|
||||
tags:
|
||||
- tag: component
|
||||
value: system
|
||||
- tag: type
|
||||
value: performance
|
||||
preprocessing:
|
||||
- type: MULTIPLIER
|
||||
parameters:
|
||||
- '0.01'
|
||||
|
||||
- uuid: d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8
|
||||
name: System Name
|
||||
type: SNMP_AGENT
|
||||
snmp_oid: 'get[1.3.6.1.2.1.1.5.0]'
|
||||
key: hid.sysname
|
||||
delay: 1h
|
||||
history: 90d
|
||||
trends: '0'
|
||||
value_type: TEXT
|
||||
description: 'System name (hostname)'
|
||||
tags:
|
||||
- tag: component
|
||||
value: system
|
||||
- tag: type
|
||||
value: info
|
||||
|
||||
- uuid: e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9
|
||||
name: System Location
|
||||
type: SNMP_AGENT
|
||||
snmp_oid: 'get[1.3.6.1.2.1.1.6.0]'
|
||||
key: hid.syslocation
|
||||
delay: 1h
|
||||
history: 90d
|
||||
trends: '0'
|
||||
value_type: TEXT
|
||||
description: 'System location'
|
||||
tags:
|
||||
- tag: component
|
||||
value: system
|
||||
- tag: type
|
||||
value: info
|
||||
|
||||
# === HID Enterprise MIB - Device Info ===
|
||||
- uuid: f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0
|
||||
name: Printer Model
|
||||
type: SNMP_AGENT
|
||||
snmp_oid: 'get[1.3.6.1.4.1.28959.3.255.1.6.0]'
|
||||
key: hid.model
|
||||
delay: 1h
|
||||
history: 90d
|
||||
trends: '0'
|
||||
value_type: TEXT
|
||||
description: 'Printer model name from HID MIB'
|
||||
tags:
|
||||
- tag: component
|
||||
value: printer
|
||||
- tag: type
|
||||
value: info
|
||||
preprocessing:
|
||||
- type: JAVASCRIPT
|
||||
parameters:
|
||||
- |
|
||||
// Convert hex-encoded SNMP string to ASCII
|
||||
var hexPattern = /^[0-9A-Fa-f\s]+$/;
|
||||
if (hexPattern.test(value) && value.length > 4) {
|
||||
var hexBytes = value.match(/[0-9A-Fa-f]{2}/g);
|
||||
if (hexBytes && hexBytes.length > 0) {
|
||||
var result = '';
|
||||
for (var i = 0; i < hexBytes.length; i++) {
|
||||
var code = parseInt(hexBytes[i], 16);
|
||||
if (code >= 32 && code <= 126) {
|
||||
result += String.fromCharCode(code);
|
||||
}
|
||||
}
|
||||
if (result.length > 0) return result;
|
||||
}
|
||||
}
|
||||
return value.replace(/[^\x20-\x7E]/g, '');
|
||||
|
||||
- uuid: a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1
|
||||
name: Printer Serial Number
|
||||
type: SNMP_AGENT
|
||||
snmp_oid: 'get[1.3.6.1.4.1.28959.3.255.1.7.0]'
|
||||
key: hid.serial
|
||||
delay: 1h
|
||||
history: 90d
|
||||
trends: '0'
|
||||
value_type: TEXT
|
||||
description: 'Printer serial number from HID MIB'
|
||||
tags:
|
||||
- tag: component
|
||||
value: printer
|
||||
- tag: type
|
||||
value: info
|
||||
preprocessing:
|
||||
- type: JAVASCRIPT
|
||||
parameters:
|
||||
- |
|
||||
// Convert hex-encoded SNMP string to ASCII
|
||||
var hexPattern = /^[0-9A-Fa-f\s]+$/;
|
||||
if (hexPattern.test(value) && value.length > 4) {
|
||||
var hexBytes = value.match(/[0-9A-Fa-f]{2}/g);
|
||||
if (hexBytes && hexBytes.length > 0) {
|
||||
var result = '';
|
||||
for (var i = 0; i < hexBytes.length; i++) {
|
||||
var code = parseInt(hexBytes[i], 16);
|
||||
if (code >= 32 && code <= 126) {
|
||||
result += String.fromCharCode(code);
|
||||
}
|
||||
}
|
||||
if (result.length > 0) return result;
|
||||
}
|
||||
}
|
||||
return value.replace(/[^\x20-\x7E]/g, '');
|
||||
|
||||
- uuid: b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2
|
||||
name: Firmware Version
|
||||
type: SNMP_AGENT
|
||||
snmp_oid: 'get[1.3.6.1.4.1.28959.3.255.1.8.0]'
|
||||
key: hid.firmware
|
||||
delay: 1d
|
||||
history: 90d
|
||||
trends: '0'
|
||||
value_type: TEXT
|
||||
description: 'Printer firmware version'
|
||||
tags:
|
||||
- tag: component
|
||||
value: printer
|
||||
- tag: type
|
||||
value: info
|
||||
preprocessing:
|
||||
- type: JAVASCRIPT
|
||||
parameters:
|
||||
- |
|
||||
// Convert hex-encoded SNMP string to ASCII
|
||||
var hexPattern = /^[0-9A-Fa-f\s]+$/;
|
||||
if (hexPattern.test(value) && value.length > 4) {
|
||||
var hexBytes = value.match(/[0-9A-Fa-f]{2}/g);
|
||||
if (hexBytes && hexBytes.length > 0) {
|
||||
var result = '';
|
||||
for (var i = 0; i < hexBytes.length; i++) {
|
||||
var code = parseInt(hexBytes[i], 16);
|
||||
if (code >= 32 && code <= 126) {
|
||||
result += String.fromCharCode(code);
|
||||
}
|
||||
}
|
||||
if (result.length > 0) return result;
|
||||
}
|
||||
}
|
||||
return value.replace(/[^\x20-\x7E]/g, '');
|
||||
|
||||
# === HID Enterprise MIB - Status ===
|
||||
- uuid: c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3
|
||||
name: Printer Status Code
|
||||
type: SNMP_AGENT
|
||||
snmp_oid: 'get[1.3.6.1.4.1.28959.3.255.1.4.0]'
|
||||
key: hid.status.code
|
||||
delay: 1m
|
||||
history: 90d
|
||||
trends: 365d
|
||||
value_type: UNSIGNED
|
||||
description: 'Printer status code (0=Unknown, 1=Offline, 2=Standby, 3=Ready, 4=Printing, 5=Error)'
|
||||
tags:
|
||||
- tag: component
|
||||
value: printer
|
||||
- tag: type
|
||||
value: status
|
||||
valuemap:
|
||||
name: HID Printer Status
|
||||
|
||||
- uuid: d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4
|
||||
name: Printer Status Flags
|
||||
type: SNMP_AGENT
|
||||
snmp_oid: 'get[1.3.6.1.4.1.28959.3.255.1.10.0]'
|
||||
key: hid.status.flags
|
||||
delay: 1m
|
||||
history: 7d
|
||||
trends: '0'
|
||||
value_type: TEXT
|
||||
description: |
|
||||
Status flags string containing component states:
|
||||
DH=Door/Hopper, IH=Input Hopper, LM=Laminator, FL=Film,
|
||||
MG=Magnetic, SM=Smart Module, SC=Smart Card, PE=Paper Empty
|
||||
Values: 0=OK, 1=Warning/Active
|
||||
tags:
|
||||
- tag: component
|
||||
value: printer
|
||||
- tag: type
|
||||
value: status
|
||||
preprocessing:
|
||||
- type: JAVASCRIPT
|
||||
parameters:
|
||||
- |
|
||||
// Convert hex-encoded SNMP string to ASCII
|
||||
var hexPattern = /^[0-9A-Fa-f\s]+$/;
|
||||
if (hexPattern.test(value) && value.length > 4) {
|
||||
var hexBytes = value.match(/[0-9A-Fa-f]{2}/g);
|
||||
if (hexBytes && hexBytes.length > 0) {
|
||||
var result = '';
|
||||
for (var i = 0; i < hexBytes.length; i++) {
|
||||
var code = parseInt(hexBytes[i], 16);
|
||||
if (code >= 32 && code <= 126) {
|
||||
result += String.fromCharCode(code);
|
||||
}
|
||||
}
|
||||
if (result.length > 0) return result;
|
||||
}
|
||||
}
|
||||
return value.replace(/[^\x20-\x7E]/g, '');
|
||||
|
||||
# === HID Enterprise MIB - Counters ===
|
||||
- uuid: e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5
|
||||
name: Current Print Count
|
||||
type: SNMP_AGENT
|
||||
snmp_oid: 'get[1.3.6.1.4.1.28959.3.255.1.9.0]'
|
||||
key: hid.prints.current
|
||||
delay: 5m
|
||||
history: 90d
|
||||
trends: 365d
|
||||
value_type: UNSIGNED
|
||||
units: cards
|
||||
description: 'Current session or ribbon print count'
|
||||
tags:
|
||||
- tag: component
|
||||
value: counter
|
||||
- tag: type
|
||||
value: performance
|
||||
|
||||
- uuid: f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6
|
||||
name: Total Lifetime Prints
|
||||
type: SNMP_AGENT
|
||||
snmp_oid: 'get[1.3.6.1.4.1.28959.3.255.1.12.0]'
|
||||
key: hid.prints.lifetime
|
||||
delay: 1h
|
||||
history: 90d
|
||||
trends: 365d
|
||||
value_type: UNSIGNED
|
||||
units: cards
|
||||
description: 'Total lifetime card prints'
|
||||
tags:
|
||||
- tag: component
|
||||
value: counter
|
||||
- tag: type
|
||||
value: performance
|
||||
|
||||
- uuid: a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7
|
||||
name: Ribbon Remaining
|
||||
type: SNMP_AGENT
|
||||
snmp_oid: 'get[1.3.6.1.4.1.28959.3.255.1.16.0]'
|
||||
key: hid.ribbon.remaining
|
||||
delay: 5m
|
||||
history: 90d
|
||||
trends: 365d
|
||||
value_type: UNSIGNED
|
||||
units: prints
|
||||
description: 'Ribbon remaining count (estimated prints left)'
|
||||
tags:
|
||||
- tag: component
|
||||
value: supplies
|
||||
- tag: type
|
||||
value: consumable
|
||||
|
||||
# === Additional HID MIB values ===
|
||||
- uuid: b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8
|
||||
name: Error Count
|
||||
type: SNMP_AGENT
|
||||
snmp_oid: 'get[1.3.6.1.4.1.28959.3.255.1.11.0]'
|
||||
key: hid.errors
|
||||
delay: 5m
|
||||
history: 90d
|
||||
trends: 365d
|
||||
value_type: UNSIGNED
|
||||
description: 'Error count or error state'
|
||||
tags:
|
||||
- tag: component
|
||||
value: printer
|
||||
- tag: type
|
||||
value: error
|
||||
|
||||
- uuid: c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9
|
||||
name: Card Count in Hopper
|
||||
type: SNMP_AGENT
|
||||
snmp_oid: 'get[1.3.6.1.4.1.28959.3.255.1.13.0]'
|
||||
key: hid.hopper.count
|
||||
delay: 5m
|
||||
history: 90d
|
||||
trends: 365d
|
||||
value_type: UNSIGNED
|
||||
units: cards
|
||||
description: 'Estimated cards remaining in input hopper'
|
||||
tags:
|
||||
- tag: component
|
||||
value: supplies
|
||||
- tag: type
|
||||
value: consumable
|
||||
|
||||
# === Derived Items ===
|
||||
- uuid: d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0
|
||||
name: Door/Hopper Status
|
||||
type: DEPENDENT
|
||||
key: hid.status.door
|
||||
delay: '0'
|
||||
history: 90d
|
||||
trends: '0'
|
||||
value_type: UNSIGNED
|
||||
description: 'Door/Hopper status extracted from flags (0=Closed/OK, 1=Open/Warning)'
|
||||
master_item:
|
||||
key: hid.status.flags
|
||||
tags:
|
||||
- tag: component
|
||||
value: printer
|
||||
- tag: type
|
||||
value: status
|
||||
preprocessing:
|
||||
- type: JAVASCRIPT
|
||||
parameters:
|
||||
- |
|
||||
var match = value.match(/DH:(\d)/);
|
||||
return match ? match[1] : '0';
|
||||
valuemap:
|
||||
name: HID Door Status
|
||||
|
||||
- uuid: e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1
|
||||
name: Film/Ribbon Loaded
|
||||
type: DEPENDENT
|
||||
key: hid.status.film
|
||||
delay: '0'
|
||||
history: 90d
|
||||
trends: '0'
|
||||
value_type: UNSIGNED
|
||||
description: 'Film/Ribbon loaded status (0=Not Loaded, 1=Loaded)'
|
||||
master_item:
|
||||
key: hid.status.flags
|
||||
tags:
|
||||
- tag: component
|
||||
value: supplies
|
||||
- tag: type
|
||||
value: status
|
||||
preprocessing:
|
||||
- type: JAVASCRIPT
|
||||
parameters:
|
||||
- |
|
||||
var match = value.match(/FL:(\d)/);
|
||||
return match ? match[1] : '0';
|
||||
valuemap:
|
||||
name: HID Film Status
|
||||
|
||||
- uuid: f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2
|
||||
name: Input Hopper Status
|
||||
type: DEPENDENT
|
||||
key: hid.status.inputhopper
|
||||
delay: '0'
|
||||
history: 90d
|
||||
trends: '0'
|
||||
value_type: UNSIGNED
|
||||
description: 'Input hopper status (0=OK, 1=Empty/Warning)'
|
||||
master_item:
|
||||
key: hid.status.flags
|
||||
tags:
|
||||
- tag: component
|
||||
value: supplies
|
||||
- tag: type
|
||||
value: status
|
||||
preprocessing:
|
||||
- type: JAVASCRIPT
|
||||
parameters:
|
||||
- |
|
||||
var match = value.match(/IH:(\d)/);
|
||||
return match ? match[1] : '0';
|
||||
valuemap:
|
||||
name: HID Hopper Status
|
||||
|
||||
# === Triggers ===
|
||||
triggers:
|
||||
- uuid: a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3
|
||||
expression: 'last(/HID Fargo DTC4500e Card Printer/hid.status.code)=5'
|
||||
name: 'HID DTC4500e: Printer in error state'
|
||||
priority: HIGH
|
||||
description: 'Printer is reporting an error condition'
|
||||
tags:
|
||||
- tag: scope
|
||||
value: availability
|
||||
|
||||
- uuid: b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4
|
||||
expression: 'last(/HID Fargo DTC4500e Card Printer/hid.status.door)=1'
|
||||
name: 'HID DTC4500e: Door/Hopper open'
|
||||
priority: WARNING
|
||||
description: 'Printer door or hopper is open'
|
||||
tags:
|
||||
- tag: scope
|
||||
value: notice
|
||||
|
||||
- uuid: c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5
|
||||
expression: 'last(/HID Fargo DTC4500e Card Printer/hid.status.film)=0'
|
||||
name: 'HID DTC4500e: Film/Ribbon not loaded'
|
||||
priority: WARNING
|
||||
description: 'Printer film or ribbon is not loaded'
|
||||
tags:
|
||||
- tag: scope
|
||||
value: availability
|
||||
|
||||
- uuid: d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6
|
||||
expression: 'last(/HID Fargo DTC4500e Card Printer/hid.status.inputhopper)=1'
|
||||
name: 'HID DTC4500e: Input hopper empty or warning'
|
||||
priority: WARNING
|
||||
description: 'Input hopper is empty or has a warning'
|
||||
tags:
|
||||
- tag: scope
|
||||
value: availability
|
||||
|
||||
- uuid: e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7
|
||||
expression: 'last(/HID Fargo DTC4500e Card Printer/hid.ribbon.remaining)<50'
|
||||
name: 'HID DTC4500e: Ribbon low (less than 50 prints remaining)'
|
||||
priority: WARNING
|
||||
description: 'Ribbon is running low, less than 50 prints remaining'
|
||||
tags:
|
||||
- tag: scope
|
||||
value: capacity
|
||||
|
||||
- uuid: f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8
|
||||
expression: 'last(/HID Fargo DTC4500e Card Printer/hid.ribbon.remaining)<10'
|
||||
name: 'HID DTC4500e: Ribbon critically low (less than 10 prints remaining)'
|
||||
priority: HIGH
|
||||
description: 'Ribbon is critically low, less than 10 prints remaining'
|
||||
tags:
|
||||
- tag: scope
|
||||
value: capacity
|
||||
|
||||
- uuid: a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9
|
||||
expression: 'nodata(/HID Fargo DTC4500e Card Printer/hid.status.code,15m)=1'
|
||||
name: 'HID DTC4500e: No SNMP data received'
|
||||
priority: AVERAGE
|
||||
description: 'No SNMP data received for 15 minutes - printer may be offline'
|
||||
tags:
|
||||
- tag: scope
|
||||
value: availability
|
||||
|
||||
# === Value Maps ===
|
||||
valuemaps:
|
||||
- uuid: b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0
|
||||
name: HID Printer Status
|
||||
mappings:
|
||||
- value: '0'
|
||||
newvalue: Unknown
|
||||
- value: '1'
|
||||
newvalue: Offline
|
||||
- value: '2'
|
||||
newvalue: Standby
|
||||
- value: '3'
|
||||
newvalue: Ready
|
||||
- value: '4'
|
||||
newvalue: Printing
|
||||
- value: '5'
|
||||
newvalue: Error
|
||||
|
||||
- uuid: c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1
|
||||
name: HID Door Status
|
||||
mappings:
|
||||
- value: '0'
|
||||
newvalue: Closed
|
||||
- value: '1'
|
||||
newvalue: Open
|
||||
|
||||
- uuid: d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2
|
||||
name: HID Film Status
|
||||
mappings:
|
||||
- value: '0'
|
||||
newvalue: Not Loaded
|
||||
- value: '1'
|
||||
newvalue: Loaded
|
||||
|
||||
- uuid: e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3
|
||||
name: HID Hopper Status
|
||||
mappings:
|
||||
- value: '0'
|
||||
newvalue: OK
|
||||
- value: '1'
|
||||
newvalue: Empty/Warning
|
||||
Reference in New Issue
Block a user