FedoraRHEL Based

How To Install Observium on Fedora 41

Install Observium on Fedora 41

In this tutorial, we will show you how to install Observium on Fedora 41. Observium is a powerful, open-source network monitoring platform designed for Linux systems that helps network administrators track the performance, availability, and health of their network infrastructure. Whether you’re managing a small home network or enterprise infrastructure, Observium provides valuable insights through its comprehensive monitoring capabilities. In this guide, we’ll walk through the complete process of installing Observium on Fedora 41, from system preparation to configuration and daily operation.

Table of Contents

Understanding Observium and Its Benefits

Observium stands out among network monitoring solutions due to its robust feature set and intuitive interface. This platform enables you to monitor various network devices including servers, routers, switches, and more through protocols like SNMP, Ping, and various agent-based mechanisms.

Key Features and Capabilities

Observium offers two distinct editions to suit different needs:

  • Community Edition: Available for free with biannual releases, this version provides core monitoring functionality for smaller deployments and those new to network monitoring.
  • Subscription Edition: Offering daily updates, enhanced features, expanded hardware support, and priority fixes through an SVN-based update mechanism, this paid version is ideal for production environments.

The platform excels at visualizing network performance through detailed graphs and customizable dashboards. You can monitor bandwidth usage, CPU load, memory utilization, and numerous other metrics critical to network health. What sets Observium apart is its auto-discovery capability that can identify devices on your network and automatically configure appropriate monitoring parameters.

System Requirements for Observium on Fedora 41

Before beginning the installation process, ensure your Fedora 41 system meets the following requirements for optimal performance:

Hardware Specifications

  • For smaller networks (under 20 devices): 2GB RAM, 2 CPU cores, 20GB storage
  • For medium networks (20-100 devices): 4GB RAM, 4 CPU cores, 40GB storage
  • For larger networks (100+ devices): 8GB+ RAM, 8+ CPU cores, 100GB+ storage

Storage requirements increase over time as Observium collects and stores monitoring data in RRD files. For production environments, SSD storage is recommended for better performance, especially when generating graphs and reports.

Network Configuration

Your Fedora server should have a static IP address and properly configured DNS to ensure consistent access to the web interface and reliable network monitoring. Observium requires outbound access to monitored devices on various ports, including 161/UDP for SNMP traffic.

Firewall Considerations

You’ll need to configure your firewall to allow:

  • Inbound HTTP/HTTPS traffic to the web interface
  • Outbound SNMP traffic to monitored devices
  • ICMP traffic for ping monitoring

Preparing Your Fedora 41 Environment

A properly prepared system lays the groundwork for a smooth Observium installation. Let’s start by ensuring your Fedora 41 system is ready.

Update System Packages

First, update all system packages to their latest versions:

sudo dnf update -y
sudo reboot

This ensures you have the latest security patches and dependencies before proceeding.

Configure System Hostname

Set a proper hostname for your Observium server:

sudo hostnamectl set-hostname observium.yourdomain.local

Edit the /etc/hosts file to include your server’s IP address and hostname:

sudo nano /etc/hosts

Add a line like:

192.168.1.100 observium.yourdomain.local observium

Replace the IP address with your server’s actual IP address.

Configure Required Repositories

Observium requires packages that aren’t included in the standard Fedora repositories. Add the EPEL (Extra Packages for Enterprise Linux) repository:

sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-41.noarch.rpm

We’ll also need the REMI repository for PHP packages:

sudo dnf install -y https://rpms.remirepo.net/fedora/remi-release-41.rpm

Finally, install the yum-utils package to help manage repositories:

sudo dnf install -y yum-utils

Enable PHP 8.2 from the REMI repository:

sudo dnf module reset php
sudo dnf module enable php:remi-8.2

This ensures we have the required PHP version for Observium.

Installing Required Packages

Now that our system is prepared, let’s install all the dependencies needed for Observium.

Web Server Components

Install Apache web server:

sudo dnf install -y httpd
sudo systemctl enable --now httpd

PHP and Required Modules

Install PHP and required extensions:

sudo dnf install -y php php-mysqlnd php-gd php-curl php-json php-mbstring php-process php-snmp php-xml php-zip php-opcache

Database Server

Install MariaDB:

sudo dnf install -y mariadb-server
sudo systemctl enable --now mariadb

Monitoring Dependencies

Install SNMP, RRDtool, and other required tools:

sudo dnf install -y rrdtool net-snmp net-snmp-utils fping whois subversion graphviz ImageMagick jwhois nmap ipmitool

These packages provide essential functionality for network discovery, data collection, and visualization.

Verify Package Installation

You can verify that all required packages are installed by running:

rpm -qa | grep -E 'php|httpd|mariadb|rrdtool|snmp'

This command lists all installed packages matching the specified patterns.

Database Configuration

A properly configured database is crucial for Observium’s performance and data storage.

Secure Database Installation

Run the MariaDB security script to set a root password and secure your installation:

sudo mysql_secure_installation

Follow the prompts to:

  • Set a root password
  • Remove anonymous users
  • Disallow root login remotely
  • Remove test database
  • Reload privilege tables

Create Observium Database

Log in to MySQL:

sudo mysql -u root -p

Create the database and user:

CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
EXIT;

Replace ‘your_password’ with a strong password. Make note of this password as you’ll need it later for Observium configuration.

Test Database Connection

Verify you can connect to the database with the new user:

mysql -u observium -p -e "SHOW TABLES FROM observium;"

You should see an empty result since the database is newly created.

Downloading and Installing Observium

Now we’ll download and install the Observium software itself.

Choose Observium Edition

For the Community Edition (free):

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

For the Subscription Edition (paid, requires credentials):

cd /opt
sudo svn co http://svn.observium.org/svn/observium/trunk observium

Set Correct Permissions

Ensure proper ownership and permissions:

sudo chown -R apache:apache /opt/observium
sudo chmod -R 755 /opt/observium

Create Required Directories

Create directories for logs, RRD files, and configuration:

cd /opt/observium
sudo mkdir -p rrd logs
sudo chown apache:apache rrd logs

This ensures Observium can write to these directories.

Configuring Observium

With the software installed, let’s configure Observium for your environment.

Create Configuration File

Copy the default configuration file:

cd /opt/observium
sudo cp config.php.default config.php

Edit the configuration file:

sudo nano config.php

Update the following parameters:

// Database config
$config['db_host'] = 'localhost';
$config['db_user'] = 'observium';
$config['db_pass'] = 'your_password';
$config['db_name'] = 'observium';

// Base URL
$config['base_url'] = 'http://your_server_ip_or_domain/';

// Default community
$config['snmp']['community'] = array('public');
$config['snmp']['version'] = 'v2c';

Replace ‘your_password’ with the actual database password you created earlier.

Initialize Database Schema

Run the database initialization script:

cd /opt/observium
sudo ./discovery.php -u

This creates the required database tables and initializes the schema.

Set Up Fping Path

If fping is installed in a non-standard location, add its path to the configuration:

sudo which fping

Note the output and add it to config.php:

sudo nano config.php

Add the following line:

$config['fping'] = '/usr/bin/fping';

Replace the path with the actual path from the ‘which fping‘ command.

Apache Web Server Configuration

Proper web server configuration ensures secure and efficient access to Observium’s web interface.

Create Virtual Host

Create a new virtual host configuration file:

sudo nano /etc/httpd/conf.d/observium.conf

Add the following configuration:

<VirtualHost *:80>
    ServerName observium.yourdomain.local
    DocumentRoot /opt/observium/html
    
    <Directory /opt/observium/html/>
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    
    ErrorLog /var/log/httpd/observium-error.log
    CustomLog /var/log/httpd/observium-access.log combined
</VirtualHost>

Replace ‘observium.yourdomain.local’ with your actual server name.

Enable Required Apache Modules

Ensure the required Apache modules are enabled:

sudo dnf install -y mod_rewrite

Restart Apache

Apply the new configuration:

sudo systemctl restart httpd

Configure SELinux (if enabled)

If SELinux is enabled on your system, configure it to allow Apache to access Observium:

sudo semanage fcontext -a -t httpd_sys_content_t "/opt/observium(/.*)?"
sudo restorecon -Rv /opt/observium

Additionally, allow Apache to execute SNMP commands:

sudo setsebool -P httpd_can_network_connect 1

Initial Observium Setup

Now that the installation is complete, let’s set up Observium through its web interface.

Access the Web Interface

Open a web browser and navigate to http://your_server_ip_or_domain/

You should see the Observium login page. The default credentials are:

  • Username: admin
  • Password: admin

Install Observium on Fedora 41

Create Administrator Account

After logging in for the first time, you should change the admin password:

  1. Click on your username in the top right corner
  2. Select “Edit User”
  3. Set a new secure password
  4. Click “Save Changes”

Navigate the Dashboard

Familiarize yourself with the Observium dashboard, which displays system status and key metrics. The main sections include:

  • Overview: A summary of your network status
  • Devices: List of all monitored devices
  • Ports: Network interface information
  • Health: System health metrics
  • Inventory: Device inventory information

Configure Email Notifications

To receive alerts, set up email notifications:

  1. Go to Settings > Global Settings
  2. Under “Email” section, configure your mail server details
  3. Save the changes

Adding and Discovering Network Devices

The real value of Observium comes from monitoring your network devices.

Add Devices via Web Interface

To add a device through the web interface:

  1. Go to Devices > Add Device
  2. Enter the hostname or IP address
  3. Select the appropriate SNMP version
  4. Enter the SNMP community string (typically “public” for v1/v2c)
  5. Select device type (if known)
  6. Click “Add Device”

Add Devices via Command Line

You can also add devices via the command line:

cd /opt/observium
./addhost.php hostname community snmpversion

For example:

./addhost.php 192.168.1.1 public v2c

Run Initial Discovery

After adding devices, run the discovery process:

cd /opt/observium
./discovery.php -h all

This will discover details about all added devices.

Setting Up Automated Tasks with Cron

Automation is key to keeping your monitoring data up-to-date.

Create Cron Jobs

Create a cron file for Observium:

sudo nano /etc/cron.d/observium

Add the following cron jobs:

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

# Run polling of all devices every 5 minutes
*/5 * * * * apache /opt/observium/poller-wrapper.py 8 >> /dev/null 2>&1

# Run housekeeping script once a day
15 0 * * * apache /opt/observium/housekeeping.php >> /dev/null 2>&1

This sets up:

  • Complete discovery every 6 hours
  • Regular polling every 5 minutes
  • Daily housekeeping to maintain database efficiency

The number “8” in the poller-wrapper command represents the number of threads to use. Adjust this based on your server’s capabilities.

Verify Cron Jobs

To verify the cron jobs are running correctly, check the logs:

sudo tail -f /opt/observium/logs/poller.log

You should see polling activity occurring at the specified intervals.

Performance Tuning and Optimization

For optimal Observium performance, especially in larger environments, consider these optimizations.

PHP Configuration

Edit PHP configuration:

sudo nano /etc/php.ini

Optimize these settings:

memory_limit = 512M
max_execution_time = 300
date.timezone = "Your/Timezone"

Replace “Your/Timezone” with your actual timezone.

Database Tuning

For MariaDB optimization, edit the configuration:

sudo nano /etc/my.cnf.d/server.cnf

Add these settings under the [mysqld] section:

innodb_buffer_pool_size = 1G
query_cache_size = 64M
join_buffer_size = 4M
tmp_table_size = 64M
max_heap_table_size = 64M

Adjust values based on your server’s available memory.

RRD Storage Management

RRD files can grow significantly over time. Consider placing them on dedicated storage:

sudo mkdir -p /data/rrd
sudo mv /opt/observium/rrd/* /data/rrd/
sudo chown -R apache:apache /data/rrd

Then update config.php:

$config['rrd_dir'] = '/data/rrd';

Securing Your Observium Installation

Security is critical for any network monitoring solution.

Implement HTTPS

Install SSL certificates:

sudo dnf install -y mod_ssl

Generate a self-signed certificate (or use a valid certificate):

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/observium.key -out /etc/pki/tls/certs/observium.crt

Update Apache configuration:

sudo nano /etc/httpd/conf.d/observium.conf

Add SSL configuration:

<VirtualHost *:443>
    ServerName observium.yourdomain.local
    DocumentRoot /opt/observium/html
    
    SSLEngine on
    SSLCertificateFile /etc/pki/tls/certs/observium.crt
    SSLCertificateKeyFile /etc/pki/tls/private/observium.key
    
    <Directory /opt/observium/html/>
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    
    ErrorLog /var/log/httpd/observium-error.log
    CustomLog /var/log/httpd/observium-access.log combined
</VirtualHost>

Restart Apache:

sudo systemctl restart httpd

Set Up Role-Based Access Control

Create additional users with appropriate permissions:

  1. Go to Settings > Users
  2. Click “Add User”
  3. Set username, password, and appropriate access level
  4. Save changes

Troubleshooting Common Issues

Even with careful installation, issues can arise. Here are solutions to common problems.

SNMP Communication Problems

If devices show as down or SNMP data isn’t being collected:

  1. Verify SNMP is enabled on the device
  2. Confirm community strings match
  3. Check firewall rules on both Observium server and monitored devices
  4. Test SNMP manually:
snmpwalk -v2c -c public hostname system

Database Connection Issues

If you encounter database errors:

  1. Verify database credentials in config.php
  2. Check MariaDB service is running:
sudo systemctl status mariadb
  1. Test database connection:
mysql -u observium -p -e "SHOW TABLES FROM observium;"

Web Interface Not Loading

If the web interface isn’t accessible:

  1. Check Apache status:
sudo systemctl status httpd
  1. Verify SELinux permissions:
sudo audit2allow -a
  1. Check Apache error logs:
sudo tail -f /var/log/httpd/error_log

PHP Memory Limit Errors

If you see “Allowed memory size exhausted” errors, increase PHP memory limit:

sudo nano /etc/php.ini

Set a higher memory_limit value:

memory_limit = 512M

Restart Apache:

sudo systemctl restart httpd

SNMP Index File Issues

If you encounter errors with the SNMP index file:

cd /opt/observium/mibs
sudo rm -f .index

This removes the corrupted index file, which will be recreated automatically.

Backup and Recovery Procedures

Regular backups are essential for any critical system.

Configuration Backup

Back up the Observium configuration:

sudo tar -czf observium-config-$(date +%Y%m%d).tar.gz /opt/observium/config.php /etc/httpd/conf.d/observium.conf

Database Backup

Create a database backup script:

sudo nano /usr/local/bin/backup-observium-db.sh

Add the following content:

#!/bin/bash
BACKUP_DIR="/backups/observium"
DATE=$(date +%Y%m%d)
mkdir -p $BACKUP_DIR
mysqldump -u observium -p'your_password' observium > $BACKUP_DIR/observium-db-$DATE.sql
gzip $BACKUP_DIR/observium-db-$DATE.sql
find $BACKUP_DIR -name "observium-db-*.sql.gz" -mtime +30 -delete

Make the script executable:

sudo chmod +x /usr/local/bin/backup-observium-db.sh

Add a cron job for automated backups:

sudo nano /etc/cron.d/observium-backup

Add the following line:

0 1 * * * root /usr/local/bin/backup-observium-db.sh

Congratulations! You have successfully installed Observium. Thanks for using this tutorial for installing the Observium monitoring tool on your Fedora 41 system. For additional help or useful information, we recommend you check the official Observium website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is an experienced Linux enthusiast and technical writer with a passion for open-source software. With years of hands-on experience in various Linux distributions, r00t has developed a deep understanding of the Linux ecosystem and its powerful tools. He holds certifications in SCE and has contributed to several open-source projects. r00t is dedicated to sharing her knowledge and expertise through well-researched and informative articles, helping others navigate the world of Linux with confidence.
Back to top button