Step By Step Guide to Setup Obersium on Ubuntu 20.04 LTS

Observium is a free & open source s a Network Management and Monitoring System tool. We can collects data from using SNMP & it allows to monitor all of the networks devices. It provides a simple & easy-to-use Web interface. It is PHP-based and uses a MySQL database to store data.

There are few steps to setup Observium on ubuntu:

Step 1: Update the System.

apt-get update

Step 2: Install the Php & modules.

apt install wget apache2 php php-{pear,cgi,common,curl,mbstring,gd,mysql,bcmath,imap,json,xml,snmp,fpm,zip}

  • Start & Enable the apache2.

systemctl start apache2
systemctl enable apache2

  • Here is the command output.

[email protected]:/home/ubuntu# systemctl enable apache2
Synchronizing state of apache2.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable apache2

Step 3: Install Mariadb Server on system.

apt install mariadb-server

  • Configure the mariadb server file.

vim /etc/mysql/mariadb.conf.d/50-server.cnf

  • Add the following lines:


  • Restart the mariadb server.

systemctl restart mariadb

Step 4: Login in to mariadb server.

mysql -u root

  • Create a Database.

create database observium;

  • Run Grant all privileges command.

grant all privileges on observium.* to [email protected] IDENTIFIED by "Password";
flush privileges;

  • Here is the command output.

[email protected]:/home/ubuntu# mysql -u root
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 36
Server version: 10.3.31-MariaDB-0ubuntu0.20.04.1 Ubuntu 20.04
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database observium;
Query OK, 1 row affected (0.000 sec)
MariaDB [(none)]> grant all privileges on observium.* to [email protected] IDENTIFIED by "Password";
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> quit

  • Update the packages.

apt-get update

  • Install the required packages.

apt install rrdtool whois fping imagemagick graphviz mtr-tiny nmap python3-mysqldb snmp snmpd python3-memcache mtr-tiny acl

Step 5: Download the Observium in System.


  • Here is the command output.

[email protected]:/home/ubuntu# wget
--2021-11-17 14:34:41--
Resolving (
Connecting to (||:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: [following]
--2021-11-17 14:34:42--
Connecting to (||:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 113413646 (108M) [application/x-gzip]
Saving to: ‘observium-community-latest.tar.gz’
observium-community-latest.tar.gz 100%[===========================================================================================>] 108.16M 3.89MB/s in 26s
2021-11-17 14:35:08 (4.19 MB/s) - ‘observium-community-latest.tar.gz’ saved [113413646/113413646]

  • Extract the downloaded folder.

tar xvf observium-community-latest.tar.gz

  • Move the extracted folder to /var/www/html/.

mv observium /var/www/html/

  • To change the observium directory & create a new config file.

cp /var/www/html/observium/config.php.default /var/www/html/observium/config.php

  • Open the created config file.

vim /var/www/html/observium/config.php

  • To set database user-name & password.

// Database config --- This MUST be configured
$config['db_extension'] = 'mysqli';
$config['db_host'] = 'localhost';
$config['db_user'] = 'observium';
$config['db_pass'] = 'Password';
$config['db_name'] = 'observium';

  • To Create rrd and logs directory.

mkdir /var/www/html/observium/{rrd,logs}

Step 6: To Configure snmpd.

  • Copy the snmpd sample file.

cp /var/www/html/observium/snmpd.conf.example /etc/snmp/snmpd.conf

  • To Configure the snmpd.conf file.

vim /etc/snmp/snmpd.conf

  • Add the following line.

com2sec readonly default 0bs3rv1um

  • Restart the snmpd.

systemctl restart snmpd

Step 7: Configure the Apache2.

vim /etc/apache2/sites-available/example.conf

  • Add the following lines:

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html/observium/html/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html/observium/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted

  • Enable the config file.

a2ensite example.conf

  • Disable the default config file.

a2dissite 000-default.conf

  • Provide the following permisiion to /var/www/html/observium folder.

chown -R www-data:www-data /var/www/html/observium/*
chmod 775 -R /var/www/html/observium/*

  • Enable the Rewrite mode.

a2enmod rewrite

  • Restart the Apache2.

service apache2 restart

Step 8: To Configure Observium on Web UI.

  • Change the Directory.

cd /var/www/html/observium

  • Run the following command.

./discovery.php -u

  • Here is the command output.

  • To Add Admin User.


adduser.php <username> <password> <level 1-10> [email]

Where level is:

0 - Disabled means user disabled.
1 - Normal User means User has read access to individual entities.
5 - Global Read means user has global read access.
7 - Global Secure means Read user has global read access with secured info.
8 - Global Secure Read / Limited Write means user has secure global read access with scheduled maintenence read/write.
10 - Administrator means user has full administrative access.


[email protected]:/var/www/html/observium# ./adduser.php admin [email protected] 10

  • Here is the command output.

[email protected]:/var/www/html/observium# ./adduser.php admin [email protected] 10
Observium CE 21.10.11666
Add User
User admin added successfully.

Step 8: To Open the Observium Web Interface.


  • Provide the Username & Password.

  • Now,Observium is Ready.

Leave a Reply