RationaleRHQ is currently very reactive on things. For example we run auto discovery on things after some time, but we are not able to take "hints" from the outside. To illustrate this: Users can insert removable media into a managed platform. If auto discovery happens to kick in while the media is mounted, we will see it in RHQ. When the media is ejected on purpose by the user, it will be dangling in inventory as unavailable. This has downsides:
In some systems, there is a notification mechanism where such system events can generate a notification. Otherwise scripts can "ping" other subsystems about this. Distinction to the Events we haveIn RHQ we have Events coming into the system. Currently those are only lines in log files, but in theory this could also be SNMP traps or other means. Two possible solutionsI currently see two possible solutions here - that don't need to close out each other. Agent based signalingThe agent gets another input listening on events (socket, snmp traps, logfiles, ...). When one comes in, it parses it and takes appropriate action. Most of the stuff needed here could be covered by the existing prompt commands. So when a new network interface or apache vhost comes into existence, we could trigger an auto discovery run in the agent itself. If the external source provides us with the type of resource, this could scan could be limited to the appropriate plugin. Correlation Unit based signaling (server side)In this scenario we are using the existing events (again with various input listeners, as in the other scenario). With the help of correlation units we can filter matching events and run operations on the agent accordingly (like we do with alerts today). InterfacingWe need to support different ways of signaling - we currently have log file parsing. But this is a bit hairy to set up, especially when the agent should get signaled. I definitively see a text based interface with simple commands, as system init scripts could simply use tools like "netcat" to signal when a resource is brought up and down. |