I was working on a Linux script to be called via CRON to auto-update Cisco interface related items for Zabbix 1.4.2. It would basically do a SNMPWALK on a given set of devices (members of a host group) and insert/update items as needed to reflect what the SNMP scan discovered. Then I realized that Zabbix had the auto increment feature in MySQL removed and thus such activity on the back end might/would endanger the integrity of the DB.
Even with the ifindex persistence option in most IOS images today Zabbix still wouldn't fine new interfaces like layer 3 VLANs and newly added linecards. We cannot afford the time to manually add these interfaces ourselves. Templates, while extremely useful for static SNMP OIDs like IP-MIB and TCP-MIB are not suitable at all to the changing nature of the ifindex table on a given Cisco switch or router. And we have hundreds of such devices. Some of them with quite a few unused ifindex values due to additions and deletions in production.
My question is what can I do to have Zabbix catch the full range of interfaces that a network device might have? Is going through the trouble of writing a back end script the right thing to do? Should we just create a template with 1000s of interface items and let the non-existent OIDs timeout naturally? I have not seen any part of Zabbix that would accommodate this very well. We already use Zabbix elsewhere so there is a strong desire to continue expanding what Zabbix does for us.
If I can find a proper and safe way to access the DB via a back end script I would certainly be willing to help others to are trying to do similar things.
We have a similar problem with our Cisco Content Switching Modules (CSMs). CSMs have vast amounts of data available via SNMP but those OIDs are dynamic too and thus would prove elusive for templates to capture.
Is there a programming API for Zabbix that would render all of this irrelevant?
Any comments and recommendations would be very helpful since I'm not sure what to do about this.
Even with the ifindex persistence option in most IOS images today Zabbix still wouldn't fine new interfaces like layer 3 VLANs and newly added linecards. We cannot afford the time to manually add these interfaces ourselves. Templates, while extremely useful for static SNMP OIDs like IP-MIB and TCP-MIB are not suitable at all to the changing nature of the ifindex table on a given Cisco switch or router. And we have hundreds of such devices. Some of them with quite a few unused ifindex values due to additions and deletions in production.
My question is what can I do to have Zabbix catch the full range of interfaces that a network device might have? Is going through the trouble of writing a back end script the right thing to do? Should we just create a template with 1000s of interface items and let the non-existent OIDs timeout naturally? I have not seen any part of Zabbix that would accommodate this very well. We already use Zabbix elsewhere so there is a strong desire to continue expanding what Zabbix does for us.
If I can find a proper and safe way to access the DB via a back end script I would certainly be willing to help others to are trying to do similar things.
We have a similar problem with our Cisco Content Switching Modules (CSMs). CSMs have vast amounts of data available via SNMP but those OIDs are dynamic too and thus would prove elusive for templates to capture.
Is there a programming API for Zabbix that would render all of this irrelevant?
Any comments and recommendations would be very helpful since I'm not sure what to do about this.
Comment