Short Comparison of some Network Monitoring Tools (en)

In February 2006 I looked for some open source network monitoring tools because I wanted to monitor my internet servers. Therefore I looked into three different open source tools: Argus, Nagios and Zabbix. Here I wanted to note why I ended up with Argus.


Nagios is certainly the most widely used and best known network monitoring tool. I has many different plugins in order to monitor everything that can be monitored. This was my first choice in the beginning because I thought that the huge user base would provide me with many plugins and good support. There are even precompiled packages for CentOS (RHEL clone). To my disappointment I was unable to get the web interface working in about one hour of work. Google was not helpful at all so I gave up finally. One thing I didn't like was that the CGI "scripts" are compiled programs. This makes it much harder to find errors like the ones I experienced and I think that CGI programs written in C/C++ are quite insecure as it is difficult to do secure string processing in this languages.

  • Update 2006-05-05: Today Heise one published a story (German only) that multiple buffer overflows where found in Nagios 1.4 and 2.3.
  • Update 2006-05-16: They didn't get the fix right the first time (which reaffirms my prejudices against C/C++ programs), so there is another security hole in Nagios.


After my Nagios disappointment I tried Zabbix. Zabbix has compiled components, too but the web interface uses PHP and a mySQL database. Unfortunately the web interface seemed to be overly complicated to me. Adding new services to monitor involved several different pages, I couldn't find a nice status overview ("red/green lights") and all configuration goes into a mysql database so it was difficult to set up several monitoring hosts with the same configuration. Furthermore there was not much documentation how to monitor Asterisk servers.


At last I tried Argus. Argus is written completely in Perl. The web interface looks very simple and "old" but it is immediately obvious which services are down. The configuration uses a traditional unix configuration file and it was easy to add different services to monitor. One minor problem was that there was no RPM for CentOS so that I had to make one myself (download). A problem not yet solved is that there is no templating mechanism to create "stylish" web pages.


So far I am using Argus on some test servers and the monitoring works as expected. Of course you should make your own comparisons but Argus is certainly a software to consider.