In Netbox, we now have a PuppetDB report, that validates the Netbox data as have been entered by DC Ops folks against what the systems themselves self-report (see T212526 for more). It has been very valuable to find errors like typos, wrong statuses etc. We have ideas to add more checks into them (see the latest at T220422).
I propose to create a similar thing to validate network devices. We should at least validate:
- the Status field (the ones that should be online are, the ones that are not aren't);
- that the recorded/self-reported serial numbers match
- that the recorded/self-reported models match. Note that I fixed half a dozen of wrongly-reported models in the past few days (e.g. EX4200-24Ts documented as EX4200-48T, switch models that did not exist) even in relatively newly bought gear, so this is not a theoretical issue.
- bonus points if we also cross-check inventory items (cf. T221506)
While we could do this by polling e.g. SNMP, I think the easiest and most appropriate way to do this would to poll LibreNMS for this information. It looks like LibreNMS has an API so we may not have to resort to polling its database. Open to implementation ideas, though :)