The approaches we looked at earlier—direct database edits and XML import/export—were either risky or limited. Editing the database is risky because there's very little validation, and upgrading to a newer version of Zabbix can change the database schema, making our tools and approaches invalid. XML import/export was nice, but very limited—it didn't allow the modification of users, network discovery rules, actions, and lots of things in the Zabbix configuration.
This is where the Zabbix API could help. It's a JSON-based interface to Zabbix configuration and data. It offers way more functionality than XML import/export does, although there're still bits and pieces of configuration that can't be controlled using it.
The Zabbix API currently is frontend based—it's implemented in PHP. To use it,...