How To Install Observium on Fedora 43

Network monitoring is critical for maintaining reliable IT infrastructure. Observium stands out as a powerful, open-source network monitoring platform that automates device discovery and provides comprehensive visibility into your network’s health. This guide walks you through installing Observium on Fedora 43, from initial setup to monitoring your first device.
Whether you’re managing a small office network or enterprise infrastructure, Observium offers auto-discovery capabilities, SNMP monitoring, and an intuitive web interface that simplifies network administration. By following these step-by-step instructions, you’ll have a fully functional monitoring system ready to track routers, switches, servers, and other network devices.
What is Observium?
Observium is a comprehensive network monitoring platform designed to deliver powerful monitoring capabilities combined with an elegant user interface. The platform automatically discovers network devices using protocols like SNMP, CDP, LLDP, and FDP, eliminating manual configuration overhead.
Key Features and Benefits
The platform supports thousands of device types across multiple vendors. It monitors network performance, bandwidth utilization, and system health in real-time. Traffic accounting features enable billing and capacity planning, while threshold-based alerting notifies administrators of potential issues before they become critical.
The web-based dashboard provides intuitive graphs and reports. System administrators gain insights into historical performance trends through RRD-based data storage. The platform’s auto-discovery functionality significantly reduces deployment time compared to manual device configuration.
Prerequisites and System Requirements
Proper planning ensures smooth installation. Understanding hardware and software requirements prevents performance issues later.
Hardware Requirements
A minimum dual-core processor is required, though quad-core CPUs deliver better performance for larger networks. RAM requirements scale with network size—allocate at least 4GB for small deployments and 16GB or more for enterprise environments. Storage needs depend on data retention policies; plan for adequate disk space to store RRD files, which grow over time.
Software Requirements
Fedora 43 must be installed and updated before proceeding. Root or sudo privileges are essential for system configuration. The installation requires Apache 2.4 or higher, PHP 8.1 or newer, MariaDB or MySQL database server, and RRDtool 1.7 or later. Network connectivity is necessary for downloading packages and monitoring remote devices.
Before You Begin
Create system backups to safeguard existing data. Configure a static IP address or fully qualified domain name for consistent access. Review firewall policies to ensure HTTP (port 80) and HTTPS (port 443) traffic can reach your server.
Step 1: Update System and Install Dependencies
Fresh system updates provide security patches and compatibility improvements. This foundational step prevents conflicts during installation.
Update Fedora 43 System
Open a terminal and execute the update command. This refreshes package repositories and installs available updates:
sudo dnf update -y
System updates may require a reboot, especially when kernel updates are installed. Restart your server if prompted to ensure all updates take effect properly.
Install Required Packages
Observium depends on numerous packages for full functionality. Install Apache web server, MariaDB database, PHP with extensions, network tools, and version control utilities using DNF:
sudo dnf install -y httpd mariadb-server php php-mysqlnd php-gd php-posix php-ldap php-mbstring php-snmp php-process php-xml php-cli fping net-snmp net-snmp-utils rrdtool subversion git cronie ImageMagick nmap-ncat
PHP version 8.1 or higher is recommended for optimal performance. Modern PHP versions offer significant speed improvements and security enhancements over legacy releases.
Optional Packages
Virtual machine monitoring requires additional libraries. Install libvirt if you plan to monitor virtualization platforms:
sudo dnf install -y libvirt
These optional components extend Observium’s monitoring capabilities beyond traditional network devices.
Step 2: Configure MariaDB Database
Database configuration establishes the foundation for storing monitoring data. Proper security configuration protects sensitive network information.
Start and Enable MariaDB Service
Launch the database service and configure it to start automatically at boot:
sudo systemctl start mariadb
sudo systemctl enable mariadb
Verify the service is running correctly:
sudo systemctl status mariadb
Active status confirms the database server is operational.
Secure MariaDB Installation
Run the security script to harden your database installation:
sudo mysql_secure_installation
The wizard prompts for several security decisions. Set a strong root password when prompted. Remove anonymous user accounts to prevent unauthorized access. Disable remote root login to restrict administrative access to localhost. Delete the test database as it serves no production purpose. Reload privilege tables to apply changes immediately.
Create Observium Database and User
Access the MariaDB shell as root:
sudo mysql -u root -p
Create a dedicated database and user account for Observium:
CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'observiumuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON observium.* TO 'observiumuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Replace ‘StrongPassword123!’ with a secure password. Document these credentials—you’ll need them during Observium configuration.
Step 3: Download and Install Observium
Installing Observium involves downloading the software and preparing the directory structure.
Navigate to Installation Directory
The /opt directory is standard for third-party applications:
cd /opt
This location keeps Observium separate from system packages, simplifying management and updates.
Download Observium
Two editions are available: Community Edition and Subscription Edition. The Community Edition releases biannually and is free to use. For the Community Edition, download the latest release:
sudo wget http://www.observium.org/observium-community-latest.tar.gz
sudo tar zxvf observium-community-latest.tar.gz
Subscription Edition users with valid licenses can use SVN for automated updates:
sudo svn checkout http://svn.observium.org/svn/observium/trunk /opt/observium
The SVN method simplifies future updates and provides access to rapid bug fixes.
Set Up Directory Structure
Navigate to the installation directory:
cd /opt/observium
Create directories for logs and RRD data files:
sudo mkdir -p rrd logs
These directories store performance metrics and application logs essential for monitoring operations.
Step 4: Configure Observium
Configuration connects Observium to your database and defines operational parameters.
Create Configuration File
Copy the default configuration template:
sudo cp config.php.default config.php
Edit the configuration file using your preferred text editor:
sudo nano config.php
Database Configuration
Update database connection settings to match the credentials created earlier:
$config['db_extension'] = 'mysqli';
$config['db_host'] = 'localhost';
$config['db_user'] = 'observiumuser';
$config['db_pass'] = 'StrongPassword123!';
$config['db_name'] = 'observium';
Ensure these values precisely match your MariaDB configuration.
Additional Configuration Options
Configure the base URL for web access:
$config['base_url'] = "/";
Set administrator email for notifications:
$config['email']['default'] = 'admin@yourdomain.com';
Configure fping location for RHEL-based systems:
$config['fping'] = "/usr/sbin/fping";
Save and close the configuration file.
Initialize Database Schema
Install the database schema using the discovery script:
sudo ./discovery.php -u
This command creates necessary tables and initializes the database structure. Some SQL revision errors during this process are normal and can be ignored.
Create your administrative user account:
sudo ./adduser.php admin password 10
Replace ‘password’ with a secure password. The level ’10’ grants full administrative privileges.
Step 5: Configure Apache Web Server
Apache serves the Observium web interface. Proper configuration ensures reliable access and security.
Create Apache Virtual Host
Create a new configuration file for Observium:
sudo nano /etc/httpd/conf.d/observium.conf
Add the following virtual host configuration:
<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot /opt/observium/html/
ServerName observium.example.com
<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>
Replace ‘observium.example.com’ with your server’s hostname or IP address.
Set File Permissions
Configure ownership for Apache access:
sudo chown -R apache:apache /opt/observium
Set access control lists for logs and RRD directories:
sudo setfacl -d -m group:apache:rwx /opt/observium/rrd /opt/observium/logs
sudo setfacl -R -m group:apache:rwx /opt/observium/rrd /opt/observium/logs
Correct permissions prevent “permission denied” errors in the web interface.
Enable and Start Apache
Start the web server and enable automatic startup:
sudo systemctl start httpd
sudo systemctl enable httpd
Restart Apache to apply configuration changes:
sudo systemctl restart httpd
Check service status to confirm successful startup:
sudo systemctl status httpd
Step 6: Configure Cron Jobs for Automated Monitoring
Automated polling and discovery maintain up-to-date network information.
Understanding Observium Cron Jobs
Observium requires several scheduled tasks. Discovery scripts detect new devices and update existing ones. Poller scripts collect performance metrics at regular intervals. Alert scripts evaluate thresholds and send notifications.
Create Cron Configuration
Create a cron file with monitoring schedules:
sudo nano /etc/cron.d/observium
Add the following cron jobs:
33 */6 * * * root /opt/observium/discovery.php -h all >> /dev/null 2>&1
*/5 * * * * root /opt/observium/discovery.php -h new >> /dev/null 2>&1
*/5 * * * * root /opt/observium/poller-wrapper.py >> /dev/null 2>&1
*/5 * * * * root /opt/observium/alerts.php >> /dev/null 2>&1
The discovery-all job runs every six hours, updating all monitored devices. New device discovery executes every five minutes, quickly adding recently deployed equipment. The poller wrapper collects metrics every five minutes. Alert checking runs at five-minute intervals to ensure timely notifications.
Performance can be improved by adjusting poller threads based on your hardware. Monitor poller execution time at ‘/pollerlog/’ in your web interface. Ideally, the complete poller cycle should finish close to 300 seconds.
Step 7: Configure Firewall Rules
Firewall configuration permits web interface access while maintaining security.
Open Required Ports
Allow HTTP traffic through the firewall:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
If monitoring devices via SNMP from this server, open the SNMP port:
sudo firewall-cmd --permanent --add-port=161/udp
Reload firewall rules to activate changes:
sudo firewall-cmd --reload
SELinux Considerations
Fedora enforces SELinux by default. For testing purposes, set SELinux to permissive mode:
sudo setenforce 0
Make the change permanent by editing the SELinux configuration:
sudo nano /etc/selinux/config
Change the SELINUX directive to permissive:
SELINUX=permissive
Production environments should properly configure SELinux contexts rather than disabling enforcement.
Step 8: Access Observium Web Interface
The web interface provides centralized monitoring and management capabilities.
First Login
Open your web browser and navigate to your server’s address:
http://your-server-ip/
Or if you configured a domain name:
http://observium.example.com/
Log in using the administrative credentials created earlier. The default username is ‘admin’ with the password you specified during setup.

Web Interface Overview
The dashboard displays an overview of monitored devices and network status. Navigation menus provide access to device lists, graphs, alerts, and system settings. Initially, the interface appears empty until you add monitoring targets.
Step 9: Add Your First Device
Populating Observium with devices enables actual network monitoring.
Configuring SNMP on Target Devices
Before adding devices to Observium, ensure SNMP is configured on target systems. For Linux servers, install and configure net-snmp:
sudo dnf install -y net-snmp
Edit the SNMP daemon configuration:
sudo nano /etc/snmp/snmpd.conf
Add a basic SNMPv2 community string:
rocommunity public
Start and enable the SNMP daemon:
sudo systemctl start snmpd
sudo systemctl enable snmpd
For enhanced security, use SNMPv3 with authentication and encryption.
Adding Devices Manually
In the Observium web interface, click “Devices” then “Add Device”. Enter the device hostname or IP address. Specify the SNMP community string (default is ‘public’ for SNMPv2). Select the appropriate SNMP version.
For SNMPv3, provide authentication credentials including username, authentication protocol, authentication password, privacy protocol, and privacy password.
Using Command-Line Device Addition
Alternatively, add devices via command line:
sudo ./add_device.php hostname community_string v2c
For SNMPv3 with authentication:
sudo ./add_device.php hostname v3 authPriv username authpassword privpassword
Initial Discovery and Polling
After adding a device, run manual discovery:
sudo ./discovery.php -h hostname
Execute an initial poll to collect data:
sudo ./poller.php -h hostname
The web interface displays discovered information within minutes. Graphs populate after several polling cycles collect sufficient historical data.
Post-Installation Configuration
Fine-tuning enhances monitoring effectiveness and system reliability.
Email Notifications
Configure SMTP settings in config.php for alert delivery. Test email functionality by triggering a test alert. Create alert contacts and define notification rules through the web interface.
User Management
Add additional user accounts for team members. Assign appropriate permission levels—level 10 for administrators, level 5 for read-write users, level 1 for read-only access. Implement role-based access control in multi-user environments.
Performance Tuning
Adjust polling intervals based on network size and requirements. For large deployments, increase parallel poller processes. Monitor storage I/O to prevent disk bottlenecks that slow the web interface. Review poller performance logs regularly at ‘/pollerlog/’.
Database optimization improves query performance. Consider enabling SNMP max-rep globally for faster bulk queries:
$config['snmp']['max-rep'] = true;
Troubleshooting Common Issues
Identifying and resolving problems ensures continuous monitoring coverage.
Web Interface Not Loading
Check Apache service status if the interface fails to load:
sudo systemctl status httpd
Review Apache error logs for diagnostic information:
sudo tail -f /var/log/httpd/observium-error-log
Verify file permissions allow Apache to read Observium files. SELinux policies may block access—review audit logs for denials.
Database Connection Errors
“DB Error 2002: Connection refused” indicates database connectivity problems. Verify MariaDB is running:
sudo systemctl status mariadb
Confirm database credentials in config.php match your MariaDB configuration. Memory constraints can cause database crashes—monitor system resources and allocate additional RAM if needed.
Missing Data in Graphs
Insufficient poller processes cause incomplete data collection. Increase poller threads in your cron configuration. Storage I/O bottlenecks prevent timely RRD updates—monitor disk performance. Verify cron jobs execute correctly by checking ‘/var/log/cron’.
Network connectivity issues prevent device polling. Test SNMP access manually using snmpwalk:
snmpwalk -v2c -c public hostname
SNMP Issues
Incorrect community strings prevent device discovery. Verify SNMP configuration on target devices. Firewall rules may block SNMP traffic—ensure UDP port 161 is accessible. Test basic SNMP functionality before troubleshooting Observium specifically.
Security Best Practices
Protecting your monitoring infrastructure safeguards sensitive network information.
Hardening Your Installation
Change default administrative passwords immediately after installation. Use complex passwords combining uppercase, lowercase, numbers, and special characters. Implement HTTPS using SSL/TLS certificates to encrypt web traffic. Free certificates from Let’s Encrypt provide strong encryption at no cost.
Apply system security updates regularly. Subscribe to security mailing lists for Fedora and Observium to stay informed of vulnerabilities.
Access Control
Restrict web interface access by IP address using Apache configuration. Implement Apache authentication for an additional security layer. Limit SNMP access through firewall rules allowing only necessary source addresses.
Database Security
Disable remote MySQL/MariaDB access if not required. Bind the database server to localhost only. Perform regular database backups to prevent data loss. Use strong, unique passwords for all database accounts.
Monitoring and Logging
Enable detailed logging for security events and authentication attempts. Review logs regularly for suspicious activities and unauthorized access attempts. Configure alerts for failed login attempts and unusual system behavior.
Congratulations! You have successfully installed -. Thanks for using this tutorial for installing the Observium monitoring tool on your Fedora 43 Linux system. For additional help or useful information, we recommend you check the official Observium website.