Slashdot Mirror


What Would You Want In a Large-Scale Monitoring System?

Krneki writes "I've been developing monitoring solutions for the last five years. I have used Cacti, Nagios, WhatsUP, PRTG, OpManager, MOM, Perl-scripts solutions, ... Today I have changed employer and I have been asked to develop a new monitoring solution from scratch (5,000 devices). My objective is to deliver a solution that will cover both the network devices, servers and applications. The final product must be very easy to understand as it will be used also by help support to diagnose problems during the night. I need a powerful tool that will cover all I need and yet deliver a nice 2D map of the company IT infrastructure. I like Cacti, but usually I use it only for performance monitoring, since pooling can't be set to 5 or 10 sec interval for huge networks. I'm thinking about Nagios (but the 2D map is hard to understand), or maybe OpManager. What monitoring solution do you use and why?"

56 of 342 comments (clear)

  1. I Name My Devices After Al Qaeda Members by Philip+K+Dickhead · · Score: 5, Funny

    Publish them in DNS, and have the NSA monitor them for me!

    --
    "Speaking the Truth in times of universal deceit is a revolutionary act." -- George Orwell
    1. Re:I Name My Devices After Al Qaeda Members by just_another_sean · · Score: 2, Funny

      I was going to suggest he should ask the UK government, but I like your idea better.

      --
      Creationist Textbook Stickers Declared Unconstitutional by CowboyNeal
    2. Re:I Name My Devices After Al Qaeda Members by Philip+K+Dickhead · · Score: 5, Funny

      The only drawback to this comes in the form of UAVs.

      --
      "Speaking the Truth in times of universal deceit is a revolutionary act." -- George Orwell
    3. Re:I Name My Devices After Al Qaeda Members by Hurricane78 · · Score: 4, Funny

      No need to. We are doing it anyway.

      Your NSA.

      --
      Any sufficiently advanced intelligence is indistinguishable from stupidity.
  2. Hyperic HQ by Anonymous Coward · · Score: 2, Informative

    Hyperic HQ may be worth checking out.

  3. OpenNMS by Anonymous Coward · · Score: 5, Informative

    That's all you should need. For 5000 devices I don't know that any of the options you listed would be appropriate.

    OpenNMS is much more than monitoring, but I think that you'll appreciate the other features as well.

    http://www.opennms.org/

    Enjoy.

    1. Re:OpenNMS by mu51c10rd · · Score: 4, Interesting

      I use OpenNMS as well. I actually migrated off of Nagios to OpenNMS. Tried out Zenoss and Cacti as well. While any of these are better than OpenView IMHO, I liked OpenNMS's full suite of functionality without having to pay for the 'commercial' version.

    2. Re:OpenNMS by Cato · · Score: 4, Insightful

      I've only tried OpenNMS. It looks very powerful, but wasn't at all hard to get installed and configured on Ubuntu - it figures out the type of node it has discovered and shows useful data through SNMP, and can also do uptime monitoring, and is generally very scalable and configurable if needed.

    3. Re:OpenNMS by Euan+Buchanan · · Score: 3, Informative

      OpenNMS offers excellent training and support. My company flew Tarus down to Autralia for a week where he implemented OpenNMS across our four sites in the first day, then spent four days with myself and a colleague training us on its features. The price, including business class flight from America (it's a lonnnng flight and we wanted him semi-conscious on arrival) was absolutely trivial when compared against just the licensing costs of a comparable proprietary product such as HP OpenView. Highly recommended.

    4. Re:OpenNMS by Ranger+Rick · · Score: 2, Informative

      That would definitely be a bug. I'll look into it... :)

      --

      WWJD? JWRTFM!!!

    5. Re:OpenNMS by mysidia · · Score: 2, Insightful

      MRTG is kind of limited. I would suggest using Cacti instead; it provides useful features like graph zooming and detailed RRD configurations like number of DSes, number of steps and rows per DS in a RRD.

      I would try installing the opennms software yourself, and don't rely on that clearly broken demo of the software. The breakage you are seeing of the demo is not at all representative of what the software is normally like.

      OpenNMS is not bug free, but neither are any of the viable competitors close to 'bug free'. When setup properly and JVM/memory settings tuned, including proper setup and tuning of the PostgreSQL database per PostgreSQL best practices, with physical resources suitable to the load (e.g. about 4gb of physical RAM and 2x2Ghz CPU plus 80gb disk space to monitor 3000 interfaces), polling each service every 30 seconds, OpenNMS runs like a champ.

      It's pretty darn stable. And vastly outperforms other Open Source solutions.

      I've hardly ever seen exception conditions like that one, and generally, it would just be the webui having problems.

  4. A more interesting question by drsmithy · · Score: 5, Insightful

    What limitations exist in current solutions that justifying developing a new one from scratch ?

    1. Re:A more interesting question by Meshach · · Score: 3, Insightful

      What limitations exist in current solutions that justifying developing a new one from scratch ?

      Exactly! Too often people just jump in and redo everything without actually investigating what needs to be fixed. Quote from George Santayana "Those who cannot learn from history are doomed to repeat it,' seems very appros here.

      --
      "Maybe this world is another planet's hell"
      Aldous Huxley
    2. Re:A more interesting question by glassware · · Score: 3, Informative

      He said he was asked to "develop a new solution" - which most likely means he gets to pick and choose what to implement, whether parts of it are custom developed or off the shelf. I would imagine a good solution would be a core product plus custom built extensions for the features he needs that the product doesn't implement itself.

    3. Re:A more interesting question by Krneki · · Score: 2, Informative

      Exactly, I need a good core product that I'll evolve over time.

      --
      Love many, trust a few, do harm to none.
    4. Re:A more interesting question by abigor · · Score: 3, Interesting

      The big questions are:

      Will your solution need to support snmp v3?

      Do the devices you talk to have published oids?

      Do you need source code to extend it?

      If yes to these, OpenNms is a great bet.

    5. Re:A more interesting question by ArsonSmith · · Score: 2, Funny

      Yea, from scratch, first I'd develop the tools needed to mine the raw materials of silicone, iron, and other needed elements. Then I'd refine them and produce the needed components for memory and processors and storage. as well as develop the new networking, power, form factor etc... Then start working on the boot code and a core kernel, hmm should it be micro/macro or hybrid...? Then I'd start working on interface tools or user space or something along those lines. Once I got this part done I'd start gathering information on what was needed to be monitored. Then develop the required protocols to monitor those things.

      On second thought maybe it'd be easier to not start from scratch and build on the tools others have created as a basis and customize from there.

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
    6. Re:A more interesting question by timeOday · · Score: 2, Insightful
      If only you read more than the first sentence of TFSummary: "I like Cacti, but usually I use it only for performance monitoring, since pooling can't be set to 5 or 10 sec interval for huge networks. I'm thinking about Nagios (but the 2D map is hard to understand), or maybe OpManager."

      Obviously by "from scratch" he means his company has nothing in place he has to build on; he is free to build a system on whatever tools he likes.

  5. Before I get flamed... by jwilki1 · · Score: 4, Interesting

    I am going through this right now and am using and have used all the above mentioned solution. We are leaning towards System Center Operation Manager. http://www.microsoft.com/systemcenter/operationsmanager/en/us/default.aspx If you had told me 6 months about that it would be the way to go, I would have said over my dead body, but it has come a very long way in terms of usability and ease of setup.

    1. Re:Before I get flamed... by Anonymous Coward · · Score: 2, Informative

      SCOM R2 integrates native unix and linux agent , supported systems are :

      HP-UX 11i v2 and v3 (PA-RISC and IA64)
      Sun Solaris 8 and 9 (SPARC) and Solaris 10 (SPARC and x86)
      Red Hat Enterprise Linux 4 (x86/x64) and 5 (x86/x64) Server
      Novell SUSE Linux Enterprise Server 9 (x86) and 10 SP1 (x86/x64)
      IBM AIX v5.3 and v6.1

      For application awareness, you can check bridgeways management packs .

    2. Re:Before I get flamed... by blincoln · · Score: 3, Informative

      As an aside, SCOM is a good product, but be sure you have (and are willing to invest) the time to configure it to match your environment. Just because it's also made by MS and has management packs for all of their products doesn't mean you can just flip the on switch and have everything monitored. You will almost certainly be flooded with useless alerts, and not alerted for things that you do care about.

      --
      "...always new atoms but always doing the same dance, remembering what the dance was yesterday." -Richard Feynman
    3. Re:Before I get flamed... by Krneki · · Score: 3, Informative

      I saw SCOM 1 year ago, the hardware requirement for just the client was higher then the whole Cacti server.

      Unless they start to optimize the mess I'm not sure I want to use it.

      --
      Love many, trust a few, do harm to none.
  6. Zabbix by ender- · · Score: 5, Informative

    You can also look into Zabbix. It's open source, and has Enterprise support available. I haven't used it yet, but as soon as I have a spare moment to breath I intend to test it out for use in my environment.

    1. Re:Zabbix by TooMuchToDo · · Score: 5, Informative

      We use Zabbix in a production environment with 2500+ servers and tens of thousands of monitored items. The database will get big (currently at 150GB) but everything works like a champ, monitored at 1min intervals.

    2. Re:Zabbix by BlueBlade · · Score: 4, Informative

      We're using Zabbix at work and I'm doing daily backups of the database with a simple mysqldump command. Since the tables are InnoDB and not MyISAM, you can use the --single-transaction switch. That way, it takes a virtual snapshot of the db at the start of the backup process and the writes can still keep going (they are still happening but they aren't commited until the transaction finishes). Granted, our DB isn't that big (10GB only), but it's been working fine and restore tests also seem to work fine.

      Here's the daily cron:

      mysqldump -u blah -pblah --single-transaction --opt --skip-lock-tables zabbix | gzip > /backup/zabbix_db.sql.gz

      --
      Religion is the best example of mass psychosis
  7. GKrellM by Areyoukiddingme · · Score: 5, Funny

    You can pry my GKrellM from my cold, dead hands!

    Yeah, for 5000 devices, the displays start to take up quite a bit of screen space, but that's what video walls are for!

    *cough*

  8. The Dangers of averaging by Anonymous Coward · · Score: 5, Insightful

    MRTG does it right...most of the others do it wrong
    When rolling up a days worth of data (averaging), you loose the peak information on most monitoring systems
    So your 380Mbps peak that you had an hour ago is fine on today's graph
    But tomorrow, when you look at "yesterdays" graph...the peak is down to 100Mbps
    and next week, when you look at "last weeks" graph...there's a little 50Mbps peak

    Damnit... I want to keep information on my peaks for capacity planning!

  9. Zenoss by KerberosKing · · Score: 4, Informative

    I was really impressed by Zenoss, which has all the slick features that cost the earth from vendors like HP for Openview. You get automatic discovery, CMDB inventory, availability monitoring, alerting, and performance graphs all in a web portal.

    You get open source, commercial support, and a good community of users and plug-in developers. The best of both worlds IMHO.

    1. Re:Zenoss by NuclearRampage · · Score: 2, Interesting

      A little tough to setup new SNMP devices, I thought, but overall a great product. Even the free version gets you quite far.

    2. Re:Zenoss by rawler · · Score: 5, Informative

      ZenOSS may be great, but a word of warning. We've had 3 failed attempts at implementing it in our shop. What we tried to achieve was mainly host and service-monitoring, with some slight network-monitoring on the side. Nothing fancy, just some 20 hosts, maybe 30 network-devices, and a variety of services.

      One of the major parts we've found missing in most open-source solution was proper event-management (recieving syslog + snmp traps, and apply some intelligence to it regarding flow control, dispatching, archival and that stuff.) ZenOSS is on paper, and throughout the initial evaluation one of the best open source tools to do this.

      However, during our three attempts to get it up and running, we've always encountered some major obstacle (usually after a while of operation), forcing us to start all over from scratch. The problems we had was always in the same category, strange and unexplainable errors, often hard to reproduce, and in general it resulted in a very flaky experience. Some of the problems have been service-checks showing both false positives and false negatives, and in the last problem ZenOSS refused to import new SNMP MIB:s, complaining about some IP-address that could not be found anywhere in the config, and grepping ultimately found the IP to be only present somewhere in the opaque zope-database, where evidently it could not easily be removed, nor even found exactly what the ip-address was for. (It was something auto-discovered in a remote network segment out of our control, but advertised throughout the routers.)

      So, while ZenOSS can do all kinds of things, and does a LOT of things really well, it's extremely complex, not in all parts on solid foundation (such as all network objects in a non-accessible Zope-database that the devs themselves recommends not touching since it may upset things more). If you plan on implementing ZenOSS, I would not go without the support, which I assume is great, since there seems to be quite some dark pits to fall in on your own.

      I dont know how come we had so much obstacles and strange problems when others seem to have a smooth ride. Maybe one explanation is what were the final nail in the coffin for ZenOSS in our deployment. When I started asking around about these problems (and ZenOSS has a really helpful community, no problems there), I realised that many users claimed to have gotten into similar problems that we had, but their solution were to just keep daily backups, and revert to a backup when they ran into these problems. For us, the monitoring data is basis for a lot of 3d-party agreement, and loosing even days worth of monitoring and logging is completely unacceptable due to these reasons. We do backup everything, but in case of rare disasters, and we must be able to rely on the monitoring system giving us a clear view through those disasters.

    3. Re:Zenoss by Ranger+Rick · · Score: 4, Interesting

      And this is why we (OpenNMS) don't play the per-node. It's not any harder to run OpenNMS when managing 1000 nodes than when managing 100, you only need to scale hardware appropriately. Per-node pricing is an artificial limitation.

      We also don't play the "you get a special price behind closed doors" game, our support prices are public, fair, and the same for everyone -- and that's only if you need commerical support -- our prices are $0 if you don't need or want support.

      If you do the math, it's $0 for the software, plus $14,995/year for support for any number of nodes, and the software is 100% open-source and fully capable of replacing or exceeding OpenView. ;)

      --

      WWJD? JWRTFM!!!

    4. Re:Zenoss by hotfireball · · Score: 2, Insightful

      Zenoss also provided terribly wrong RPM packaging. I don't know how they are now, but exactly 1 year ago it was that wrong. For example, they could simply wipe out some files in /etc where your setup is already done but without any warning or notice. So all the time it is better to setup it from source.

      I've also look at Zabbix and got an impression that it is sort of like a bicycle with a squared wheels. Same to Groundworks (a re-packaged Nagios) and Nagios itself. The only thing I find really worth to pay attention at: OpenNMS. So far it also has its own gotchas, but better than others.

  10. A couple of other options by AFresh1 · · Score: 3, Informative

    I use Nagios and some custom rolled scripts myself.

    For some other options, Nagios has now been forked, so if that is "close" to what you want, you may want to contribute to Icinga.

    Reconnoiter also looked pretty kewl, but they haven't released anything yet, but it looks like they are planning it to be very scalable.

  11. Nagios Might Work by hax4bux · · Score: 2, Interesting

    I spent last year converting a shop from OpenView to Nagios. They were in the same neighborhood as you (~5000 devices).

    If you do not like the Nagios UI, you could create something else. The native Nagios UI is CGI based and implemented in C. The documentation is good and the sources are well commented.

    The hardest decision about Nagios is how to implement the monitoring. I went w/SNMP (polling, not traps) for the most part. Sorting out all the Nagios plugins is something of a chore and many of them seem incomplete and abandoned.

    MRTG also integrates w/Nagios, which can be useful.

    Good luck.

  12. ZenOSS all the way by Midnight+Warrior · · Score: 5, Interesting
    We use ZenOSS exclusively at work and have enjoyed every minute of it. Pro's include:
    • 2D map with status of all nodes or submaps, organized by network
    • Application monitoring, with more advanced maps available for purchase (Oracle, JBoss, Cisco) for those things you already paid a lot of money for
    • Performance monitoring via SNMP or other data sources using RRDtool internally which includes graphs linked to each other during zoom in/out or panning
    • Nagios plugins already do some of the heavy lifting
    • Built-in support for watching Windows servers (any metric accessible via WMI)
    • Access control using at least LDAP and Active Directory
    • Secondary data collectors for those networks which are too big for just one central source
    • Highly customizable through Python
    • It has so, so much more than pathetic commercial solutions like OpenView

    Cons:

    • You have to keep your eye on the back end database
    • It still takes a long, long time to tune it to remove noise events
    • If you don't know Python, it can be tough in a few places
    • Proper support is not cheap
  13. The mistake by vlm · · Score: 3, Insightful

    The mistake is trying to monitor thousands of devices on a 2-D map. I'll look pretty to the suits, but be useless for the users. Nothing but endless slow clicky clicky clicky.

    Give them a text screen of whats currently down ... that'll work.

    --
    "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
  14. Similar Slashdot thread by Cato · · Score: 2, Informative

    Here's a similar thread from a while back that covers most of the options: http://linux.slashdot.org/article.pl?sid=07/03/05/1812247

  15. Roll you own... by hofmny · · Score: 2, Interesting

    I have looked at Cacti, Nagios, and a few others, but I think rolling your own is easy enough and gives you the best flexibility. You could also use Nagios, or others, for example, and simply pull the results into your own system.

    I built and managed a software system for me previous employer called the SMS (Server Management System). It basically tracked 50 of our web servers, database servers, and Endeca (full text search) farms at data centers spread around the country. It was pretty simple.

    The system did push and pull operations. First, the system was built in PHP.
    In order to push commands to the servers I used PEAR SSH2 class for communication when it became stable. Another option (and what I did back in 2003) was to use exec and other command line functions in PHP in conjunction with a SETUID script (written in C) -- which gave the command line output from PHP "true" rootly powers. The problem was I had to enter a password for each server I wanted to connect to, and the PHP functions couldn't handle real time input/output, so I designed the system to work by creating an SSH2 key pair on my master monitoring server and put it's public key on each of our external servers for passwordless SSH.

    The pull part of the system simply had a PHP script running on a cron per server, that would deliver information about the health of the server, its running processes, etc, to the main SMS server every 5 minutes. All load activity for all servers was logged as well to MySQL. The push operations were used to update those scripts, as well as restart Daemons on command, clear cache (such as after we did a database update), etc. It was a pretty robust system and really automated the functions of our company, to where we could perform a FULL Database Update to our 30 web servers simultaneously (using PHP and fork()), clear all cache, etc, in under an hour. We would the monitor the servers using the SMS's main screen which showed real time server stats (updated every 5 minutes, or you could "force" a push operation to get the status). If we needed to rollback the update, that was a simple mouse click away too.

    I also had a hidden screen that let me run any series of commands as root on any number of servers. Everyone objected to it but I convinced my boss to let me put it in. All of our servers were a mouse click away from being "rm -rf *" 'ed. ROFL. Anyway, I hope my little story about my system helps you out, in either avoiding what I did (LOL) or by giving you ideas.

  16. Re:not sure if this is helpful, but... by Krneki · · Score: 2, Informative

    I use Cacti for this and it's fantastic.

    --
    Love many, trust a few, do harm to none.
  17. I Hate War Rooms by afabbro · · Score: 4, Interesting

    I really don't like the "War Room" video wall concept. I suspect such walls are made to look cool rather than to monitor.

    What you want in large-scale monitoring is:

    • The ability to map complex relationships. I don't want 50 alerts that I can't reach host X, host Y, etc. I want one alert that I can't reach router A. Even better, I want to map things so that I can say "end user application XYZ is not accessible in Kansas due to X being down".
    • I want my monitoring solution to understand HA and service degredation. I want programmable rules about what happens when X is down or Y is down.
    • I want many options for escalation. If X doesn't acknowledge, try Y after 15 mins, etc.
    • I don't ever, ever want a pager to explode or be flooded. A problem should be noticed once and tracked. There should be no pager blizzards.
    • Of course, I don't want this thing relying on my mail system for paging because, of course, my mail system could go down. An ability to dial out if the mail system is down would be nice.
    • I want agents, hooks, interfaces, third-party add-ons, and every possible way of tying something into the monitoring system. I don't want dumb limitations like "you can only get an exit code from the OS and it acts on that" or something. For big monitoring, it's almost mandatory that some kind of API for agents is exposed.
    • I want "I'm working on it, stop paging" blackouts. I want to be reminded to lift them.
    • I want it to tie into my change-management system. If I open a ticket and say that server X is down for 2 hours on this date, I don't want to have to remember to black it out.
    • I want reports. I don't care about silly little charts and graphs, but a history of everything that has every gone wrong with device Y would be nice.
    • I want more info on my page-receiving device than just "HOST X IS DOWN". I want context so I can decide if I have to drop everything immediately.

    Etcetera. These are some of the things that make sane large monitoring systems. I don't think any open source product has all of them, alas.

    --
    Advice: on VPS providers
    1. Re:I Hate War Rooms by rossz · · Score: 2, Informative

      The ability to map complex relationships. I don't want 50 alerts that I can't reach host X, host Y, etc. I want one alert that I can't reach router A. Even better, I want to map things so that I can say "end user application XYZ is not accessible in Kansas due to X being down".

      When you have your parent/child relationships and your dependencies set up properly, Nagios does this very well. A properly configured Nagios system will alert you only for that switch that died, not for the 200 services behind that switch that you can't reach.

      I want my monitoring solution to understand HA and service degredation. I want programmable rules about what happens when X is down or Y is down.

      There's a 'cluster" plugin for nagios available, but I consider it a hack for something that should be inherently supported.

      I want many options for escalation. If X doesn't acknowledge, try Y after 15 mins, etc.

      Nagios could be improved here. I can set it up to fire off a script when a hard failure is detected and do something different, e.g. HUP apache, but there isn't a way to directly configure alternative test options.

      I don't ever, ever want a pager to explode or be flooded. A problem should be noticed once and tracked. There should be no pager blizzards.

      You can configure Nagios for how many times you want an alert to fire.

      Of course, I don't want this thing relying on my mail system for paging because, of course, my mail system could go down. An ability to dial out if the mail system is down would be nice.

      Supported in Nagios.

      I want agents, hooks, interfaces, third-party add-ons, and every possible way of tying something into the monitoring system. I don't want dumb limitations like "you can only get an exit code from the OS and it acts on that" or something. For big monitoring, it's almost mandatory that some kind of API for agents is exposed.

      That would require specialty software be running on the system being monitored. Not exactly feasible when dealing with every type of equipment imaginable.

      I want "I'm working on it, stop paging" blackouts. I want to be reminded to lift them.

      Every monitoring system I've used supports this.

      I want it to tie into my change-management system. If I open a ticket and say that server X is down for 2 hours on this date, I don't want to have to remember to black it out.

      That would require some kind of custom hook into your ticketing system. The monitoring system needs to have an open API for injecting commands so that anyone could write their own script. I know Nagios can do this. I don't know about others.

      I want reports. I don't care about silly little charts and graphs, but a history of everything that has every gone wrong with device Y would be nice.

      Nagios does reports, but I feel they have lots of room for improvement.

      I want more info on my page-receiving device than just "HOST X IS DOWN". I want context so I can decide if I have to drop everything immediately.

      This would require information you suggested above regarding the API.

      I'm a big fan of Nagios, but realize it has room for improvement.

      --
      -- Will program for bandwidth
    2. Re:I Hate War Rooms by turbidostato · · Score: 2, Informative

      "What you want in large-scale monitoring is:"

      Let's see:

      "The ability to map complex relationships. I don't want 50 alerts that I can't reach host X, host Y, etc. I want one alert that I can't reach router A."

      Nagios do this. I know, I configured mine that way.

      "Even better, I want to map things so that I can say "end user application XYZ is not accessible in Kansas due to X being down"."

      Nagios can do that, while I never deployed it that way.

      "I want my monitoring solution to understand HA and service degredation."

      Nagios do this. I know, I configured mine that way.

      "I want programmable rules about what happens when X is down or Y is down."

      Don't know what exactly do you mean, but if you mean the ability to automatically trying to recover a failing state, I think Nagios can do that. Not that I would want go that path: I'm quite averse to "self-healing" systems and prefer early and meaningful alerts and then push brains into it.

      "I want many options for escalation. If X doesn't acknowledge, try Y after 15 mins, etc."

      Nagios do this. I know, I configured mine that way.

      "I don't ever, ever want a pager to explode or be flooded. A problem should be noticed once and tracked. There should be no pager blizzards."

      Nagios do this. I know, I configured mine that way.

      "Of course, I don't want this thing relying on my mail system for paging because, of course, my mail system could go down. An ability to dial out if the mail system is down would be nice."

      Nagios do this. I know, I configured mine that way.

      "I want agents, hooks, interfaces, third-party add-ons, and every possible way of tying something into the monitoring system. I don't want dumb limitations like "you can only get an exit code from the OS and it acts on that" or something. For big monitoring, it's almost mandatory that some kind of API for agents is exposed."

      Don't know what exactly you mean, but I know you can extract out of Nagios the very same information it is managing though i.e. a socket or push it to a database for further inspection. Apart of this, it's open sourced, you know.

      "I want "I'm working on it, stop paging" blackouts. I want to be reminded to lift them."

      Nagios do this. I know, I configured mine that way (well, to autolift the "I'm working on it" after Nagios detects the service on-line again... and it automatically closes the previously opened ticket on our service desk too).

      "I want it to tie into my change-management system. If I open a ticket and say that server X is down for 2 hours on this date, I don't want to have to remember to black it out."

      Nagios do this. I know, I configured mine that way.

      "I want reports. I don't care about silly little charts and graphs, but a history of everything that has every gone wrong with device Y would be nice."

      Nagios do this. I know, I configured mine that way. It is the "little charts and graphs" where Nagios is quite lacky, in fact.

      "I want more info on my page-receiving device than just "HOST X IS DOWN". I want context so I can decide if I have to drop everything immediately."

      Nagios do this. I know, I configured mine that way.

      "These are some of the things that make sane large monitoring systems. I don't think any open source product has all of them, alas"

      You didn't research on this that so much. Please note that I'm not affiliated to Nagios in any way, but I'm just a satisfied user.

  18. Don't be like Tivoli, OpenView, etc by duffbeer703 · · Score: 2, Insightful

    Focus on usability and rapid deployment rather than wide-ranging featuresets that sit on the shelf for a decade. Nearly all products in this space really, really suck.

    --
    Conformity is the jailer of freedom and enemy of growth. -JFK
  19. Cacti w/plugins by Linegod · · Score: 2, Interesting

    I use Cacti, with THold and weathermap plugins.

    But then I'm biased.

    --
    -- I care not for your foolish signatures.
  20. OpenNMS by ckaminski · · Score: 2, Insightful

    Was a step above Nagios in terms of reliability (I didn't have to restart the server four times a day just to keep it running), and did much better at autodiscovery.

    That fact that it is also NRPE compatible was a plus - I could use all the Nagios plugins and check scripts I'd written.

    I was also planning on using it to launch a more aggressive webmin-style management solution - since OpenNMS built this great database of data about my devices and hosts, I could use it to do actual management - change data/settings.

    Cons: It's a Java/Tomcat tool, as much as that is really a con. It's not like you need to run Jboss or Websphere to use it (though I suppose you could).

  21. What I Lack in Open Source Monitoring Solutions by rawler · · Score: 5, Insightful

    I just did a quick survey and evaluation of the open source monitoring-market for my company, and found a few shortcomings/frustrations in a few aspects where none of the evaluated system seems to get it 100% right.

    Transparent Planned Design
    Many solutions out there seems to have been developed in what can only be described as an "organic" process. I.E. a few scripts were used from start, were hooked up with some other scripts, were slammed into a web-interface, got some more features, then something central were ripped out and replaced to allow yet more features and so on and so forth. (Read: Nagios) While this is of course often the best way to get something working for a particular need, and on a tight budget, it makes adoption really hard unless you happen to have exactly the same need.

    Event management
    Does anyone know a solution that can both receive from syslog and decode traps with a given MIB, and then do some simple logic, like squashing repeats, displaying on a web-page with archival-options, and dispatch to mail/sms based on configurable rules? Except for ZenOSS (and ZenOSS have other problems), I haven't found a single sensible system that does this.

    Modularity/Seamless Integration
    Since much of the monitoring systems out there doesn't seem to have a clear design, it's often very hard to add missing features. I.E. project X missing an event manager, or is the builtin not satisfactory? No probs, I'll just, ehh, where does this wire come from? Is this really a socket? Did anyone really connect that? It's ok with blackbox-solutions, as long as they serve all my needs, and have clear interfaces to combine with other solutions that serves related needs, but sadly no solution evaluated does everything we need it to and we end up struggling with manual routines to compensate for it.

    Complexity
    There are a few really neat systems that does almost everything one can ask for. (Short of flying cars). Unfortunately, the ones we've tried have always turned out to be very complex, and also do a lot of things we didn't want. Since it's then often not very modular, it hard to get it stop doing the things we don't want, or change the things we need implemented slightly differently. Also the huge codebase that comes along with trying to scratch everyones itch seems to get it's share of bugs, and troubleshooting in large more or less opaque systems is not a fun task.

    The Perfect Monitoring System
    After evaluating all options we could find, we've come to the conclusion that none of the systems we've looked at or tested really fits our needs (Although ZenOSS came close, we encountered just too many bugs and oddities to keep investing time in it). Furthermore, we could not find a combination of systems that integrates well, and together fits our needs, which I personally see as a bigger problem.

    What I would really want to see in the world of Open Source Monitoring, is an eco-system of monitoring apps with an overarching design/architecture. Design a framework where different entities and steps in the monitoring are clearly defined and interfaced with each other, but still allows for differing implementations, and integration with unforeseen needs. For example, at our shop, we continuously analyze roughly 700mbit of streaming video for availability and quality. Noone designing a monitoring system could probably forsee this as an appliance, but in The Perfect Monitoring System, it should be clear for the average-skilled hacker how to integrate it.

  22. Re:JMX Support by glsiii · · Score: 2, Informative

    You certainly want to check ZenOSS out then. Our instance monitors JVMs across our deployment for everything from heap size to open file descriptors to uptime for the jvm specifically-- all of which can be alerted on if desired.

  23. How about... by yacoob · · Score: 5, Informative

    Needed features in random order:
    * Scalability - few k machines is minimum. This probably means smart, decentralized collection and aggregation of data.
    * Flexible whitebox monitoring - for given class of devices, I should be able to configure how to fetch this device's data (http, smnp, ssh+command, rpc, you-name-it) and how to interpret it ("read the status page there, get this and that value").
    * Flexible blackbox monitoring - for given class of devices, I should be able to configure a set of actions that should be performed on it (fetch a page, ssh into, ping) and how results of that action should be interpreted (ok/nok, time to complete, etc.).
    * Easy way to tag (source/machine/network segment) and aggregate (max/min/mean/stddev/%ile/sum) of the monitoring data.
    * Some language to easily calculate derivative values from the data above.
    * Interface for defining graphs, using collected data.
    * ...and a system for annotating the above. Raw data is neat, annotated data is even better.
    * Alerting subsystem, which should allow for defining different destinations, together with escalation rules. And custom alerts - using the .
    * (nice to have) HTTP server with a simple HTML templating, to allow for easy creation of arbitrary dashboards.
    * (if you have the above) predefined templates for most of common things. Both detailed ("everything about device X") and general ("if the background of the page is green, you're fine! If it's not, here you'll find a concise list of what's broken").
    * hooks/libraries to use collected data "outside" of the system

    I realize that's a lot, but boy, such system would be very useful and flexible.

    --
    -- we're here you're not
  24. Monitoring on scale by C_Kode · · Score: 2, Interesting

    If your monitoring something of that scale, you should probably look into a profession solution.

    I use Zenoss (open source) and like it quite a bit. It takes time to customize for your setup, but unless you have a bland network, that is almost always the case. I will say this, it's much easier to setup the Nagios was a couple of years ago when I was using Nagios. Though I've heard there has been some improvement.

  25. Re:No humans being monitored! by cenc · · Score: 3, Funny

    I find a human monitoring system to be the most reliable. There is always someone to fire, if something goes wrong.

  26. Zabbix is easy to maintain and flexible by bigtrike · · Score: 3, Interesting

    Zabbix allows you to build some fairly powerful rulesets and chains of overrides using its web gui. It's not perfect, but it keeps improving and the attitude of the developers is friendly unlike some of the other projects.

  27. Re:Use the Tivoli architecture and rewrite it by Krneki · · Score: 2, Interesting

    I don't believe in agents. I refuse to install anything not needed on the server. SNMP should be enough for all the information, unfortunately this is not the case. So I use WMI and netbios querying.

    --
    Love many, trust a few, do harm to none.
  28. Zope database is solid by Grincho · · Score: 2, Informative

    To be fair, I wouldn't say the Zope database (ZODB) is not a "solid foundation". It's one of the best parts of the Zope stack and, in 3 years of dozens of clients using it in Zenoss, Plone, and other apps, I've never had it corrupt or lose any data. It's a proper DB--ACID, MVCC, and all that--and you can even lop transactions off the storage to go back in time. Don't expect it to be a relational DB with the ad hoc query tools typical thereof; it's an object DB, with the aim of persisting graphs of Python objects transparently.

    Now, if you aren't familiar with it, the ZODB can indeed seem opaque, but, just like any DB, there are tools to read and modify it. At the highest level, just stick "manage" after your Zenoss URL, e.g. http://example.com/zport/dmd/manage . That'll get you into the web-based Zope Management Interface (colloquially, "the ZMI"), where you can poke around at any object that someone's bothered to write a UI for. Deeper than that, you can connect to ZEO (a server that brokers access to the ZODB over a socket) and mess with the object graph using normal Python. When you're done, "import transaction; transaction.commit()". (The Zenoss developers are probably trying to scare you away from such digging around in fear that you'll violate their objects' invariants and leave them a real mess to solve.)

    Now, I don't say that Zope isn't scary; it has over 10 years of scary stored up in it. But the ZODB is a cuddly, loving part.

    Cheers!

  29. If you have Linux servers, don't use OpManager! by scarolan · · Score: 2, Informative

    We used OpManager in production for over a year. It has terrible Linux support. None of their built-in plugins worked properly for monitoring even basic parameters like disk space, free memory, CPU usage, etc. When we pointed this out to their support people, they said we should build our own plugins with SNMP OIDs. Um....no. Not for the amount of money we paid for that steaming POS. We finally kicked OpManager to the curb about a month ago, and have our entire environment, Windows and Linux servers being monitored with Nagios. Nagios scales well, we are currently watching several hundred hosts and about 3500 services.

    OpenNMS is also a good tool, its ability to map servers back to switch ports is extremely handy.

  30. Hobbit / Xymon with Devmon by gudmo · · Score: 2, Informative

    The solution is real simple. If you can program in anything then Hobbit/Xymon with Devmon is your only choice.
    Create your own Weather Map for 2D, you never need a full 2D map of 5000 hosts... Less is more.

    1. Free
    2. Fully customizable
    3. Easy administration
    4. Offers clients for all the major OS (And quite a few minor ones)
    5. Large support base (Users with high technical level)
    6. Nice author (Replies to comments and considers all ideas)
    7. You can write a test for anything you can think of and easily add it into hobbit
    8. Offers client/server montoring, remote monitoring, script monitoring, snmp monitoring(devmon) or scripts

    The possibilities with Hobbit are endless

    Personally I use Hobbit to monitor over 2400 devices, including Cisco hardware, AIX, Windows Servers, VMware Clusters, Exchange, Sharepoint etc.etc.etc.etc.
    I've never encountered a system I could not monitor with Hobbit (Or scripts that send their results into hobbit).

  31. Just my $0.02. by wr37chd00d · · Score: 2, Informative

    We are using a combination of Cacti and mon to monitor about 200 devices, both network gear and PC servers. Cacti is used to graph performance data(bandwidth, cpu, mem, temp) and maps for the visually inclined, while mon is used to do the actual service monitoring and alerting.

    I won't comment on Cacti, since it has been mentioned here already, though iI will say that you CAN change the default behavior of "sample averaging" by increasing the size of the RRD database. There are discussions on the Cacti forum/wiki that cover this topic.

    Mon on the other hand, I didn't see mentioned at all, so here's my blurb on that. The core of mon is a scheduler written in perl, which handles running monitor tests(also perl or any script/program that can exit with a 1/0) and then alerting(also perl, or other languages, and can do more than just sending mail or paging) when necessary, based on the configuration for that service. Like most open source projects, it is extremely flexible, if you have the initial time investment to set up your tests and dependencies correctly, but once this is done, the tests/alerts can be reused, or further modified. There are quite a few monitor tests and alert scripts already included, along with some handy tools for interaction through a web browser(via moncgi), generating dependency trees, generating reports, and more. Theres also a perl module, Mon::Client, that provides an API for interacting with the mon scheduler. The downside, besides configuring it with a text file(m4 can be helpful here), is there hasn't been any activity since 2007(according to the CVS repo on sourceforge).

    Probably not the solution for an extremely large number of hosts, though resource-wise, it could handle it, but maybe someone else might be able to benefit from it. If you need very specific tests(number of BGP routes, verifying NH on routes, customer redundancy) and smart alert logic, it's worth looking at.