How to install Observium in Ubuntu 13.10 to 15.04


Today we will be installing Observium.
Observium is a Network Management and Monitoring System that collects data from multiple devices using SNMP and allows you to monitor all of the networks devices via an easy to use interface. It is PHP-based and uses a MySQL database to store data.


This guide works with Ubuntu 13.10 to 15.04 and Debian 7.


Connect to your server via SSH

ssh [email protected]
Install Dependencies
sudo apt-get -y install libapache2-mod-php5 php5-cli php5-mysql php5-gd php5-mcrypt php5-json php-pear snmp fping mysql-server mysql-client python-mysqldb rrdtool subversion whois mtr-tiny ipmitool graphviz imagemagick
Enter the Mysql password for the root user. Note: For security make this one different than your server's password, and try not to use this user in any application that requires a database to store and pull data from. MySQL Download and Extract Observium
sudo mkdir -p /opt/observium && cd /opt
sudo wget
sudo tar zxvf observium-community-latest.tar.gz


create the MYSQL database and user Enter your MySQL password that you gave the root user from before
mysql -u root -p</pre>  
Once in MySQL enter the following commands to create the database, the user and to allow the user access to the database.
Make sure to change the Observium database password with your own, you will need this in the next step.
GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost' IDENTIFIED BY 'observium db password';  
    Changing the config file
cd observium
sudo cp config.php.default config.php
Change the setting on the config.php to reflect your systems settings
sudo nano config.php
Set the username and password on the observium config file and an email address for alerts to get sent to.

## Check for documentation of these settings

// Database config ---  This MUST be configured
$config['db_host'] = 'localhost';
$config['db_user'] = 'USERNAME';//observium user that we created before
$config['db_pass'] = 'PASSWORD';//observium password thet you gave the observium user
$config['db_name'] = 'observium';

// Base directory
$config['install_dir'] = "/opt/observium";

// Default community list to use when adding/discovering
$config['snmp']['community'] = array("public");

// Authentication Model
$config['auth_mechanism'] = "mysql";    // default, other options: ldap, http-auth, please see documentati$

// Enable alerter (not available in CE)
#$config['poller-wrapper']['alerter'] = TRUE;

// Set up a default alerter (email to a single address)
$config['alerts']['alerter']['default']['descr']   = "Default Email Alert";
$config['alerts']['alerter']['default']['type']    = "email";
$config['alerts']['alerter']['default']['contact'] ="[email protected]";
$config['alerts']['alerter']['default']['enable']  = TRUE;

// End config.php
Control +X to write file in nano. Run this script to Setup the MySQL database and insert the default schema:
./discovery.php -u

Create required directories

Directory where logs are stored
sudo mkdir logs
Directory for the round-robin database
 sudo mkdir rrd
Give the apache user and group ownership of the directory
sudo chown www-data:www-data rrd

Configuring Apache web server

sudo nano /etc/apache2/sites-available/000-default.conf
Make the file look like this
<VirtualHost *:80>  
    ServerAdmin [email protected]
    DocumentRoot /opt/observium/html
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    <Directory /opt/observium/html/>
           Options Indexes FollowSymLinks MultiViews
           AllowOverride All
           Require all granted
    ErrorLog  ${APACHE_LOG_DIR}/error.log
    LogLevel warn
    CustomLog  ${APACHE_LOG_DIR}/access.log combined
    ServerSignature On
Enable php mcrypt module:
sudo php5enmod mcrypt
Enable mod_rewrite for Observium's cleaner URLs:
sudo a2enmod rewrite
Restart Apache
sudo service apache2  restart

Getting Started

Adding an Admin User
./adduser.php admin password 10
Adding your First SNMP enabled device to monitor
./add_device.php <hostname> <community> v2c

Note: if your internal network can't resolve hostnames, add them to your hosts file.

Adding the cron jobs

Create this cron file

sudo nano /etc/cron.d/observium

Add the following content inside. these jobs are required by Observium for Polling and Discovering Devices

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/ 2 >> /dev/null 2>&1

That's It

Open The panel at and Login with the password you set earlier


10$ off on me with This Link, if you don't have your own server visit DigitalOcean servers starting at 5$ a month
10$ off on me with

Jaco Toledo

Hi, I am a System Administrator that Lives in Jacksonville Florida and loves to experiment with anything IT, my favorite Linux Distro is Ubuntu I Love its simplicity.

Jacksonville, FL

Subscribe to UbuntuBoss: Easy Ubuntu Tutorials | How to for Ubuntu Linux

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!