Migration von Zabbix¶
Zabbix und Vesana haben ähnliche Grundkonzepte, aber unterschiedliche Begriffe. Diese Tabelle ist der Schlüssel:
Konzept-Mapping¶
| Zabbix | Vesana | Bemerkung |
|---|---|---|
| Host | Host | identisch |
| Item | Profile-Check + Host-Service | Item-Definition = Profile-Check, Item pro Host = Host-Service |
| Trigger | Alert-Rule (Threshold) | Zabbix-Triggers sind expression-based, Vesana-Rules etwas einfacher |
| Action | Alert-Rule + Channels | Zabbix-Actions kombinieren Trigger + Eskalation, Vesana trennt das |
| Template | Profil mit Profile-Checks | direkter Pendant |
Macro {$VAR} |
Override pro Host-Service | Vesana hat keine globalen Macros, dafür hostspezifische Overrides |
| Discovery Rule (LLD) | aktuell kein direktes Pendant | Workaround: SNMP-Sensor-Picker |
| Host Group | Tag(s) auf Host | Tags sind freier, mehrere Tags pro Host möglich |
Item Type Zabbix Agent |
agent_* Check-Typen |
gleicher Use-Case |
Item Type SNMP agent |
snmp, snmp_string, snmp_table |
analog |
Item Type Simple check |
ping, http, port (Collector) |
analog |
Item Type External check |
agent_custom, agent_script |
Skripte zentral in Vesana |
Item Type Calculated |
aktuell nicht direkt | Workaround: Custom-Script |
| Trigger Severity | threshold_warn / threshold_crit |
Zabbix hat 6 Severities, Vesana 5 (CRIT/WARN/UNKNOWN/NO_DATA/OK) |
| Maintenance | Downtime | identisch |
| Acknowledgement | ACK | identisch |
| Web Scenario | Custom Dashboard mit http-Service | nicht 1:1 — kein eingebauter Multi-Step-Web-Test |
Phase 1 — Inventur¶
# Aus Zabbix-API:
curl -X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"host.get","params":{"output":"extend","selectGroups":"extend"},"auth":"...","id":1}' \
https://zabbix.example.com/api_jsonrpc.php
Du brauchst die Liste aller Hosts mit Hostgroups und ihren Templates. Daraus baust du das Vesana-Konzept-Mapping.
Phase 2 — Profile vorbereiten¶
Pro Zabbix-Template eine Vesana-Profil-Equivalente. Builtin-Profile in Vesana decken vieles bereits ab — was fehlt, als Custom-Profil anlegen.
Die Items pro Template werden zu Profile-Checks. Schwellwerte aus Zabbix-Triggers entnehmen.
Importer-Script in scripts/zabbix_to_vesana.py parst Zabbix-API und erzeugt Vesana-Profile + Profile-Checks. Output ist ein JSON-Bundle, das du via /api/v1/profiles/import einspielst.
Phase 3 — Hosts importieren¶
Nach Profile-Anlage: Hosts importieren mit Profil-Zuweisung. Auto-Add-Profile-Checks erzeugen die Host-Services automatisch.
Bulk-Import-Script: scripts/zabbix_hosts_import.py.
Phase 4 — Daten-Pfade umstellen¶
Wenn Zabbix-Agent läuft¶
Du musst den Agent austauschen — Zabbix-Agent kann nicht direkt mit Vesana reden. Workflow:
- Vesana-Agent installieren (gleicher Host, andere Binary)
- In Vesana Agent-Token erzeugen, in Config einsetzen
- Zabbix-Agent stoppen + deinstallieren
Beide Agents parallel laufen lassen geht zwar (verschiedene Ports), aber unnötig.
Wenn Zabbix-Proxy / Aktiv-Server-Polling¶
Migrieren auf Vesana-Collector im selben Netzsegment. Konfiguration analog zum Zabbix-Proxy: ein Collector pro Standort.
Phase 5 — Triggers + Actions ersetzen¶
Pro Zabbix-Trigger eine Vesana-Alert-Rule:
- Filter: Hosts/Tags/Profile
- Trigger: Threshold oder Pattern, je nach Zabbix-Trigger-Expression
- Channels: aus Zabbix-Action ableiten
- Eskalation: Zabbix-Action-Steps werden zu Alert-Rule-Stufen
Komplexere Zabbix-Trigger mit last(), avg(), Calculated-Items: nicht 1:1 übernehmbar — als Custom-Script in Vesana realisieren.
Phase 6 — Dashboards¶
Zabbix-Dashboards → Custom Dashboards. Widget-Mapping:
| Zabbix-Widget | Vesana-Widget |
|---|---|
| Trigger Overview | Active Problems |
| Graph | Line Chart |
| Plain Text | Stat-Tile oder Text-Widget |
| Map | Map-Widget (geo) |
| Host Availability | Status-Summary |
Phase 7 — User + Permissions¶
Zabbix-User-Groups → Vesana-Rollen. Default-Rollen reichen für die meisten Fälle. Custom-Rollen für Spezialfälle.
Häufige Fragen¶
Was ist mit Zabbix-LLD?¶
Aktuell kein direktes Pendant. Workaround:
- Für Filesystems: SNMP-Sensor-Picker auf SNMP-Hosts; auf Linux der
agent_diskmit fixem Pfad pro Mount - Für Interfaces: SNMP-Sensor-Picker walkt die ifTable und legt Service pro aktivem Port an
- Für Services-Auto-Discovery:
agent_services_auto(Windows)
Native LLD ist in Vesana-Roadmap, aktuell nicht 1:1 verfügbar.
Calculated Items?¶
Per Custom-Script (agent_script): das Skript holt mehrere Werte per OS-API oder anderen Tools, berechnet das Ergebnis, gibt es im Nagios-Format zurück.
Was mit Web-Scenarios?¶
Aktuell kein eingebauter Multi-Step-Web-Test. Custom-Script mit curl-Kette ist der Workaround.
Können wir Historie übernehmen?¶
Nicht direkt. Empfehlung: alte Zabbix-Instanz noch 90 Tage als Read-Only laufen lassen, danach archivieren. Vesana fängt frisch an.
Anschluss¶
- Profile bearbeiten — Imports verfeinern
- Migration → Von Checkmk