In this article, we will look at how to Install Observium on Ubuntu 18.04 LTS (Bionic Beaver) Linux. Observium is an auto-discovering network monitoring tool with low-maintenance and support for Cisco, Juniper, Linux, Windows, HP, Dell, FreeBSD, Brocade, NetApp, Netscaler and many more.
In our previous article, I wrote about how to How to Install and Configure LibreNMS on Ubuntu 18.04 LTS with Nginx. For the record, LibreNMS is a fork of Observium. Observium focuses on providing a beautiful and powerful yet simple and intuitive interface to the health and status of your network.
Install Observium on Ubuntu 18.04 LTS with Nginx
Observium is powered by PHP, MariaDB and Nginx/Apache web server. Let’s kick off by ensuring all these dependencies are installed on our Ubuntu 18.04 system.
Step 1: Install PHP and required modules
Ubuntu 18.04 has PHP 7.2 in its repositories. Install it by running the commands below on your terminal:
sudo apt-get -y install wget php php-pear php-cgi php-common php-curl \ php-mbstring php-gd php-mysql php-gettext php-bcmath \ php-imap php-json php-xml php-snmp php-fpm php-zip
To confirm the php version installed, use the command php -v
# php -v PHP 7.2.8 (cli) (built: Jul 17 2018 09:50:46) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
Configure and Start PHP-FPM
Ensure date.timezone is set in php.ini to your preferred time zone:
Edit both files:
sudo vim /etc/php/7.2/fpm/php.ini sudo vim /etc/php/7.2/cli/php.ini
Change date.timezone
under [Date]
section:
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Africa/Nairobi
Restart php fpm:
sudo systemctl restart php7.2-fpm.service
Step 2: Install Nginx Web Server
For this setup, we will use Nginx as a web server for Observium, install it by running:
sudo apt-get install nginx
Ensure it is enabled to start on boot:
sudo systemctl enable nginx
Step 3: Install and configure MariaDB
Follow our guide to Install MariaDB 10.x on Ubuntu 18.04
Once you’re done with the installation, create database and user for Observium.
Observium is not fully compatible with MySQL strict mode, for now, please disable this after mysql is installed.
sudo vim /etc/mysql/mariadb.cnf
Within the [mysqld]
section please add:
innodb_file_per_table=1 sql-mode="" lower_case_table_names=0
Then restart mysql
sudo systemctl restart mysql
Once database server has been installed and configured, you need to create a database
for Observium.
create database observium; grant all privileges on observium.* to [email protected] IDENTIFIED by "StrongPassword"; flush privileges; quit
Step 4: Download and Install Observium
Install wget:
sudo apt-get install wget
Add observium system user:
sudo useradd -r -M -d /opt/observium observium
Now add this user to web user group www-data
sudo usermod -a -G observium www-data
When done. proceed to install packages required by Observium
sudo apt-get update sudo apt install rrdtool whois fping imagemagick graphviz \ mtr-tiny nmap python-mysqldb snmp snmpd python-memcache mtr-tiny acl
Download the latest Observium Community edition and extract it.
cd /opt wget http://www.observium.org/observium-community-latest.tar.gz tar xvf observium-community-latest.tar.gz rm observium-community-latest.tar.gz
Change to the observium directory and create a config file.
sudo cp /opt/observium/config.php.default /opt/observium/config.php
Edit the file to set database connection:
sudo vim /opt/observium/config.php
Set like below:
/ Database config --- This MUST be configured $config['db_extension'] = 'mysqli'; $config['db_host'] = 'localhost'; $config['db_user'] = 'observium'; $config['db_pass'] = 'StrongPassword'; $config['db_name'] = 'observium';
Create rrd and logs directory.
sudo mkdir /opt/observium/{rrd,logs}
Change permission of the directory:
sudo chown -R observium:observium /opt/observium/ sudo chmod -R 775 /opt/observium/
Configure snmpd
Copy snmpd sample file:
sudo cp /opt/observium/snmpd.conf.example /etc/snmp/snmpd.conf
Configure String
sudo vim /etc/snmp/snmpd.conf com2sec readonly default 0bs3rv1um
Restart snmpd
sudo systemctl restart snmpd
Step 5: Configure Nginx
Let’s create the VirtualHost definition for Nginx to load Observium web interface:
Check syntax:
$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
if all is okay, restart nginx:
sudo systemctl restart nginx
Step 6: Configure Observium on Web UI
Import MySQL scheme :
cd /opt/observium ./discovery.php -u
Sample output:
Add admin user:
Add a user for accessing the Observium portal. You can add more than one user.
# cd /opt/observium # ./adduser.php admin AdminPass 10 Observium CE 17.9.0 Add User User admin added successfully. # ./adduser.php jmutai password 10 Observium CE 17.9.0 Add User User jmutai added successfully.
10 is the highest level of access
Now open your web browser and start the installer:
http://observium.example.com
Login with configured admin user and password.