Linux has a solution for just about any job. In many instances, you’ll find a number of solutions for a single task. For instance, take the job of network discovery. You’ll find quite a number of available tools for this. One such tool is Observium.

Observium is an open source platform for network discovery and monitoring that can detect a wide-range of devices, platforms, and operating systems.

I want to walk you through the process of installing Observium on Ubuntu Server 18.04. Once complete, you’ll have a user-friendly, web-based tool for monitoring your network.

SEE: Hiring kit: Database administrator (TechRepublic Premium)

What you’ll need

The only things you’ll need to make this work are:

  • A running instance of Ubuntu Server 18.04

  • A user with sudo privileges

You should be able to get this installation completed within 30 minutes.

How to install dependencies

The first thing to do is to install a number of dependencies. Log in to your Ubuntu Server and install the first dependencies with the command:

sudo apt-get install snmp fping python-mysqldb rrdtool subversion whois mtr-tiny ipmitool graphviz imagemagick -y

Once that finishes, Install Apache with the command:

sudo apt-get install apache2 libapache2-mod-php-y

Start and enable Apache with the commands:

sudo systemctl start apache2
sudo systemctl enable apache2

Next we’ll install the necessary PHP components with the command:

sudo apt-get install php php-cli php-mysql php-mysqli php-gd php-json php-pear -y

Now we need to install mcrypt with the following commands;

sudo apt install php-dev libmcrypt-dev php-pear
sudo pecl channel-update
sudo pecl install mcrypt-1.0.1

Open the php.ini file with the command:

sudo nano /etc/php/7.2/cli/php.ini

Add the following line:

Save and close the file.

How to install the database

Now we move on to the database installation. For this, issue the command:

sudo apt-get install mariadb-server -y

Start and enable the database with the command:

sudo systemctl start mariadb
sudo systemctl enable mariadb

Secure the database installation with the command:

sudo mysql_secure_installation

You will be asked to set a root password. After that, answer Y to the remaining questions.

How to create the database for Observium

With the database installed and running, it’s time to create the necessary database for Observium. To do this, log in to MariaDB with the command:

sudo mysql -u root -p

Once at the MariaDB prompt, issue the following commands (where PASSWORD is a strong, unique password):

GRANT ALL PRIVILEGES ON observiumdb.* TO 'observium'@'localhost' IDENTIFIED BY 'PASSWORD';

How to install Observium

Finally, we can install Observium. First download the source with the command:


Unpack that file with the command:

tar -xvzf observium-community-latest.tar.gz

Copy the newly created directory with the command:

sudo cp -ar observium /var/www/html/

Rename the default configuration file with the commands:

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

Open the configuration file for editing with the command:

sudo nano config.php

Make sure to edit the following lines to confirm to our database information (where PASSWORD is the password you created in the MariaDB prompt):

// 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'] = 'observiumdb';

Save and close the file. Populate the database with the command:

sudo ./discovery.php -u

Create two new directories (for event storage) with the command:

sudo mkdir rrd logs

Give those directories the proper permissions with the command:

sudo chown -R www-data:www-data /var/www/html/observium

How to create a virtual host for Apache

Next we must create a virtual host configuration for Apache. Issue the command:

sudo nano /etc/apache2/sites-available/observium.conf

In that file, paste the following (modifying where needed):

DocumentRoot /var/www/html/observium/html

Options FollowSymLinks
AllowOverride None

Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted

ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On

Save and close the file.

Enable the new site with the command:

sudo a2ensite observium

Disable the default site with the command:

sudo a2dissite 000-default

Enable the rewrite module with the command:

sudo a2enmod rewrite

Restart Apache with the command:

sudo systemctl restart apache2

Finally, create an admin user with the command (where PASSWORD is a strong, unique password):

sudo /var/www/html/observium/adduser.php admin PASSWORD 10

You should now be able to point a web browser to http://SERVER_IP (where SERVER_IP is the IP address of the hosting server) and see the Observium login window (Figure A).

Figure A

Log in with the credentials you created with the admin user command and you’ll find yourself on the Observium dashboard. Congratulations, your network discovery/monitoring tool is ready to be used.