Hi,
we are currently evaluating how we will integrate ACI into checkmk. Our current plan is to simply use a “local check” using a Python script. Our approach is agentless on the ACI side. Checks are implemented using a poll mechanism from checkmk (like SNMP-GET) for important key performance and fault indicators, which are relevant for us. We’ll use the REST API of the APIC to poll the information, either raw using Python requests
or by using the Cisco ACI cobra
framework.
Some ACI classes, which we intend to monitor using REST-API queries along with specific filters:
-
faultInst
: To get ACI related errors
-
bgpPeerP
: BGP peerings
-
bfdSess
: BFD sessions
-
ethpm.DOMRxPwrStats
: Transceiver DOM threshold monitoring
…
In any case, if there should be a push based mechanism from APIC, our approach will be using websockets. Our design principle was that no piece of software, app whatever must be deployed in APIC to enable checkmk montoring, because interop testing will be difficult on both sides (APIC upgrade => check plugins, checkmk upgrade => check plugin). If using standard based mechanisms (REST-API or webhooks), the APIC only must be tested whether these methods works generically for all use-cases.
For the webhook documentation: Cisco APIC REST API Configuration Guide, Release 4.2(x) and Later - Using the REST API [Cisco Application Policy Infrastructure Controller (APIC)] - Cisco
=> Chapter “Subscribing to Query Results”