Observium 网络管理平台教程
Observium 是一款成熟的网络监控和管理平台,通过 SNMP 协议自动发现和监控网络中的各种设备。它以其直观的界面和强大的自动发现能力著称,支持上千种设备类型,包括 Cisco、Juniper、Huawei、Linux 服务器等。Observium 分为社区版(免费)和专业版(付费),社区版已经具备完整的基础监控功能。本文介绍如何在搬瓦工 VPS 上部署 Observium 社区版。
一、系统要求
- 操作系统:Ubuntu 22.04 LTS(推荐)或 Debian 12
- 内存:最低 1GB,建议 2GB 以上
- 磁盘:至少 20GB 可用空间(RRD 数据会持续增长)
- 软件依赖:Apache/Nginx、PHP 8.x、MariaDB/MySQL、SNMP 工具
二、安装基础依赖
apt update
apt install libapache2-mod-php php-cli php-mysql php-gd php-snmp php-json php-curl php-pear snmp fping mariadb-server mariadb-client graphviz python3-mysqldb python3-pymysql rrdtool subversion whois mtr-tiny ipmitool -y
三、配置数据库
# 创建数据库和用户
mysql -u root <<MYSQL
CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'observium'@'localhost' IDENTIFIED BY 'ObserviumPass123';
GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost';
FLUSH PRIVILEGES;
MYSQL
四、下载安装 Observium
# 创建安装目录
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
五、配置 Observium
# 复制默认配置文件
cp config.php.default config.php
nano config.php
修改数据库连接信息:
$config['db_host'] = 'localhost';
$config['db_name'] = 'observium';
$config['db_user'] = 'observium';
$config['db_pass'] = 'ObserviumPass123';
// SNMP 默认社区字符串
$config['snmp']['community'] = array('public');
// 时区设置
$config['timezone'] = 'Asia/Shanghai';
5.1 初始化数据库
./discovery.php -u
5.2 创建管理目录
mkdir -p logs rrd
chown www-data:www-data logs rrd
六、配置 Apache
cat > /etc/apache2/sites-available/observium.conf <<'EOF'
ServerName observium.example.com
DocumentRoot /opt/observium/html
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/observium_error.log
CustomLog ${APACHE_LOG_DIR}/observium_access.log combined
EOF
a2dissite 000-default
a2ensite observium
a2enmod rewrite
systemctl reload apache2
七、创建管理员账户
cd /opt/observium
./adduser.php admin StrongAdminPass 10
参数中的 10 表示最高权限级别。
八、添加监控设备
8.1 通过命令行添加
# 添加设备(使用 SNMPv2c)
./add_device.php 192.168.1.1 public v2c
# 添加设备(使用 SNMPv3)
./add_device.php 192.168.1.1 '' v3 authPriv username authpass privpass sha aes
8.2 手动执行发现和轮询
# 发现设备信息
./discovery.php -h all
# 轮询设备数据
./poller.php -h all
九、配置定时任务
cat > /etc/cron.d/observium <<'EOF'
# 每 5 分钟执行一次发现和轮询
*/5 * * * * root /opt/observium/discovery.php -h all >> /dev/null 2>&1
*/5 * * * * root /opt/observium/poller-wrapper.py 4 >> /dev/null 2>&1
# 每天执行一次完整发现
33 2 * * * root /opt/observium/discovery.php -h all >> /dev/null 2>&1
EOF
十、配置 SNMP 告警
# 在 config.php 中添加告警配置
$config['alerts']['email']['enable'] = TRUE;
$config['alerts']['email']['default'] = "admin@example.com";
$config['email']['default_from'] = "observium@example.com";
$config['email']['backend'] = "smtp";
$config['email']['smtp_host'] = "smtp.example.com";
$config['email']['smtp_port'] = 587;
十一、Observium 与 LibreNMS 对比
- Observium 社区版:免费但功能有限,不支持告警规则自定义,更新频率较低。适合简单的设备监控场景。
- Observium 专业版:付费,功能更全面,支持分布式轮询、高级告警、SLA 监控等。
- LibreNMS:完全开源免费,社区活跃,功能对标 Observium 专业版。如果需要更强大的免费方案,推荐使用 LibreNMS。
十二、常见问题
12.1 设备添加失败
# 测试 SNMP 连通性
snmpwalk -v2c -c public 目标IP sysDescr
# 检查防火墙是否开放 UDP 161 端口
ufw allow 161/udp
12.2 图表不显示
# 检查 RRD 目录权限
chown -R www-data:www-data /opt/observium/rrd/
# 手动运行轮询检查错误
./poller.php -h 设备名 -d
总结
Observium 是一款界面友好、自动化程度高的网络监控平台,特别擅长自动识别和分类网络设备。对于预算有限但需要基础网络监控功能的用户,Observium 社区版是不错的起步选择。如果需要更全面的免费方案,可以考虑 LibreNMS。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的优惠,通过 bwh81.net 进入官网购买。