CMon :: CMDB-2-Nagios

CMon ("C" like "CMDB" and "Mon" like "Monitoring") is a bridge between your CMDB and your monitoring system. The basic idea is: CMDB holds information about all the items of your IT infrastructure so the monitoring system could be populated using that pieces of information. CMon makes it possible to auto-magically create the configuration of your monitoring system based on the information stored in your CMDB.

Although the idea could be applied to all CMDBs and monitoring systems, CMon is tightly coupled with IBM Tivoli CCMDB and Nagios Core.

Some quick stats: 16128 lines of Java, 3752 lines of Javascript, 280 lines of CSS and 1465 lines of bash/perl scripts for a total of 21625 lines of code, CMon is made of the following components:

  • A Java core to inteface CCMDB APIs
  • A JDBC-compliant database for internal purposes (currently Derby/JavaDB and Oracle have been tested)
  • A Web-based GUI made of an ExtJS-based front-end and a Tomcat-based backend with an XML-based glue
  • A set of scripts to integrate CMon with SystemImager

How does CMon work?

The process is this simple:

  1. You spread CCMDB agents all over your infrastructure and populate CMDB.

  2. You tag the objects you want to monitor (e.g. computer systems, apache servers, ssh daemons, ...).

  3. You click CMon's magic wand and wait for the wizard to complete.

What features does CMon offer?

Currently CMon supports these features:

  • Automatic configuration of Nagios hosts and services
  • Automatic configuration of contacts and contact_groups, including escalations
  • Automatic charting via NagiosGrapher
  • Link from Nagios to documentation of host and service checks (useful for service desk)
  • Automatic configuration of multiple Nagios instances (points of view) with a central dashboard
  • Every service check reports the command used to perform the check directly on the Web interface
  • Creation of hostgroups and servicegroups based on CCMDB information (Business Application and Business Services)
  • Automatic configuration of monitored hosts (crontab for passive checks, NsClient.ini for Windows hosts)
  • Integration of CMDB topology information as Nagios "parents"
  • "Vanilla" Nagios compliant, no patching is required!

...and probably more that I can't remember now ;)

What kind of objects are supported by CMon?

Currently CMon supports these objects:

  • Network devices: routers, bridges, switches
  • Computer systems: Linux, AIX, Windows
  • File systems: UNIX, NFS, GPFS, FAT, NTFS
  • HTTP servers: Apache, OHS
  • J2EE servers: Tomcat, WebLogic, Oracle OAS/OC4J
  • LDAP servers: slapd
  • Database servers: Oracle, MySQL
  • Nagios Core, NSCA, NagiosGrapher
  • Identity providers: Shibboleth
  • SSH servers: openssh

Who should use CMon?

All enterprise-grade companies that own a CMDB-like source.

Is CMon ready for production?

CMon is currently under development and I consider it to be in ALPHA stage: this means that you should not base your monitoring system on the output generated by CMon. Nevertheless, I'm using CMon to monitor about 1000 hosts and 8000 services in CINECA, the company I work for.