Skip to content

technbd/Observium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

Observium:

Observium is an auto-discovering network monitoring platform that supports a wide range of devices, including routers, switches, servers, and virtual machines. It provides real-time network performance and health monitoring using SNMP and other protocols.

Observium Versions:

  • Observium Community (Free)

    • Open-source version with essential features.
    • No official support, limited updates.
  • Observium Professional (Paid)

    • Includes extended features, security updates, and support.
    • Faster updates and priority bug fixes.

Basic Requirements:

These requirements relate to the latest CE and Subscription versions of Observium. We strongly recommend not running old releases of Observium.

Package Minimum Recommended Notes
Apache 2.2 > 2.4 Configuration is different between 2.2 and 2.4
fping - > 3.8 fping is not in the expected location on some distros
MySQL 5.6.5 > 5.7 For 8.x do not use version below 8.0.12
MariaDB 10.0 > 10.3
Net-SNMP 5.4 > 5.7 Several persistent bugs still exist in 5.7+
RRDtool 1.5.5 > 1.6 Issues may occur below 1.5. 1.6 has much better performance.
PHP 7.2.x > 8.1 PHP 8.1+ is recommended.

Install Required Packages:

yum install epel-release

Install PHP:

dnf install -y dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf module list php
dnf module reset php

dnf module enable php:8.2

dnf module enable php:remi-8.2
yum install -y wget bash-completion gcc git nmap php php-opcache php-cli php-common php-curl php-mysqlnd php-gd php-mbstring php-posix php-pear php-snmp php-xml php-zip cronie net-snmp net-snmp-utils fping rrdtool subversion whois ipmitool graphviz policycoreutils-devel ImageMagick php-sodium python3 python3-devel python3-mysql python3-PyMySQL
php -v
vim /etc/php.ini

memory_limit = 512M
max_execution_time = 60
date.timezone = Asia/Dhaka

If you want to monitor libvirt virtual machines:

yum install libvirt

Set Python3 to be the default Python version:

alternatives --list
alternatives --config python3

alternatives --set python /usr/bin/python3
python3 -V

Python 3.11.11

Install Mariadb:

dnf install -y mariadb-server mariadb
vim /etc/my.cnf

[mysqld]
bind-address = 0.0.0.0

Set the MySQL root password:

/usr/bin/mysqladmin -u root password '<mysql root password>'
systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb
mysql -u root

CREATE DATABASE observiumdb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE USER 'observium'@'localhost' IDENTIFIED BY 'your_strong_password';

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

ALTER USER 'observium'@'localhost' IDENTIFIED BY 'admin1234';

FLUSH PRIVILEGES;

Download Observium:

Observium comes in two editions, an Open Source Community Edition released on a biannual cycle, and a Subscription Edition with additional features, rapid bug fixes and feature improvements on a daily basis and an easy to use SVN-based update mechanism.

mkdir -p /opt/observium

cd /opt
wget http://www.observium.org/observium-community-latest.tar.gz

tar zxvf observium-community-latest.tar.gz
cd observium

cp config.php.default config.php
vim config.php


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

Fping:

Since Fping is in a different location, add a line to config.php to tell Observium.

which fping

/usr/sbin/fping

Add the following:

vim config.php

$config['fping'] = "/usr/sbin/fping";

Insert MySQL Schema

Run the discovery.php script with the upgrade switch -u in order to insert the initial MySQL schema

./discovery.php -u

Install Apache:

dnf install -y httpd 

Configure Apache:

If the server will be running only Observium, create /etc/httpd/conf.d/observium.conf with these contents :

vim /etc/httpd/conf.d/observium.conf


<VirtualHost *:80>
    ServerAdmin admin@example.com
    DocumentRoot /opt/observium/html/
    ServerName 192.168.10.191
    
   <Directory "/opt/observium/html/">
     AllowOverride All
     Options FollowSymLinks MultiViews
     Require all granted
   </Directory>

    ErrorLog /var/log/httpd/observium_error.log
    CustomLog /var/log/httpd/observium_access.log combined

</VirtualHost>

mkdir -p /opt/observium/logs
chown apache:apache /opt/observium/logs

Create the rrd directory to store RRDs in:

cd /opt/observium

mkdir rrd
chown apache:apache rrd
systemctl restart httpd

Create Admin User:

Add a first user, use level of 10 for admin::

cd /opt/observium

./adduser.php <username> <password> <level>

./adduser.php admin istl123 10

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

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

Configure SNMP:

vim /etc/snmp/snmpd.conf


systemctl restart snmpd

Cron:

vim /etc/cron.d/observium

# Run a complete discovery of all devices once every 6 hours
33  */6   * * *   root    /opt/observium/observium-wrapper discovery >> /dev/null 2>&1

# Run automated discovery of newly added devices every 5 minutes
*/5 *     * * *   root    /opt/observium/observium-wrapper discovery --host new >> /dev/null 2>&1

# Run multithreaded poller wrapper every 5 minutes
*/5 *     * * *   root    /opt/observium/observium-wrapper poller >> /dev/null 2>&1

# Run housekeeping script daily for syslog, eventlog and alert log
13 5      * * * root /opt/observium/housekeeping.php -ysel >> /dev/null 2>&1

# Run housekeeping script daily for rrds, ports, orphaned entries in the database and performance data
47 4      * * * root /opt/observium/housekeeping.php -yrptb >> /dev/null 2>&1
systemctl reload crond

From the host running Observium, use SCP to copy to the client as shown:

scp /opt/observium/scripts/distro user@remote_client:/usr/bin/distro

scp /opt/observium/scripts/distro root@192.168.10.192:/usr/bin/distro

Access Observium:

Open your browser and go to: http://your-server-ip/



Add Hosts in the Observium:

Configure SNMP:

Ensure that the client system has the SNMP package:

apt -y install snmpd

yum -y install net-snmp
vim /etc/snmp/snmpd.conf


## Listen to all interface
agentAddress udp:161


## Change "observium" to your preferred SNMP community string
com2sec readonly default public

group MyROGroup v2c readonly

view all included .1 80

access MyROGroup "" any noauth exact all none none


## Update your location here
syslocation DC, Dhaka
syscontact Admin <admin@technbd.com>


## Distro Detection
extend .1.3.6.1.4.1.2021.7890.1 distro /usr/bin/distro
systemctl start snmpd
systemctl restart snmpd
systemctl status snmpd
ll /usr/bin/distro
chmod +x /usr/bin/distro

Check from localhost:

snmpwalk -v 2c -c public localhost

Check from Observium server:

snmpwalk -v 2c -c public 192.168.10.192

Links:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors