Observium is a PHP/MySQL driven Network Observation and Monitoring application, that supports a wide range of operating systems/hardware platforms including, Linux, Windows, FreeBSD, Cisco, HP, Dell, NetApp and many more. It seeks to present a robust and simple web interface to monitor health and performance of your network.
Observium gathers data from devices with the help of SNMP and display those data in graphical pattern via a web interface. It makes hefty use of the RRDtool package. It has a number of thin core design goals, which includes collecting as much historical information about devices, being totally auto-discovered with slight or no manual interruption, and having a very simple yet powerful interface.
Observium Demo
Please have a quick online demo of the Observium deployed by the developer at the following location.
This article will guide you on how to install Observium on RHEL, CentOS and Scientific Linux, the supported version is EL (Enterprise Linux) 6.x. Currently, Observium unsupported for EL release 4 and 5 respectively. So, please don’t use following instructions on these releases.
Step 1: Adding RPM Forge and EPEL Repositories
RPMForge and EPEL is a repository that provides many add-on rpm software packages for RHEL, CentOS and Scientific Linux. Let’s install and enable these two community based repositories using the following serious of commands.
On i386 Systems
# yum install wget # wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el5.rf.i386.rpm # wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm # wget http://apt.sw.be/RPM-GPG-KEY.dag.txt # rpm --import RPM-GPG-KEY.dag.txt # rpm -Uvh rpmforge-release-0.5.3-1.el5.rf.i386.rpm # rpm -Uvh epel-release-6-8.noarch.rpm
On x86_64 Systems
# yum install wget # wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.rpm # wget http://epel.mirror.net.in/epel/6/x86_64/epel-release-6-8.noarch.rpm # wget http://apt.sw.be/RPM-GPG-KEY.dag.txt # rpm --import RPM-GPG-KEY.dag.txt # rpm -Uvh rpmforge-release-0.5.2-2.el6.rf.rpm # rpm -Uvh epel-release-6-8.noarch.rpm
Step 2: Install Needed Software Packages
Now let’s install the required software packages needed for Observium.
# yum install httpd php php-mysql php-gd php-snmp vixie-cron php-mcrypt \ php-pear net-snmp net-snmp-utils graphviz subversion mysql-server mysql rrdtool \ fping ImageMagick jwhois nmap ipmitool php-pear.noarch MySQL-python
If you wish to monitor virtual machines, please install ‘libvirt‘ package.
# yum install libvirt
Step 3: Downloading Observium
For your information, Observium has two following editions
- Community/Open Source Edition: This edition is freely available for download with less features and few security fixes.
- Subscription Edition: This edition is comes with additional features, rapid feature/fixes, hardware support and easy to use SVN-based release mechanism.
Firstly navigate to the /opt directly, here we will going to install Observium as default. If you wish to install somewhere else, please modify commands and configuration accordingly. We strongly suggest you to first deploy under /opt directory. Once you verify that everything works perfectly, you can install at your desired location.
If you have a active Observium subscription, you can use SVN repositories to download most recent version. A valid subscription account only valid for a single installation and two testing or development installations with daily security patches, new features and bug fixes.
To download most recent stable and current version of Observium, you need to have a svn package installed on the system, in order to pull the files from the SVN repository.
# yum install svn
Development Version
# svn co http://svn.observium.org/svn/observium/trunk observium
Stable Version
# svn co http://svn.observium.org/svn/observium/branches/stable observium
We don’t have a valid subscription, So we we are going to try out Observium using the Community/Open Source Edition. Download the latest ‘observium-community-latest.tar.gz’ stable version and unpack it as shown.
# cd /opt # wget http://www.observium.org/observium-community-latest.tar.gz # tar zxvf observium-community-latest.tar.gz
Step 4: Creating Observium MySQL Database
This is a clean installation of MySQL. So, we are going to set a new root password with the help of following command.
# service mysqld start # /usr/bin/mysqladmin -u root password 'yourmysqlpassword'
Now login into mysql shell and create the new Observium database.
# mysql -u root -p mysql> CREATE DATABASE observium; mysql> GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost' IDENTIFIED BY 'dbpassword';
Step 5: Configure Observium
Configuring SELinux to work with Observium is beyond the scope of this article, so we disabled SELinux. If you are familiar with SELinux rules, then you can configure it, but no guarantee that the Observium work with active SELinux. So, better disable it permanently. To do, open ‘/etc/sysconfig/selinux‘ file and change the option from ‘permissive‘ to ‘disabled‘.
# vi /etc/sysconfig/selinux
SELINUX=disabled
Copy the default configuration file ‘config.php.default‘ to ‘config.php‘ and modify the settings as shown.
# /opt/observium # cp config.php.default config.php
Now open ‘config.php‘ file and enter MySQL details such as database name, username and password.
# vi config.php
// Database config $config['db_host'] = 'localhost'; $config['db_user'] = 'observium'; $config['db_pass'] = 'dbpassword'; $config['db_name'] = 'observium';
Then add an entry for fping binary location to config.php. In RHEL distribution the location is different.
$config['fping'] = "/usr/sbin/fping";
Next, run the following command to setup the MySQL database and insert the database default file schema.
# php includes/update/update.php
Step 6: Configure Apache for Observium
Now create a ‘rrd‘ directory under ‘/opt/observium‘ directory for storing RRD’s.
# /opt/observium # mkdir rrd
Next, grant Apache ownership to ‘rrd‘ directory to write and store RRD’s under this directory.
# chown apache:apache rrd
Create a Apache Virtual Host directive for Obervium in ‘/etc/httpd/conf/httpd.conf‘ file.
# vi /etc/httpd/conf/httpd.conf
Add the following Virtual Host directive at the bottom of the file and enable Virtualhost section as shown in the screenshot below.
<VirtualHost *:80> DocumentRoot /opt/observium/html/ ServerName observium.domain.com CustomLog /opt/observium/logs/access_log combined ErrorLog /opt/observium/logs/error_log <Directory "/opt/observium/html/"> AllowOverride All Options FollowSymLinks MultiViews </Directory> </VirtualHost>
To maintain observium logs, create a ‘logs‘ directory for Apache under ‘/op/observium‘ and apply Apache ownership to write logs.
# mkdir /opt/observium/logs # chown apache:apache /opt/observium/logs
After all settings, restart Apache service.
# service httpd restart
Step 7: Create Observium Admin User
Add a first user, give level of 10 for admin. Make sure to replace username and password with your choice.
# cd /opt/observium # ./adduser.php tecmint tecmint123 10 User tecmint added successfully.
Next add a New Device and run following commands to populate the data for new device.
# ./add_device.php <hostname> <community> v2c # ./discovery.php -h all # ./poller.php -h all
Next set a cron jobs, create a new file ‘/etc/cron.d/observium‘ and add the following contents.
33 */6 * * * root /opt/observium/discovery.php -h all >> /dev/null 2>&1 */5 * * * * root /opt/observium/discovery.php -h new >> /dev/null 2>&1 */5 * * * * root /opt/observium/poller-wrapper.py 1 >> /dev/null 2>&1
Reload cron process to take new entries.
# /etc/init.d/cron reload
The final step is to add httpd and mysqld services system-wide, to automatically start after system boot.
# chkconfig mysqld on # chkconfig httpd on
Finally, open your favourite browser and point to http://Your-Ip-Address.
Observium Screenshot Tour
Following are the screen grabs of last mid-2013, taken from the Observium website. For up-to-date view, please check live demo.
Conclusion
Observium doesn’t mean to completely remove other monitoring tools such as Nagios or Cacti, but rather to addition them with terrific understanding of certain devices. For this reason, its important to deploy Observium with Naigos or other monitoring systems to provide alerting and Cacti to produce customized graphing of your network devices.
Reference Links:
Observium improves your network’s reliability by providing you with the information to pro-actively respond to a greater number of potential issues before they become service impacting.
I am getting difficulties while adding centos 7 as a agent..
can you please add adding agent link into same tutorial
Just to say Observium is very good however there is a premium for support.
There was a fork a while ago called LibreNMS which seems to be better and gives you a little more.
@GinFace,
Yes Observium is very good monitoring tool for Linux, but I never heard of premium support, I thought its completely open source and free to use…Never heard of LibreNMS, is it active?
Yes quite active [ http://www.librenms.org/ ] I have been using it in deployment for the last 9 months. According to the maintainers of LibreNMS they were fed up of the lack of support on the paid version.
Observium has two versions a Community version and a Professional version. The Professional version has more perks and support & services options. I have to say though, the Tecmint walk through is excellent.
Thanks
@GinFaced,
Thanks for the update, LibreNMS seems to be a good monitoring tool for Linux, let me give a try and see how it works, also if possible I will create a detailed guide on the same..
Email settings in Observium:
How to configure the email settings in Observium so i am able to receive alert emails. Any one please provide steps for Observium community edition email alert configuration file( config.php).
hello,
I am getting the following error, please advise
Resolving packages.sw.be (packages.sw.be)… 78.46.17.228
Connecting to packages.sw.be (packages.sw.be)|78.46.17.228|:80… failed: Connection timed out.
Retrying.
when I execute the following command
$ sudo service mysqld start
I get the following error
Redirecting to /bin/systemctl start mysqld.service
Failed to issue method call: Unit mysqld.service failed to load: No such file or directory.
Any ideas what file is missing? I am using Centos7
@James,
Have you installed MySQL or MariaDB on the system before starting up the database? after reading your error, it seems there isn’t any mysql installed on the system, better first install database and then try to start it. I think you’re using CentOS 7, so install MariaDB using following command.
Observium is great, not as advanced as Cacti or Nagios but nonetheless a powerful tool to analyze traffic and possible errors i installed it on ubuntu and it runs great here.
Why would this NMS not replace something like Cacti? I’ve found it to be a good replacement for Cacti.
Please upload a video on Youtube on how to install Observium in Cent-OS 6 (VMware workstation 10).
I have followed the total process. But when I write http://localhost in the browser, it shows the Apache web server page.
Please suggest.
@Tonmoy,
It could be incomplete installation, try to follow instructions carefully, it will work 100%
Hi guys,
I followed the documentation on setting up rsyslog, got a couple of firewalls and routers sending logs to the Observium server (/var/log/syslog) but nothing is replicated on the webconsole. I’m running it on Ubuntu Server 12.04.
.
I have installed observium on Ubuntu 14.04 LTS. I want to monitor a VM Windows 7 instance. I added device on /etc/hosts, enabled snmp service on Windows 7 and after trying adding the device, the following errors appear on observium,
root@observium:/opt/observium# ./add_device.php Christos-PC public
Observium CE 0.14.11.6000
Add Device(s)
Try to add christos-pc:
Trying v2c community public …
No reply on community public using v2c.
Could not reach christos-pc with given SNMP parameters using v2c.
Trying v1 community public …
No reply on community public using v1.
Could not reach christos-pc with given SNMP parameters using v1.
Devices skipped: 1.
USAGE:
add_device.php [community] [v1|v2c] [port] [udp|udp6|tcp|tcp6]
add_device.php [any|nanp|anp|ap] [v3] [user] [password] [enckey] [md5|sha] [aes|des] [port] [udp|udp6|tcp|tcp6]
add_device.php
EXAMPLE:
SNMPv1/2c: add_device.php [community] [v1|v2c] [port] [udp|udp6|tcp|tcp6]
SNMPv3 : Defaults : add_device.php any v3 [user] [port] [udp|udp6|tcp|tcp6]
No Auth, No Priv : add_device.php nanp v3 [user] [port] [udp|udp6|tcp|tcp6]
Auth, No Priv : add_device.php anp v3 [md5|sha] [port] [udp|udp6|tcp|tcp6]
Auth, Priv : add_device.php ap v3 [md5|sha] [aes|des] [port] [udp|udp6|tcp|tcp6]
FILE : add_device.php
ADD FROM FILE:
To add multiple devices, create a file in which each line contains one device with or without options.
Format for device options, the same as specified in USAGE.
Should I configure snmp parameters(v1 or v2c) on Windows 7 snmp service or the problem is something else I don’t really realize?
new instance of Observium running on Unbuntu 14.04. i add devices to /etc/hosts and save, go to the GUI and ad Device but it never finishes polling.
Thanks,
Mike
Dear Ravi,
Many thanks for your excellent presentation. I’m trying to install observium in my CentOS 6. But could not make it. I was trying to install it in VMWare 10. Everything goes just fine but when I try to login through the browser, it doesn’t work.
Can you give me any link of a video where the process is shown step-by-step.
Waiting eagerly for your reply.
Thanks in advance.
Did you get any error message on the browser while accessing it?
Hi
Can you provide me steps how to add host in obsermin to monitor windows server
Thanks
Surely, in our upcoming article, we will try to cover the integration of hosts to Observium panel.
I had a problem starting httpd until I rebooted, pretty sure SELinux was the culprit; I did a quick search but to disable it do you really have to reboot? If not it might be a good idea to include a line in this howto…
Yes, you need a reboot after disabling SELinux.
im very new to admin in linux environment.. My LAN having one unmanagable router and unmanagable switch.. IP Range 192.168.0.0/24… i using centos 6.5 for configure observium. but i couldn’t make it.. i tried with DNS server configuration also but the name dose’t get resolve please help me to build my infra….. :-(
No devices found
Please try adjusting your search parameters.
It seems your device is not reachable.
This is error i have facing …
[root@galaxy observium]# ./add_device.php sriram.galaxy.local sriram v2c
Observium v0.14.4.5229
Add Device(s)
Try to add sriram.galaxy.local:
Could not resolve sriram.galaxy.local.
Devices skipped: 1.
USAGE:
add_device.php [community] [v1|v2c] [port] [udp|udp6|tcp|tcp6]
add_device.php [any|nanp|anp|ap] [v3] [user] [password] [enckey] [md5|sha] [aes|des] [port] [udp|udp6|tcp|tcp6]
add_device.php
EXAMPLE:
SNMPv1/2c: add_device.php [community] [v1|v2c] [port] [udp|udp6|tcp|tcp6]
SNMPv3 : Defaults : add_device.php any v3 [user] [port] [udp|udp6|tcp|tcp6]
No Auth, No Priv : add_device.php nanp v3 [user] [port] [udp|udp6|tcp|tcp6]
Auth, No Priv : add_device.php anp v3 [md5|sha] [port] [udp|udp6|tcp|tcp6]
Auth, Priv : add_device.php ap v3 [md5|sha] [aes|des] [port] [udp|udp6|tcp|tcp6]
FILE : add_device.php
ADD FROM FILE:
To add multiple devices, create a file in which each line contains one device with or without options.
Format for device options, the same as specified in USAGE.
Again, the errors indicates that your remote host name is not resolved by the Observium server.
hi im very new to observium.. i have some doubts on if observium can manage with only manageable switches like cisco.. because i couldn’t find any host in my network.. im using 192.168.1.0 range of IP. i dont have manageable switch.. i confiugred observium i can logoin.. how to find other hosts in my network..
You need to add them manually to Observium server and run the commands to update the polling data.
I followed this tut to the “T” and everything works great except that I can’t access the server from a remote computer on the same LAN using the IP address of the server. While on the server http://localhost or http:// gets me there but from a remote computer http:// does not get me there. I can ping the address just fine.
Any ideas?
never mind, I forgot to modify iptables.
Please open the port 80 on the firewall to allow other client to access.
can u give me ur mail id i will send u the screen shots and docs
Please use our contact link to get in touch.
Hi Ravi
i successfully added remote hosts to observium ,but memory,storage graphs shows error drawing graph and i added oneday back still shoeing this error msg
Device not yet polled
This device has not yet been successfully polled. System information and statistics will not be populated and graphs will not draw.
Please wait 5-10 minutes for graphs to draw correctly.
Device not yet discovered
This device has not yet been successfully discovered. System information and statistics will not be populated and graphs will not draw.
This device should be automatically discovered within 10 minutes.
Yeah that’s great you’ve successfully added remote host to Observium, it would be great if you could share the docs for adding remote hosts so others can benefit from your instructions. Can you share the screeshot for the same, so it will helpful me to trace the problem.
Thanks for ur help added remote host :)
,,,
Hi Ravi Thanks For the reply
i hv installed needed step:2 packages on remote machine and yum install libvirt
but still getting same problem and iam working on vmplayer centos 6.5 machine with etherner br0 device
[root@observium ~]# tail -f /var/log/messages
Jul 3 03:12:55 observium kernel: br0: port 1(eth0) entering forwarding state
Jul 3 03:12:57 observium polkitd[2255]: started daemon version 0.96 using authority implementat ion `local’ version `0.96′
Jul 3 03:12:58 observium rtkit-daemon[2264]: Sucessfully made thread 2262 of process 2262 (/usr /bin/pulseaudio) owned by ’42’ high priority at nice level -11.
Jul 3 03:12:58 observium pulseaudio[2262]: alsa-util.c: Disabling timer-based scheduling becaus e running inside a VM.
Jul 3 03:12:58 observium rtkit-daemon[2264]: Sucessfully made thread 2270 of process 2262 (/usr /bin/pulseaudio) owned by ’42’ RT at priority 5.
Jul 3 03:12:58 observium pulseaudio[2262]: alsa-util.c: Disabling timer-based scheduling becaus e running inside a VM.
Jul 3 03:12:58 observium rtkit-daemon[2264]: Sucessfully made thread 2271 of process 2262 (/usr /bin/pulseaudio) owned by ’42’ RT at priority 5.
Jul 3 03:12:58 observium pulseaudio[2262]: alsa-source.c: ALSA woke us up to read new data from the device, but there was actually nothing to read!
Jul 3 03:12:58 observium pulseaudio[2262]: alsa-source.c: Most likely this is a bug in the ALSA driver ‘snd_ens1371’. Please report this issue to the ALSA developers.
Jul 3 03:12:58 observium pulseaudio[2262]: alsa-source.c: We were woken up with POLLIN set — h owever a subsequent snd_pcm_avail() returned 0 or another value < min_avail.
hi ravi
when i try to add hostname am getting this issue pls help me
[root@Test observium]# ./add_device.php test.centos.com public v2c
Observium v0.14.4.5229
Add Device(s)
Try to add test.centos.com:
Trying v2c community public …
No reply on community public using v2c.
Could not reach test.centos.com with given SNMP community using v2c.
Devices skipped: 1.
logs?
[root@Test ~]# tail -f /var/log/messages
Jul 2 05:28:59 Test snmpd[4200]: net-snmp: 2 error(s) in config file(s)
Jul 2 05:28:59 Test snmpd[4203]: NET-SNMP version 5.5
Jul 2 05:29:56 Test snmpd[4203]: Received TERM or STOP signal… shutting down …
Jul 2 05:29:56 Test snmpd[4223]: /etc/snmp/snmpd.conf: line 93: Error: bad secu rity level (noauthnopriv, authnopriv, authpriv)
Jul 2 05:29:56 Test snmpd[4223]: /etc/snmp/snmpd.conf: line 94: Error: bad secu rity level (noauthnopriv, authnopriv, authpriv)
Jul 2 05:29:56 Test snmpd[4223]: net-snmp: 2 error(s) in config file(s)
Jul 2 05:29:56 Test snmpd[4226]: NET-SNMP version 5.5
Jul 2 06:47:45 Test snmpd[4226]: Received TERM or STOP signal… shutting down …
Jul 2 06:47:45 Test snmpd[4690]: NET-SNMP version 5.5
Jul 2 22:05:36 Test kernel: hrtimer: interrupt took 11093372 ns
You must have SNMP tools installed on remote host and make sure remote and observium server can talk each other.
when I do the php updates command I get this:
[root@monitoring observium]# !30
php includes/update/update.php
— Updating database/file schema
000 -> 001 … (db) done.
001 -> 002 … (db) done.
002 -> 003 … (db) done.
003 -> 004 … (db) done.
004 -> 005 … (db) done.
005 -> 006 … (db) done (6 errors).
006 -> 007 … (db) done (1 errors).
007 -> 008 … (db) done (1 errors).
008 -> 009 … (db) done (9 errors).
009 -> 010 … (db) done (1 errors).
010 -> 011 … (db) done (1 errors).
011 -> 012 … (db) done (1 errors).
012 -> 013 … (db) done (1 errors).
013 -> 014 … (db) done (2 errors).
014 -> 015 … (db) done (2 errors).
015 -> 016 … (db) done (5 errors).
016 -> 017 … (db) done (1 errors).
017 -> 018 … (db) done (3 errors).
018 -> 019 … (db) done (1 errors).
019 -> 020 … (db) done (6 errors).
020 -> 021 … (db) done (3 errors).
021 -> 022 … (db) done (1 errors).
022 -> 023 … (db) done (5 errors).
023 -> 024 … (db) done (2 errors).
024 -> 025 … (db) done (11 errors).
025 -> 026 … (db) done (1 errors).
026 -> 027 … (db) done (2 errors).
027 -> 028 … (db) done (22 errors).
028 -> 029 … (db) done (1 errors).
029 -> 030 … (db) done (2 errors).
030 -> 031 … (db) done (1 errors).
031 -> 032 … (db) done (2 errors).
032 -> 033 … (db) done.
033 -> 034 … (db) done (2 errors).
034 -> 035 … (db) done (1 errors).
035 -> 036 … (db) done (1 errors).
036 -> 037 … (db) done (2 errors).
037 -> 038 … (db) done (2 errors).
038 -> 039 … (db) done (1 errors).
039 -> 040 … (db) done (1 errors).
040 -> 041 … (db) done (2 errors).
041 -> 042 … (db) done (5 errors).
042 -> 043 … (db) done (9 errors).
043 -> 044 … (db) done (2 errors).
044 -> 045 … (db) done (4 errors).
045 -> 046 … (db) done.
Where are the logs for this…mysql is on a different IP.
It’s fine to have such SQL errors in the SQL revisions up to 006. No need to worry about much, just continue installation…