We introduced an interesting new feature into NetEye starting in version 4.13 that permits integrating vSphereDB with Tornado. By being able to process vSphereDB Events and Alarms with Tornado rules and actions, you can for example use vSphereDB to dynamically monitor Virtual Machines and Hosts.
Finding a way to send Alarms and Events stored in vSphereDB to Tornado was not trivial, but after an explorative analysis of the various potential solutions, we designed a method involving Telegraf, NATS and a new Tornado collector, and gave it the self-explanatory name Tornado NATS JSON Collector.
In this architecture, Events and Alarms stored in vSphereDB are read by two dedicated Telegraf services whose task is to transform them into JSON formatted messages, and then write them to the two dedicated NATS channels “tornado_nats_json.vmd-events” and “tornado_nats_json.vmd-alarms“.
The newly introduced Tornado NATS JSON Collector reads from these two NATS subjects, transforms any JSON messages into Tornado Events and then sends them to Tornado.
At this point the rules configured in Tornado can react to Alarms and Events and, for example, create objects in Icinga2 and set their status accordingly, using the Smart Check Result Tornado action.
Basing all communications between components on NATS, moreover, allows us to securely and transparently send to Tornado even those Alarms and Events which reside on a remote vSphereDB instance of a NetEye satellite. In this case, in order to send VMD alarms and events to Tornado (assuming NATS communication is already configured between master and satellite), it will suffice to run the Telegraf services on the satellites, and write the messages to the same predefined NATS subjects.