My impression about Merlin and Ninja

Mathieu Gagné mgagne at iweb.com
Sat Jul 18 01:35:00 CEST 2009


Hi all,

Some of us are under the impression that Merlin and Ninja will be the 
new default GUI and NEB module used in Nagios.

I therefore gave a try to both of them this week and I would like to 
share my impression and opinion about those.

Lets start with Merlin.

1) Lack of documentation

There's a serious lack of documentation about the project making it 
difficult for anyone to join and test Merlin.


1.1. We should be explained the terminology used by Merlin

What is a NOC, Poller and Peer? What are they in the big picture and how 
do they interact with each others?


1.2) We should be provided examples of setup

How can Merlin be configured and used? Clear working examples should be 
provided, including schema and network information (hostname/ip).

Over the years, I tend to be more and more a visual person. The backend 
illustration is nice (http://www.op5.org/community/projects/merlin) but 
not enough for me to understand how can multiple Merlin enabled Nagios 
can interact with each others and what I should be expecting from them.


1.3) Configuration propagation

- How is it propagated? Do I have to rsync them? Is it propagated or 
just imported to the database for status aggregation purpose?

- How does Merlin deal with name collisions? Does it assume "localhost" 
from "nagios1" is the same as the one on "nagios2"?

All those questions would probably be answered if real life examples 
were provided.


1.4) Nagios instance

Was the NDOutils concept of "nagios instance" dropped? I can see this in 
object_importer.inc.php:

$obj['instance_id'] = 0;
$obj['instance_name'] = 'Local Nagios/Merlin instance';


2) Installation process to be improved

The installation process isn't trouble free.

I installed a MySQL server on a remote host. There's unfortunately no 
way to tell the install script to use a remote MySQL server. It assumes 
MySQL is installed on the local host and can authenticate using the 
password-less root account. We should be given a choice and asked 
authentication informations. (host,port,user,pass)


3) Using PHP for shell scripts

I used to program PHP for several years in the past. PHP is nice and 
easy to learn. However having to install PHP on a monitoring server just 
so a single shell script can import a Nagios configuration isn't really 
cool. I would prefer Perl or Python which are usually already installed 
on the server.


And now with Ninja.

1) Installation process

The installation process isn't trouble free with Ninja neither.

1.1. I installed a MySQL server on a remote host. I can't specify a host 
on which I want to configure the database. I had to execute each part of 
the installation process separately.

1.2. Error reporting isn't user friendly. I was prompted with this error 
during the installation process:

sh: -c: line 0: syntax error near unexpected token `newline'
sh: -c: line 0: `/usr/bin/php /usr/local/ninja/index.php 
cli/insert_user_data <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 
Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> '

An error occurred and this script will terminate. Too bad...

It is in fact the first line of a huge backtrace from Kohana telling it 
can't connect to MySQL.


2) Interface

2.1) At first glance, the interface is nice. The dashboard and the use 
of widgets is a good idea.

However the interface is very pale and seriously lacking colors/contrast.

Your answer would be: "Ninja supports themes so improve it yourself". 
While it's a valid answer, it certainly won't satisfy anybody as it 
requires time and expertise which most of us don't have. And I would 
personally consider this answer as a loophole so you don't have to 
review/change the theme to answer most people concerns and needs.

To justify my opinion, let me give you an example. With the current CGI 
interface, when a server is marked as DOWN, we get a WHOLE red line to 
draw our attention. This is great because I know in seconds where to 
look and what is asking my attention.

However, with Ninja, we only get a 16x16 icon which doesn't draw any 
attention. It's even worst when you are showing the interface on a big 
screen in a NOC. Small icons simply don't do the job compared to an 
awesome huge red line.

IMO, state should use background colors instead of icons and commands 
should use icons. (pretty much like Nagios does today)


2.2) State Information and Commands

Both sections are overlapping and some state information are hidden 
because of that.


2.3) Typos

I saw some typos here and there.

- "Notification enabled" instead of "Notification disabled"
- Icon filenames: nofity-disabled.png => notify-disabled.png
- Etc.


2.4) Errors

Anyone got them so far?

session_start() [function.session-start]: ps_files_cleanup_dir: 
opendir(/var/lib/php5) failed: Permission denied (13)

Invalid argument supplied for foreach()
application/controllers/status.php [675]:
Status_Controller->group_summary( service, all )
Status_Controller->servicegroup_summary(  )


3) Documentation

It should be clearly stated that Nagios needs to be running on the same 
host as Ninja to be able to use commands. Otherwise you will be getting 
those errors:

fopen(/usr/local/nagios/var/rw/nagios.cmd) [function.fopen]: failed to 
open stream: No such file or directory

-------------

I hope my message won't discourage you. I guess most of us are curious 
about Merlin and Ninja and have big hopes for them.

I just wanted to give my first impression. :)

--
Mathieu

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge




More information about the Developers mailing list