Observium is a self-discovering network monitoring platform that supports a wide range of network devices. It provides automatic discovery of network devices and monitoring capabilities.
| File/Directory | Path | Purpose |
|---|---|---|
| Main config | /opt/observium/config.php |
Main configuration file |
| RRD storage | /opt/observium/rrd/ |
RRD database files |
| Logs | /opt/observium/logs/ |
Log files |
| Discovery | /opt/observium/discovery/ |
Discovery modules |
| Polling | /opt/observium/polling/ |
Polling modules |
| Web config | /etc/nginx/sites-available/observium |
Nginx configuration |
| Cron jobs | /opt/observium/discovery-wrapper |
Scheduled tasks |
<?php
// /opt/observium/config.php
// Database configuration
$config['db_host'] = 'localhost';
$config['db_name'] = 'observium';
$config['db_user'] = 'observium';
$config['db_pass'] = 'SecureDbPassword123!';
$config['db_port'] = 3306;
// Base URL
$config['base_url'] = 'https://observium.example.com';
// Polling settings
$config['poller_frequency'] = 300; // 5 minutes
$config['poller_threads'] = 16;
$config['discovery_frequency'] = 86400; // 24 hours
// SNMP settings
$config['snmp']['version'] = 'v2c';
$config['snmp']['community'] = 'public';
$config['snmp']['timeout'] = 1000;
$config['snmp']['retries'] = 1;
// Alerting settings
$config['alert']['default_mail'] = 'alerts@example.com';
$config['alert']['transports']['email'] = [
'driver' => 'smtp',
'host' => 'smtp.example.com',
'port' => 587,
'username' => 'observium@example.com',
'password' => 'EmailPassword123!',
'encryption' => 'tls',
];
// Logging
$config['log_file'] = '/opt/observium/logs/observium.log';
$config['log_level'] = 'INFO';
// Performance tuning
$config['rrd_purge'] = 0;
$config['update'] = true;
// Multiple SNMP communities
$config['snmp']['communities']['default'] = 'public';
$config['snmp']['communities']['routers'] = 'router-readonly';
$config['snmp']['communities']['switches'] = 'switch-readonly';
// SNMPv3 configuration
$config['snmp']['v3']['username'] = 'monitoring';
$config['snmp']['v3']['authlevel'] = 'authPriv';
$config['snmp']['v3']['authalgo'] = 'SHA';
$config['snmp']['v3']['authpass'] = 'AuthPassword123!';
$config['snmp']['v3']['cryptoalgo'] = 'AES';
$config['snmp']['v3']['cryptopass'] = 'CryptoPassword123!';
// Auto-discovery networks
$config['autodiscovery']['enabled'] = true;
$config['autodiscovery']['networks'] = [
'192.168.1.0/24',
'192.168.2.0/24',
];
// Discovery modules
$config['discovery_modules'] = [
'ports' => true,
'ipv4-addresses' => true,
'processors' => true,
'mempools' => true,
'storage' => true,
'sensors' => true,
];
// Email configuration
$config['alert']['transports']['email'] = [
'driver' => 'smtp',
'host' => 'smtp.example.com',
'port' => 587,
'username' => 'observium@example.com',
'password' => 'EmailPassword123!',
'encryption' => 'tls',
'from' => ['address' => 'observium@example.com', 'name' => 'Observium'],
];
// Alert rules
$config['alert']['rules'] = [
[
'name' => 'Device Down',
'condition' => '%devices.status = 0',
'severity' => 'critical',
'transport' => 'email',
],
[
'name' => 'High CPU',
'condition' => '%processors.processor_usage > 80',
'severity' => 'warning',
'transport' => 'email',
],
];
# Change to Observium directory
cd /opt/observium
# Validate configuration
./validate.php
# Check database schema
./scripts/check_db_schema.php
# Restart discovery
sudo systemctl restart observium-discovery
# Restart polling
sudo systemctl restart observium-poller
# Restart alerter
sudo systemctl restart observium-alerter
# Check status
sudo systemctl status observium-*
# Test discovery
cd /opt/observium
./discovery.php -h 192.168.1.1 -v
# Test polling
./poller.php -h 192.168.1.1 -v
# Test alerting
./alert.php --test
Every deployment is unique. We provide consulting for:
Get personalized assistance: office@linux-server-admin.com | Contact Page