Files
snmp-scanner/README.md
cproudlock 18846e1e1c Update HID template for displayprinter.asp compatibility, add template guidelines
HID Template Changes:
- Rename "Ribbon Remaining" to "Ribbon Level" (matches displayprinter.asp filter)
- Add preprocessing to convert raw print count to percentage (500-print YMCKO)
- Update triggers to use percentage thresholds (15% warning, 5% critical)
- Change key from hid.ribbon.remaining to hid.ribbon.level

README - Template Guidelines for ShopDB Integration:
- Supply items MUST include "Level" in name to appear in displayprinter.asp
- Values MUST be percentages (0-100) for progress bar display
- UUIDs MUST be valid UUIDv4 (32 hex chars, no dashes)
- Triggers MUST be nested inside items, not at template level
- Include preprocessing examples for converting raw counts to percentages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 14:15:37 -05:00

2.2 KiB

SNMP Scanner / Zabbix Templates

This repository contains SNMP-based Zabbix templates and related tooling for monitoring network devices.

Zabbix Template Requirements for ShopDB Integration

Templates created here are used with the ShopDB displayprinter.asp page, which pulls supply data from Zabbix via API. To ensure compatibility:

Supply Level Items

For supply items to appear in displayprinter.asp, they must:

  1. Include "Level" in the item name - The page filters for items containing "Level"

    • Good: Ribbon Level, Toner Level Black, Ink Level Cyan
    • Bad: Ribbon Remaining, Toner Count, Ink Status
  2. Return a percentage value (0-100) - The page displays items as progress bars

    • If the SNMP OID returns a raw count, add preprocessing to convert to percentage
    • Example: For a 500-print ribbon, use JavaScript preprocessing:
      var remaining = parseInt(value, 10);
      var percent = (remaining / 500) * 100;
      return Math.min(100, Math.max(0, percent.toFixed(1)));
      
  3. Use appropriate units - Set units: '%' for percentage values

Example Item Structure

- uuid: <valid-uuidv4>
  name: Ribbon Level           # Must contain "Level"
  type: SNMP_AGENT
  snmp_oid: 'get[1.3.6.1.4.1.xxx]'
  key: device.ribbon.level
  value_type: FLOAT
  units: '%'                   # Percentage
  preprocessing:
  - type: JAVASCRIPT
    parameters:
    - |
      // Convert raw count to percentage
      var remaining = parseInt(value, 10);
      var capacity = 500;  // Adjust per consumable
      return Math.min(100, Math.max(0, (remaining / capacity) * 100));

Zabbix Import Requirements

  • UUIDs must be valid UUIDv4 - 32 hex characters without dashes
  • Triggers must be nested inside items - Not at the template level
  • Generate UUIDs with: python3 -c "import uuid; print(uuid.uuid4().hex)"

Templates

Template Device Notes
zabbix_template_hid_dtc4500e.yaml HID Fargo DTC4500e Card Printer YMCKO 500-print ribbon
  • ShopDB: /home/camp/projects/windows/shopdb/
  • Zabbix API integration: shopdb/includes/zabbix_all_supplies.asp
  • Display page: shopdb/displayprinter.asp