(This is for Zabbix 2.2.2.)
Implementing these as passive checks eats the zabbix agent alive, spawning an external process for each item.
The data for all the items could easily be collected all at once and sent to the Zabbix server in bulk (via zabbix_sender). I don't know how to implement this properly. The documentation doesn't answer the (potentially stupid) questions I have.
How can I have the Zabbix agent make a single external invocation of my custom data-gathering script and send back all the data in bulk for the 100+ discovered items as well as not invoking a client-side action for every item? What I want to avoid is having the Zabbix agent attempt to collect each item individually.
The discovery rule has to create the items. As I understand it, each item will result in the zabbix agent attempting to do something to collect its data. Is there a way I can prevent this or associate a group of items with a single client-side active check?
Part of what I don't understand is how active checks are supposed to be implemented. If one active check can send back a batch of items' data, how would the item be defined for that host (so that the agent didn't attempt to gather the item's data individually) and what item would be defined to invoke the active check (or whatever item type should be used) that would do the actual data gathering (but not save any data itself)? This is the real question that the documentation doesn't answer for me. How does Zabbix intend for me to implement active checks or use zabbix_sender to send bulk updates for items (that the agent will attempt to gather on its own).