187
votes

For a more comprehensive list of monitoring tools and their features, check out this Wikipedia page.

As the question states, what are the most commonly used tools used for this task and what are their strengths and weaknesses?

4
  • What platform is your server running? Apr 30, 2009 at 8:19
  • 1
    My servers are running Debian Lenny, but the question is not primarily focussed on UNIX-monitoring alone as many tools will probably have some form of cross-platform support. Apr 30, 2009 at 8:24
  • Maybe they use different tools but from an overall system point of view you end up doing the same thing over and over again on the different systems. It's just a bit of scripting to squeeze out the last bit of data you want. I'd consider "tools" in this context the recording instance (monitoring server) not the actual plugin/script that spits out the data Jun 10, 2009 at 5:02
  • I like to also monitor the applications (performance, availability, etc). Monitoring tools seem to have a spectrum with their ability to monitor hardware on one end and their ability to monitor applications on the other. Hardware<-----+----->Application Oct 15, 2010 at 15:13

73 Answers 73

136
votes

I've used Nagios in the past with success. It's very extensible (over 200 add-ons), relatively easy to use and lots of reports. A negative would be the initial setup.

13
  • 10
    Nagios works great to monitor all types of host (Windows, Linux, Routers, Switches, etc.) I recommend using a configuration tool like fruity or Lilacto ease the configuration pain. NSClient++ on the windows boxes and nagios-statd on the linux stuff to monitor running processes, disk usage, etc.
    – TonyB
    May 1, 2009 at 23:27
  • Unfortunately Nagios requires an agent on Windows boxes - in the past I've found the agent notoriously prone to randomly dying. May 12, 2009 at 13:04
  • We looked at both Nagios and Zabbix for our monitoring. Zabbix won after a short evaluation, mainly due to ease of deployment and functionality (for example, Zabbix includes graphing as a core function while Nagios requires a plugin). I found configuring Nagios to be a pain.
    – stephen mulcahy
    May 27, 2009 at 16:14
  • GroundWork OpenSource have a network monitoring appliance that uses Nagios at it's core, and simplifies the setup/management
    – Rog
    Jun 1, 2009 at 2:40
  • 12
    There is a new nagios fork called icinga. It is nowhere yet, but their goals looks promising. icinga.org
    – cstamas
    Jun 1, 2009 at 17:34
70
votes

Cacti is a very good web-based frontend to RRDTool, providing very handy graphs and stats. RRDTool is the part that gathers data from multiple systems and monitors a wide range of technical data.

We're using that cacti/RRDTool solution to monitor Unix and Windows systems. We get a lot of useful metrics including load, CPU/RAM usage, HD space, users logged in, network traffic, running processes, and so on.

You will find more information on cacti on the What is Cacti? page.

1
  • Cacti is a fun solution that looks great and comes at a great price (free). However, setup of network devices is a PITA and was poorly documented. It might be better now but I wouldn't commit to it until you've done your research. May 5, 2009 at 3:05
57
votes

Personally, I love Munin which is very easy to install and to write plugins for as it has a very straightforward architecture. There are quite many plugins already around for all the purposes you could imagine, so you probably won't even have to write plugins in the first place.

It also provides beautiful graphs and the option to configure (very basic) alerts.

2
  • 2
    I'm a big fan of Munin too. It has support for integrating with Nagios (so you can run both), and support for all common flavours of unix. I don't think there's any support for monitoring a Windows node - however it's written in Perl, so while it may be non-trivial it should certainly be possible. May 1, 2009 at 6:35
  • 2
    @John. Windows node are supported via either munin-node-win32 that is a native munin node, or via SNMP just like any host. May 4, 2009 at 14:09
34
votes

Zabbix. It's open-source, and reasonably simple to setup and customise. We have a lot of custom monitoring scripts that feed into the zabbix server, but it takes care of centralising that data, displaying it appropriately, notifications (email, IM, SMS, twitter, etc), and so forth.

2
  • 2
    We're also using Zabbix and find it to be pretty powerful and configurable. We tested both Zabbix and Nagios and opted for Zabbix in the end because while Nagios seems to have a good reputation, it's a bit of a pain to install and a lot of functionality comes from plugins rather than featuring within the core application (graphing is a good example of this, you get it for free with Zabbix).
    – stephen mulcahy
    May 27, 2009 at 16:12
  • 3
    I prefer Zabbix because it flexibility in terms of graphing and mapping your infrastructure (in terms of availability) as well as a flexible way of monitoring.
    – Andrioid
    Jul 5, 2009 at 10:02
29
votes

I have been doing roll outs of Spiceworks at our company and we are finding it to be a great tool not just for monitoring servers but everything else on the network.

It does things like automatic inventory and custom monitoring to send you emails when there is a problem (EG: Printer is down to 10% of ink or hard drive of this server has 20%).

Its downside would probably be is density of information per computer, don't get it wrong it has A LOT of data per machine but for things like servers where you might want a lot of stats you might need to use another tool.

EDIT: oh did i mention its business model is based around it being free forever.

7
  • Spiceworks does a lot of awesome stuff - and FREE.
    – jcelgin
    Apr 30, 2009 at 10:19
  • 3
    SpiceWorks has a really large community that overlaps with ServerFault quite a bit as well. Going to be interesting to see the interplay between the communities. I use SpiceWorks as well. Awesome tool. Apr 30, 2009 at 19:31
  • Am now using this based on your recommendation. Excellent tool. May 29, 2009 at 16:07
  • We use it at our work. It is quite impressive. The inventory alone of hardware, not to mention software, is worth a look on it's own.
    – Terry
    May 29, 2009 at 21:52
  • Last time I used Spiceworks (version 3 something), it didn't have any way to add or modify hardware components such as monitors, video cards, etc. It would detect them, but often incorrectly. Thus I'm still using GLPI + OCSNG which I hate.
    – Boden
    Jun 16, 2009 at 21:33
18
votes

Smokeping not only checks the availability of various servers and services but also keeps track of their latency while providing easy to use, nice looking, and quick to display graphs.

Wide range of latency measurement plugins is available out of the box. If you know some Perl, it is easy to create your own ones for any exotic needs.

Large installations will benefit from Master/Slave System for distributed measurement.

Highly configurable alerting system will help you notice issues before they start affecting users or evolve into major outage.

Smokeping is free and OpenSource Software written in Perl by Tobi Oetiker, the creator of MRTG and RRDtool

2
  • Smokeping is good to see what your network is like Aug 18, 2009 at 9:49
  • Smokeping is amazing for visualizing latency.
    – James
    Sep 24, 2009 at 11:06
15
votes

OpenNMS is used where I work to monitor more than a thousand Linux machines. We monitor the hardware of each machine and the applications running on them.

4
  • +1 for OpenNMS, we also use this at work to monitor thousands of machines and interfaces. We have many different operating system, and we are able to monitor all of them using OpenNMS.
    – Steve K
    May 2, 2009 at 19:48
  • not my first choice but very useful
    – Adyt
    May 20, 2009 at 9:03
  • how is it with adding MIBs for new hardware?
    – slovon
    Jun 16, 2009 at 9:47
  • OpenNMS has a lot of snmp stats already in its default config so it can auto-discover and start graphing out of the box. New SNMP stats are pretty easy to add, just give a name for the RRD, the OID and data type and put it in a group for the type of device the stat applies to.
    – mtinberg
    Aug 3, 2011 at 20:07
15
votes

Zenoss Core is of some use, We are using it (for about a year) for lightweight monitoring of servers, net switches and UPSs.

Zenoss Core is an award-winning open source IT monitoring product that effectively manages the configuration, health and performance of networks, servers and applications through a single, integrated software package.

2
  • If you use the free version of Zenoss Core, be ready to do a lot of SNMP MIB tweaking. I also found that it steadfastly refused to gather operating system data on some of my servers, and is surprisingly difficult to set up for simple tasks like checking the contents of a Web page. May 4, 2009 at 19:58
  • Can sympathize with MIB problems, but web page checking can be done with Nagios plugins on Zenoss.
    – gimel
    May 5, 2009 at 5:15
12
votes

Nagios is great since it's free and there is plenty of plugin's for it. However the UI and config is very difficult.

It's exact opposite in pro's/con's which is also great is Microsoft System Centre Operations Manager (SCOM) which is not free, has less plugin's but setup and config are brilliant and easy.

I must admit if I was in a primarily Microsoft company, had very high reliance requirements (i.e. can't afford for monitoring to break) or had to think about getting developers to work with it then SCOM would be my recommendation over Nagios.

12
votes

I've used:

  • Nagios - requires some old-timey command line setup, not pretty, but sturdy and functional. It has been superseded by:
  • Zenoss - requires much less footwork to set up, has a commercial variant. Once running, the rest is controlled through a browser. Very powerful, but requires some MIB work if you use the free version.
  • Intermapper - commercial program, spendy if you have lots of nodes to monitor. Appears to be written in Java (for better or worse).
  • Spiceworks - haven't tried the latest version. Older versions needed a little more umph under the hood to get it to respond, but otherwise, it works nicely. Free version comes with nag ads.
2
  • We use Intermapper extensively.
    – sysadmin1138
    Jun 2, 2009 at 4:49
  • I use InterMapper as well. The console client is written in Java. The server is written in Python. Postgres is used as the backend database for data aggregation and reporting.
    – lsiu
    Feb 6, 2012 at 15:14
11
votes

We use AlertFox since a few weeks and are very happy it. It not only checks our uptime and performance, but also monitors shopping cart, user login and other critical parts of the website via transaction scripts (iMacros based).

For our internal monitoring (disk space etc) we use Nagios.

10
votes

PRTG Network Monitor - can't say enough great things about it. Awesome web front end and especially great for monitoring routers (bandwidth etc) and other devices through SNMP and measuring uptime for SLA's, etc.

www.paessler.com

8
votes

As a Windows person, MOM. We're looking to upgrade to Systems Center Operations Manager (SCOM) but won't need to until we start deploying Windows 2008.

2
  • I use MOM also. I love it and hate it at the same time.
    – spoulson
    Apr 30, 2009 at 11:44
  • SCOM is great monitoring platform for Windows based Enterprise environments. The real genius here is the Management Packs released by the Microsoft product groups themselves (this is part of the MS Common Engineering Criteria that every product have a SCOM MP within 90 days of RTM). Getting advice and knowledge from the product teams themselves can greatly improve the ability of an operations department to keep things running and healthy without bothering the more senior admins for every little thing. Aug 17, 2011 at 19:57
8
votes

For monitoring statistics (memory usage, load, mysql activity, apache activity, etc.) I use Munin. Out of the box it already tracks a lot of things and plots graphs for different time intervals (last 24 hours, last 7 days, last month, last year). Through plugins even more things can be monitored. It's output are HTML pages with pretty graphs.

Munin has a master/node architecture: nodes gather statistics on a server and the master stores the data and produces HTML and graphs.

I use Monit to keep track of running processes and to restart or alert me when certain configureable conditions arise (high cpu load, high memory usage, no HTTP response, etc.) Monit can also monitor more general things about a server, such as cpu load, memory usage, harddisk status or disk usage.

Monit needs to be configured for every service or hardware you want to monitor and how to respond when something goes wrong. The most used options are to do nothing, send an alert email or restart the service.

Monit is great when it works, but sometimes it fails to start, stop or restart a service and there is not a lot of diagnostic information available to tell you what went wrong. This means you don't know if the problem was with your service or with the Monit configuration, which runs with a cron-like minimal environment.

Both tools are available by default on most Linux distributions.

8
votes

I'm surprised nobody has mentioned logwatch or logcheck for linux servers - saves a tonne of time reading logs!!

1
  • Those tools wont really give you metrics and long term readability of your infrastructure trends. They are a nice addition but I wouldn't solely rely on them. Afaik "logwatch" is somewhat evil as it will only report about errors you tell it about as opposed to "logcheck" where you tell the tool known good stuff and it will report everything else. Jun 10, 2009 at 5:09
7
votes

I'm part of a operational monitoring upgrade project. We've had various vendors come onsite to present a few big dollar systems and mixed in some cheaper alternatives to compare.

One of which is Hyperic, which is also available as a free open source solution. I was impressed with its delivered capabilities and extensibility for custom agents.

1
  • While it is not easy on resources, it surely is a great monitoring tool! May 4, 2009 at 14:02
7
votes

I use Pingdom for monitoring my server. It sends me an SMS message when the server is unreachable.

7
votes

Our project uses Ganglia for our 100+ node clusters. One reason we use it is because it's the monitoring tool that comes with Rocks.

It's important for us to have very low overhead on each node so that as many resources as possible are available for computation. Ganglia gives us a good overview of the cluster and allows us to drill down to individual nodes if needed. Besides know what's going on right now, we can get a pretty good look at what's happened over the last hour, day, week, month, and year. The graphs of various statistics are basic and functional.

6
votes

It all depends what you mean by "monitor"!

  • Is it (system or service) available? We use nagios.
  • What is it doing? We use munin for linux servers, and cacti for just about everything else, even though it is a pain to configure sometimes...
  • What has it done? We use syslog-ng to concentrate syslogs in one place and then run a customized logcheck script daily to send reports via email. We are looking for something similar for Windows servers.
5
votes

A new entrant on the scene to check out for competing with Cacti and the RRDTool based solutions is Graphite (http://graphite.wikidot.com/)

RRDTool is replaced with a backing store called Whisper. The docs give a pretty good overview of why it differs and I really like the CLI for ad hoc graphing when investigating something.

4
votes

We use (and like) WhatsUp from Ipswitch for our relatively small Windows network. It is easy to setup, and relatively easy to manage, and knows how to deal with Windows servers as well as standard stuff.

For larger networks, non-Windows-oriented networks, or networks with lots of varied stuff, I heartily recommend OpenNMS. OpenNMS software if free and the company is more than happy to sell support and implementation services. It also happens to be run by a very sharp friend of mine from college!

4
votes

For those who don't like the Nagios web interface there is NPC, a plugin for Cacti that makes the Nagios UI available from within Cacti, but with better looks (ajax etc.).

It reads from a database provided by NDO2DB, which is a great way to have your infrastructure available from within a database for use in scripts and other tools.

4
votes

Currently we use PRTG from Paessler. It's excellent. No agents required, excellent Ajax web interface, historical logging, graphing, WMI, etc etc. There's a 10 sensor version available for free but we plonked down a couple of grand for the enterprise version. Money well spent.

4
votes

Hobbit - it's a faster better version of Big Brother (which seems to be alarmingly commercial these days).

http://hobbitmon.sourceforge.net/

2
4
votes

If you're in a hurry and want a quick tool to monitor your MS server then use performance monitor for windows, set up a counter log with custom monitoring template and a custome schedule (eg: collect data for 5 min every hour). Then download Microsoft's LogParser and Codeplex's Performance Analysis of Logs (PAL) Tool (http://pal.codeplex.com/) to crunch your counter log. PAL will generate a great documented report with links to possible issue solving documents/tools.

3
votes

I use a combination of Solarwinds, VMware server performance tabs, and custom scripts.

Solarwinds Orion Network Performance Monitor is what I use with our Windows sys. admins on my web servers. Still getting some useful app metrics running on it, but it has good information on basic box level stuff (disk, network, CPU).

For my VMware guests, I love the performance tabs.

For my Sun servers, when I need something that isn't available in Solarwinds (because our admin hasn't added it or what), I write custom scripts (usually in Perl) to monitor things like mirror health, swap usage, etc.

I'd like to get more onto Solarwinds, but there's only like 26 hours in a day (or so my boss believes) so I find that can be a tad limiting...

3
votes

We use OpsView, which runs on top of Nagios. The webUI helps us deploy new host monitor definitions without having to allow SSH access, provides public views, and records historical values. This is handy for provisioning and determining suitable baselines.

3
votes

Zabbix (http://www.zabbix.com) is good too and easier to setup than Nagios.

2
votes

Sorry to say but I've ended up using lots of custom scripts. While far from ideal I doubt there's a more common solution.

1
  • There will always be a need for custom scripts!
    – Techboy
    Apr 30, 2009 at 11:58
2
votes

We've written our own monitoring software. Our code isn't nearly as sophisticated as a commercial package, but we didn't need much functionality. It was easier to write our own than to investigate other packages and learn how to use them. The code does just what we want and it's easy to extend.

2
  • 2
    I think it's important to think through the implications of a decision like this. To write something from scratch may not be that much of effort - but maintenance down the road is a bear.
    – Adam
    Apr 30, 2009 at 18:29
  • I could imagine maintenance being a problem, but it hasn't been for us, even though we've run this system for years. Since the code base is small and familiar, it's been easy for us to add new functionality as needed. Maintaining a commercial solution could also be a problem over time, grafting on pieces from new vendors when the original product doesn't do everything you need, etc. May 1, 2009 at 2:32

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .