Auto-Vivify
When using zabbix_sender have the trapper thread auto-create items for hosts if the items don't exist.
That way I can run discovery on the monitored host to determine what kind of software is running on it, and then send the appropriate items to the zabbix server without having to configure the zabbix server.
With 2,000 servers and probably 200-400 different small clusters of servers (SOA environment), the server running the software basically knows much better what its software is an how it should be managed than any central solution to managing this configuration. If we had a unified, consistent method of pushing software and a decent centralized configuration behind that, it might be possible to slave the zabbix configuration off the SCM database in some way, but we don't have that and I don't control that, so the decentralized state of the actually deployed applications is the best representation of the state which needs to be monitored. Right now I have tools which can be used to autodiscover applications running on servers and to setup cronjobs that spit information out to zabbix servers through zabbix_sender. But once that occurs automatically, it requires unscalable human effort to attempt to configure the zabbix server correctly (and templates don't really help when you're talking about an environment with hundreds of templates -- templates just turn O(n) in servers to O(n) in server groups).
And yes, if you give me an API, I can write something to do autovivification myself if you find it horrendously distasteful -- so chalk up yet another request for the API.
When using zabbix_sender have the trapper thread auto-create items for hosts if the items don't exist.
That way I can run discovery on the monitored host to determine what kind of software is running on it, and then send the appropriate items to the zabbix server without having to configure the zabbix server.
With 2,000 servers and probably 200-400 different small clusters of servers (SOA environment), the server running the software basically knows much better what its software is an how it should be managed than any central solution to managing this configuration. If we had a unified, consistent method of pushing software and a decent centralized configuration behind that, it might be possible to slave the zabbix configuration off the SCM database in some way, but we don't have that and I don't control that, so the decentralized state of the actually deployed applications is the best representation of the state which needs to be monitored. Right now I have tools which can be used to autodiscover applications running on servers and to setup cronjobs that spit information out to zabbix servers through zabbix_sender. But once that occurs automatically, it requires unscalable human effort to attempt to configure the zabbix server correctly (and templates don't really help when you're talking about an environment with hundreds of templates -- templates just turn O(n) in servers to O(n) in server groups).
And yes, if you give me an API, I can write something to do autovivification myself if you find it horrendously distasteful -- so chalk up yet another request for the API.

. Applications, services, hardware, etc ....
Comment