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:
cproudlock
2025-12-17 13:55:49 -05:00
parent 389e620261
commit b95fafe230
2 changed files with 1182 additions and 0 deletions

View 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