The Merlin project, or Module for Effortless Redundancy and Loadbalancing In Nagios, was initially started to create an easy way to set up distributed Nagios installations, allowing Nagios processes to exchange information directly as an alternative to the standard nagios way using NSCA. When starting the Ninja project we realised that we could continue the work on Merlin and adopt the project to function as backend for Ninja by adding support for storing the status information in a database, fault tolearance and some other cool things. This means that Merlin now are responsible for providing status data, acting as a backend, for the Ninja GUI.
Brief description of the Merlin project
Merlin consists of
merlin-mod: Responsible for jacking into the NEBCALLBAC_* calls and send them to a socket. If the socket is not available the events are written to a backlog and sent when the socket is available again.
merlind: The Merlin deamon listens to the socket that merlin-mod writes to and sends all events received either to a database of your choise (using libdbi) or to another merlin daemon. If the daemon is unsuccessful in this it writes to a backlog and sends the data later.
merlin database: This is a database that includes Nagios object status and status changes. It also contains comments, scheduled downtime etc.
Picture illustrating the above
Download the latest stable release of Merlin
- Browse and download the code from git.
Check out the How-To and README file for instructions on how to install Merlin.
Get involved - Contribute to the Merlin Project
It is easy to get involved in the Merlin project and to contribute!
- Start using the code and if you like what you see, help by spreading the word on blogs and forums
- Post your comments and feedback here
- Sign up at the op5-users mailing list to join the conversation and help other users by ansering questions.where you can follow the project and contribute your code and bugfixes. (The mailing list is it's not a project specific).
- If you find a bug you can report the bug here.
- If you miss any documentation or know how to solve aundocumented problem you can write documentation at op5 community wiki.
Here is the available information about Merlin
The changelog for Merlin is mostly kept in git at the moment. Check it out here.
Merlin version 0.5
- Cross-host event transportation now works again, so clusters and failover solutions are once again possible.
- Object configuration is automagically imported when the module connects.
- State-retention now works even the first time Merlin loads, since the import program also imports the status log, and thus primes the database with correct status information.
- The last_state_change field for hosts and services *should* get updated properly now, making state duration possible to calculate in the GUI.
Many thanks to Tom Welsh and Mathias Flacke who have both helped out with testing and provided invaluable feedback from a very early stage. Kudos, guys :-)