What is Observium?

Observium is an autodiscovering SNMP based network monitoring platform written in PHP which includes support for a wide range of network hardware and operating systems including Cisco, Windows, Linux, HP, Dell, FreeBSD, Juniper, Brocade, Netscaler, NetApp and many more.  Observium has grown out of a lack of network monitoring platforms which are both simple to manage and pleasant to use. It is intended to provide a navigable interface to the health and performance of your network. Its design goals include collecting as much historical data about devices as possible, using as much auto-discovery as possible with little or no manual intervention, and having a very intuitive interface.
Observium is not intended to replace an up/down alerting system like Icinga or Nagios, but rather to complement it with an easy to manage, intuitive representation of historical and current performance statistics, configuration visualisation and syslog capture.


  • A working base install of Linux Debian 7 Wheezy or Ubuntu 12.04 LTS or Ubuntu 13.04
  • UDP port 161 open between the Observium Debian 7 server and the end devices
  • Aptitude sources configured correctly
  • Unrestricted root access

Installing Observium


1. Update and upgrade

2. Install packages required

Optional: If you want to monitor libvirt Virtual Machines

3. Create a folder for Observium to live in

4. Download the community version of Observium

5. Extract Observium

6. Change to Observium installation directory

7. Copy the default configuration file and modify to your system

Note: The only real change you need to make is to the “$config[‘db_pass’] = ” field unless you are installing the database elsewhere with a different database name.

8. Create the Observium database

9. Update the Observium config.php file and change the username and password fields

9. Setup the MySQL database and insert the default schema

It’s OK to have some errors in the SQL revisions up to 006

10. Create  the directory to store RRDs in

11. If the server will only be running Observium, change the /etc/apache2/sites-available/default to:

Alternatively you can create a vhost just for Observium

12. Enable mod_rewrite for Observium’s cleaner URLs:

13. Add the first user (Level 10 for Admin)

14. Add the first device (even if you haven’t configured it yet)

15.  Do an initial discovery and polling run to populate the data for the new device

16. Create cron jobs, create a new file /etc/cron.d/observium with the following contents

Important Note: Please note that the below example includes a username, so will only work in /etc/crontab or /etc/cron.d/observium. It will not work in a user crontab edited with crontab -e

17. Connect to the web console by going to a browser and typing “http://serveripaddress”

Observium Login


For a list of locations for geo-tagging your servers on to the Observium map, please refer to this link:


Manual Configuration Settings

To set some manual settings in Observium you will need to edit the config.php file and insert the $config lines that you require. A reference of the configuration lines you can insert: http://www.observium.org/docs/config_options/

Configuring Microsoft Windows 2008 Server SNMP Agent

1. Open Server Management

2. Right click on “Features” and click on “Add Features”

3. Expand “SNMP Services” and select “SNMP Service” click Next

4. Click Install

5. Close Server Manager

6. Open Server Manager

7. Expand Configuration and select Services

7. Select SNMP Service, right click and select properties

8. Select the “Agent” tab

9. Type the contact name responsible for this server or email address

10. Type the location eg, Sydney,Australia

11. Tick the following

  • Physical
  • Datalink and subnetworkSNMP Trap Service - Agent

12. Select the “Traps” tab

13. Type in the community string you are using in your environment and select “Add to list”

14. Click “Add”

15. Type the IP of the Observium ServerSNMP Trap Service - Traps

16. Select “Security” tab

17. Ensure “Send authentication trap” is ticked

18. Click “Add” under “Accepted community names”

19. Select “READ CREATE” under Community rights

20. Enter your community string under Community Name

21. Select “Accept SNMP packets from these hosts”

22. Select “Add” and type the IP address of the Observium Server

You can also put in the FQDN of the Observium serverSNMP Trap Service - Security23. Add your server into the Observium Web Console

Configuring SNMP on Linux Debian, Ubuntu or Redhat

1a. Install Net-SNMP on Debian/Ubuntu

1b. Install Net-SNMP on Redhat

2a. Make sure the SNMPDOPTS line in /etc/default/snmpd looks like this on Ubuntu or Debian

2b. Make sure the OPTIONS line in /etc/sysconfig/snmpd looks like this on Redhat

3. Replace the default /etc/snmp/snmpd.conf file with something like this, changing the community, location and contact fields

4. Get the Observium ‘distro’ script to identify your distribution via SNMP

5. Restart SNMPD

6. Add the host to your Observium Web Console

Configuring SNMP on Cisco IOS

In this example I will be using IPv4 Only named ACL’s which is a standard set up these days.

1. Shell into the Cisco console

2. Elevate to privileged mode

3. Enter global configuration mode

4. Create named access list

5. Allow Observium server IP address

6. Configure community string (change <community> to the community string in your environment)

7. Globally enable SNMP ifindex persistence

8. Set SNMP device location

9. Set SNMP owner

Cisco SNMP Setup Commands


13 Responses to “Setting up Observium”

  1. Karen

    Has anyone seen an issue with the graph’s not working? I’m getting “Draw Error” for traffic, storage, memory and cpu load on my servers I’m guessing it’s something that missed but I’m not sure.

    Thanks you for any assistance.

  2. Karen Gleiter

    Thank you for the response. I have manually ran the polling and I see no errors. This is the command that I ran for running it manually.

    Sudo ./discovery.php -h all
    Sudo ./poller.php -h all

    I’m new to this so please be patient with me.


    • cr_admin

      Hi Karen,

      Is this for one device or all devices?

      This could be a number of reasons, please check the following:

      1. A connection from the observium server to the mysql DB (also check db permissions).
      2. Check point 16 (adding a cron) and ensure this is working
      3. Check the /var/log/syslog for any errors
      4. Try removing the rrd files (rm -rf /opt/observium//*.rrd)
      5. Try reinstalling rrdtools

      Try and not do step 4 or 5 unless you are sure (and do backups).

      Let me know how you get on.

  3. Karen Gleiter

    I’m sorry that I didn’t explain that it was only happening with the Linux systems. I have it working with the Cisco and the graphs are working fine. Should I still go through the list of items?

    Thanks again,

    • Chris

      Hi Karen,

      That makes a lot of difference! Sounds like there isn’t anything wrong with Observium but more to do with the network/client server.

      Try the following:

      1. Ping to the client linux box (this should reply)
      2. Telnet from Observium server to the client server on port 199
      3. Run “Netstat -ntlp” and see if the process “snmpd” is listening on port 199
      4. Check over the /etc/snmp/snmpd.conf config file
      5. Check permissions & owner on /etc/snmp/snmpd.conf

      What Linux distro are you using?



  4. Praveen Kumar

    Hi there,

    I have installed and configured on my Centos 7 with latest observium and followed snmp configuration as per your guide in my test environment, when i trying to add windows server in Observium i am getting error could not resolve ip like this but i am able to ping. Please provide me solution. I will be thankful to you.

    Praveen Kumar

    • Chris

      Hi Praveen,

      Do you have a firewall blocking ports between Observium and the client? Is the client listening on the correct port? These would be the first things I’d be checking.

      Thanks, Chris


Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.