Monitoring With Observium [Application Spotlight]
Have you ever wondered what your resource usage looks like for the past 12 hours? Maybe you wanted to compare that to the previous 12 hours? Or take a look at how much network traffic you’re really pushing through your server. There’s plenty of ways to retrieve and drill down into key data about your server, but Observium is definitely one of my favorite for simple, basic server monitoring.
You may have heard of things like Nagios, Cacti or Munin. Observium is in the same class and serves the same essential purpose: monitoring. Using SNMP, Observium will poll your server at a defined interval, retrieve key pieces of information about your server’s current status, then store that using RRDTool. You can then log in to your Observium instance and display pretty graphs using a intuitive web interface. Simple, right? It is.
Observium with no advanced configuration can discover and start collecting data on a variety of things. Memory usage, processes, CPU usage, network traffic, and temperature, and more. With a little extra work you can get it to monitor applications like Apache, nginx, and MySQL as well. This gives you a great overview of what your server is doing and when.
The Basics
There’s really two parts to getting this going. You’ll need an Observium server, which is what will go out, retrieve the data, store it, and display it to you. This server doesn’t need to be all that powerful, a single VPS.NET node will do. It is recommended that you run this server exclusively for Observium to make things easier and perhaps in a different location from the servers you want to monitor as well.
Then you need to configure the servers you want to monitor and add them to your Observium server. There’s really nothing fancy that needs to be done here. Observium is an SNMP monitor, so you just need to install the SNMPD daemon, configure it, and start it up. Once you have the SNMP daemon running on a server you want to monitor, you can add it into your Observium server which will then start polling it.
At a defined interval (5 minutes), the Observium server will connect to each of your monitored servers over UDP port 161 and retrieve the data and store it using RRD. You’ll have to make sure your firewall will allow this connection, and perhaps lock it down so only your Observium server can connect over that port.
Installation
Observium is a web application similar to WordPress or Joomla, so installation is just as simple. The Observium wiki has a great page on how to install it both on Ubuntu and CentOS/RHEL. Since all you need is a basic LAMP stack, and the configuration files you can copy and paste from the wiki, you can get the Observium server up and running in as little as 5 minutes.
You have to do some slight configuration on each of the devices you want to monitor, but the wiki page is equally well written and shouldn’t take more than a minute to get setup. All you’re essentially doing is installing and configuration the SNMP daemon, which again you can copy and paste the configuration for the most part.
Now What?
Initially, things may not be all that exciting, as you have to let the poller run over time and collect data. If you check back after a day or so, you’ll find your graph filled up quite nicely.
Observium is completely open source and developed actively. If you followed the wiki for your installation, you’ll have used SVN to install it, which can be used to update it as well. It’s safe to throw the ‘SVN update’ command into a daily cron as well to make sure you’re getting the latest and greatest.
Observium’s appeal is in it’s simplicity and ease of configuration. Once you get the initial server and first device in there, it’s a piece of cake and ‘just works’. While it’s very good at what it does, and is quite enough for most people, here are some other tools you can look at that might be a bit more suitable for you.