Commit Graph
14 Commits
Author SHA1 Message Date
cgasserandClaude Sonnet 4.6 79b4266d2b Fix template: move triggers inside items (Zabbix 7.x format)
In Zabbix 7.x, triggers must be nested within their parent item
rather than defined at the template level.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 10:41:52 +02:00
cgasserandClaude Sonnet 4.6 e16b542d1b Add Zabbix template with offline and last-seen triggers
- zabbix_template.yaml: importable template "Yodmon Yodeck Player"
  - 5 SNMP items using {$YODECK_ID} host macro for per-host OIDs
  - Trigger: offline warning after 30 minutes (yodeck.online < 1)
  - Trigger: last seen > 4 hours (now() - yodeck.last_seen_ts > 14400)
- snmp/pass_persist.py: add col 7 — last_seen as Unix timestamp
- app/zabbix.py: link hosts to template, upsert {$YODECK_ID} macro;
  existing hosts get template linked on next sync automatically
- app/config.py: add ZABBIX_TEMPLATE setting

Import zabbix_template.yaml once via Zabbix UI, then redeploy.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 10:39:48 +02:00
cgasserandClaude Sonnet 4.6 c35850dc3d Change visible name format to QRS-{site}MB-{screen}
New format: QRS- + first 4 chars + MB- + remainder
Example: AMS-COF1 -> QRS-AMS-MB-COF1

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 10:32:21 +02:00
cgasserandClaude Sonnet 4.6 1c95f9a097 Update CLAUDE.md with current state
- Correct web UI port (8088 not 8080 in Docker)
- Add ZABBIX_API_TOKEN to config table
- Document hostname format (yodeck- not yodeck#)
- Document visible name format (QRS- prefix)
- Add Zabbix 7.x setup requirements (group permissions, admin role)
- Document Bearer token auth approach

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 10:27:11 +02:00
cgasserandClaude Sonnet 4.6 5db8beb847 Replace # with - in Zabbix host names (Zabbix 7.x compatibility)
Zabbix 7.x rejects '#' in host names. Changed hostname format from
'yodeck#<id>' to 'yodeck-<id>' (e.g. yodeck-54239).
Updated SNMP col 1 value and docs for consistency.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 10:21:05 +02:00
cgasserandClaude Sonnet 4.6 fc6a0c1605 Improve hostgroup permission error message
When the API token user cannot see the host group (returns empty from
hostgroup.get), the code fell through to hostgroup.create and gave a
confusing permissions error. Now catches this and explains exactly what
to fix in Zabbix (User groups -> Permissions).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 10:16:49 +02:00
cgasserandClaude Sonnet 4.6 b53f6c9aed Fix Zabbix API token auth for Zabbix 6.4+
Zabbix 6.4+ rejects API tokens in the JSON-RPC "auth" field.
Tokens must now be sent as "Authorization: Bearer <token>" HTTP header.
User/password sessions still use the payload auth field as before.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 10:11:53 +02:00
cgasser 525158e9c6 Update docker-compose.yml 2026-04-17 10:10:02 +02:00
cgasserandClaude Sonnet 4.6 2695379589 Add Zabbix API token authentication support
ZABBIX_API_TOKEN env var can now be used instead of ZABBIX_USER +
ZABBIX_PASSWORD. When set, the token is passed directly as the auth
value in JSON-RPC calls and no login/logout session is created.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 10:07:47 +02:00
cgasser 7d18f20bf1 Update docker-compose.yml 2026-04-17 10:05:18 +02:00
cgasserandClaude Sonnet 4.6 38357725c4 Prefix Zabbix visible name with QRS-
Zabbix host visible name is now "QRS-<yodeck_name>" (e.g. QRS-AMS-COF1).
Existing hosts will be renamed on the next Yodeck poll.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 10:03:50 +02:00
cgasser 779126327c Update docker-compose.yml 2026-04-17 10:01:51 +02:00
cgasser b5afb79021 Update docker-compose.yml 2026-04-17 09:36:34 +02:00
cgasserandClaude Sonnet 4.6 9fc3e97546 Initial commit: Yodmon Yodeck→Zabbix bridge
- Yodeck API poller (every 10 min, paginated, 310 players)
- SQLite persistence (players + activity logs)
- SNMP v2c agent via net-snmp pass_persist
- Zabbix API auto host creation/update (6.0+)
- Flask web dashboard with live player status and log
- Docker deployment with persistent volume
- dev_server.py for local testing without Docker

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 09:31:00 +02:00