Migration from Zabbix¶
Zabbix and Vesana share base concepts but use different terms. This table is the key:
Concept mapping¶
| Zabbix | Vesana | Note |
|---|---|---|
| Host | Host | identical |
| Item | Profile-check + host-service | item definition = profile-check, item per host = host-service |
| Trigger | Thresholds on the check (warning/critical) | in Vesana the check judges itself; the alert rule only decides who gets notified when |
| Action | Alert rule + channels | Zabbix actions combine trigger + escalation, Vesana separates them |
| Template | Profile with profile-checks | direct counterpart |
Macro {$VAR} |
Override per host check or configurable values on a script | Vesana has no global macros; profile values can be overridden per device |
| Discovery rule (LLD) | no direct counterpart | see FAQ |
| Host group | Folder and/or tags | a device sits in exactly one folder but can carry several tags |
Item type Zabbix Agent |
agent_* check types |
same 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 |
scripts central in Vesana |
Item type Calculated |
not directly | workaround: custom script |
| Trigger severity | Status WARNING / CRITICAL | Zabbix has 6 severities, Vesana the statuses OK, WARNING, CRITICAL, UNKNOWN, No Data |
| Maintenance | Downtime | identical |
| Acknowledgement | ACK | identical |
| Web scenario | http check |
not 1:1 — no built-in multi-step web test |
Phase 1 — Inventory¶
# From 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
You need the list of all hosts with hostgroups and templates. From there, build the Vesana concept mapping.
Phase 2 — Prepare profiles¶
Per Zabbix template, one Vesana profile. The profiles from the Vesana library already cover many device types — what's missing, create as a profile of your own.
The items per template become profile checks. Take the thresholds from the Zabbix triggers as warning/critical limits on the check.
There is no converter for Zabbix templates; you create the profiles in Vesana (or import a Vesana profile bundle).
Phase 3 — Import hosts¶
After creating the profiles: create the hosts with profile assignment — via the host wizard or from discovery. The profile checks are created automatically. There is no import tool for Zabbix hosts.
Phase 4 — Switch data paths¶
When Zabbix agent runs¶
You must replace the agent — Zabbix agent can't talk to Vesana directly. Workflow:
- Install the Vesana agent with the install command from Vesana (host → set up agent)
- Compare values for a while
- Stop + uninstall the Zabbix agent
Both agents can run in parallel — the Vesana agent opens no port, it only connects outbound to the server.
When using Zabbix proxy / active server polling¶
Migrate to Vesana collector in the same network segment. Configuration analog to Zabbix proxy: one collector per location.
Phase 5 — Replace triggers + actions¶
The condition of a Zabbix trigger becomes the warning/critical limit on the check. The Zabbix action becomes the alert rule:
- Scope: all devices of the tenant, selected devices or selected checks — each with exceptions (tags and folders are not a filter of an alert rule)
- Statuses and delay: from which status and after how many seconds a message goes out
- Channels: derived from the Zabbix action
- Escalation: Zabbix action steps become the rule's escalation steps
More complex Zabbix triggers with last(), avg(), calculated items: not 1:1 transferable — implement as a monitoring script in Vesana.
Phase 6 — Dashboards¶
Zabbix dashboards → your own dashboards (or the customized built-in overview). Widget mapping:
| Zabbix widget | Vesana widget |
|---|---|
| Trigger overview | Open problems |
| Graph | Graph |
| Plain text | Number or Text / Note |
| Map | no widget — the maps (logical/physical) |
| Host availability | State |
Phase 7 — Users + permissions¶
Zabbix user groups → Vesana roles. Defaults cover most cases. Custom roles for special cases.
FAQ¶
What about Zabbix LLD?¶
No direct counterpart. What covers the most common cases:
- File systems:
agent_diskmonitors all partitions automatically; on SNMP devices the SNMP sensor picker selects the existing storage - Interfaces: the device scan proposes a bandwidth check per interface; "SNMP table: worst state" judges a whole table in one check
- Services:
agent_services_autodetects the automatically starting services and reports them as one combined check
Calculated items?¶
Via a monitoring script (agent_script): the script fetches several values via OS APIs or other tools, computes the result and returns it in Nagios or JSON format.
Web scenarios?¶
No built-in multi-step web test. A monitoring script with a curl chain is the way out.
Can we import history?¶
Not directly. Recommendation: keep old Zabbix instance read-only for 90 days, then archive. Vesana starts fresh.
Next¶
- Edit profiles — refine imports
- Migration → From Checkmk