一、实验目的
1、了解Observium的基本原理;
2、掌握使用Observium建设监控系统。
二、实验学时
2学时
三、实验类型
创新性
四、实验需求
1、硬件
每人配备计算机1台。
2、软件
Windows操作系统,安装Oracle VM VirtualBox软件,安装Mobaxerm软件。
3、网络
本地主机与虚拟机能够访问互联网,不使用DHCP服务。
4、工具
无
五、实验任务
1、完成Observium的部署与初始化配置;
2、完成Observium对Linux、Windows等设备的监控。
六、实验环境
1、本实验需要VM 1台;
2、本实验VM配置信息如下表所示;

3、本实验拓扑图。
无
4、本实验操作演示视频 。
本实验为视频集的第11集:网页链接
七、实验内容及步骤
1、准备虚拟机
(1)创建。
(2)配置。
准备虚拟机操作步骤参考《实验01:安装Linux操作系统》。
2、系统升级和基础配置
# 根据需求添加防火墙配置
# 根据需求,分别添加80/tcp、443/tcp、161/udp端口访问
[root@Lab-17-Task-01 ~]# firewall-cmd --permanent --add-port=161/udp
[root@Lab-17-Task-01 ~]# firewall-cmd --permanent --add-port=443/tcp
[root@Lab-17-Task-01 ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
[root@Lab-17-Task-01 ~]# firewall-cmd --reload
# 配置SELinux
[root@Lab-17-Task-01 ~]# setenforce 0
# 修改SELinux配置文件
[root@Lab-17-Task-01 ~]# vi /etc/selinux/config
-------------------- config ----------------------
SELINUX=permissive
--------------------------------------------------
# 重新启动服务器
[root@Lab-17-Task-01 ~]# reboot 3、安装Observium
3.1准备数据库
# 安装 MariaDB Server
# 创建数据缓存
[root@Lab-17-Task-01 ~]# dnf makecache
# 使用dnf工具安装MariaDB
[root@Lab-17-Task-01 ~]# dnf install -y mariadb-server mariadb
# 启动MySQL服务
[root@Lab-17-Task-01 ~]# systemctl start mariadb
# 将MySQL服务设置为开机自启动
[root@Lab-17-Task-01 ~]# systemctl enable mariadb
# 查看MySQL服务状态
[root@Lab-17-Task-01 ~]# systemctl status mariadb
# 进行数据库配置
# 设置登录密码
[root@Lab-17-Task-01 ~]# mysqladmin -u root password '123456'
# 创建数据库及权限
[root@Lab-17-Task-01 ~]# systemctl restart mariadb
[root@Lab-17-Task-01 ~]# mysqladmin -uroot -p123456
# 输入密码后进入MariaDB的管理模式,并进行以下操作
mysql> CREATE DATABASE observiumDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> GRANT ALL PRIVILEGES ON observiumDB.* TO 'observiumUser'@'localhost' IDENTIFIED BY 'observiumUser#2023';
mysql> exit; 3.2设置Repositories
# 安装CRB、EPEL、REMI、Reposi
# dnf工具安装CRB
[root@Lab-17-Task-01 ~]# dnf config-manager --set-enabled crb
# dnf工具安装EPEL
[root@Lab-17-Task-01 ~]# dnf install epel-release -y
# dnf工具安装REMI、Reposi
[root@Lab-17-Task-01 ~]# dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm -y
# 查看PHP版本,并设置8.2版本为默认
[root@Lab-17-Task-01 ~]# dnf module list php
[root@Lab-17-Task-01 ~]# dnf module enable php:remi-8.2 -y
# 安装Observium 所需要的基础工具
[root@Lab-17-Task-01 ~]# dnf install wget httpd php php-opcache php-mysqlnd php-gd php-posix \
php-pear cronie net-snmp net-snmp-utils fping \
rrdtool subversion whois ipmitool graphviz \
ImageMagick php-sodium python3 python3-PyMySQL -y 3.3安装Observium
# 获取Observium安装程序
# 创建Observium程序目录
[root@Lab-17-Task-01 ~]# mkdir -p /opt/observium && cd /opt
# 下载Observium程序压缩包
[root@Lab-17-Task-01 opt]# wget http://www.observium.org/observium-community-latest.tar.gz
# 解压
[root@Lab-17-Task-01 opt]# dnf install -y tar
[root@Lab-17-Task-01 opt]# tar -zxvf observium-community-latest.tar.gz 3.4初始化配置
# 查看Fping工具的安装路径
[root@Lab-17-Task-01 opt]# which fping
# 修改配置Observium config文件
# 使用vi工具进入配置文件
[root@Lab-17-Task-01 opt]# cd observium
[root@Lab-17-Task-01 observium]# cp config.php.default config.php
[root@Lab-17-Task-01 observium]# vi config.php
-------------------- config.php ------------------
$config['db_host'] = 'localhost';
$config['db_name'] = 'observiumDB';
$config['db_user'] = 'observiumUser';
$config['db_pass'] = 'observiumUser#2023';
$config['fping'] = "/usr/sbin/fping";
--------------------------------------------------
# 向数据库中导入初始数据
[root@Lab-17-Task-01 observium]# ./discovery.php -u
# 配置Cron,执行自动采集数据
[root@Lab-17-Task-01 observium]# cat >> /etc/cron.d/observium << EOF
# Run a complete discovery of all devices once every 6 hours
33 */6 * * * root /opt/observium/discovery.php -h all >> /dev/null 2>&1
# Run automated discovery of newly added devices every 5 minutes
*/5 * * * * root /opt/observium/discovery.php -h new >> /dev/null 2>&1
# Run multithreaded poller wrapper every 5 minutes
*/5 * * * * root /opt/observium/poller-wrapper.py >> /dev/null 2>&1
# Run housekeeping script daily for syslog, eventlog and alert log
13 5 * * * root /opt/observium/housekeeping.php -ysel
# Run housekeeping script daily for rrds, ports, orphaned entries in the database and performance data
47 4 * * * root /opt/observium/housekeeping.php -yrptb
EOF
# 重新加载Cron
[root@Lab-17-Task-01 observium]# systemctl reload crond 3.5业务发布
# 创建rrd存放数据的目录
[root@Lab-17-Task-01 observium]# mkdir rrd
# 修改rrd目录的所有者和所属组为apache
[root@Lab-17-Task-01 observium]# chown apache:apache rrd
# 创建Observium log目录
[root@Lab-17-Task-01 observium]# mkdir /opt/observium/logs
# 设置/opt/observium/logs目录的所有者和所属组为apache
[root@Lab-17-Task-01 observium]# chown apache:apache /opt/observium/logs
# 修改httpd配置文件,发布Observium
[root@Lab-17-Task-01 ~]# vi /etc/httpd/conf/httpd.conf
-------------------- httpd.conf ------------------
<VirtualHost *>
DocumentRoot /opt/observium/html/
CustomLog /opt/observium/logs/access_log combined
ErrorLog /opt/observium/logs/error_log
<Directory "/opt/observium/html/">
AllowOverride All
Options FollowSymLinks MultiViews
Require all granted
</Directory>
</VirtualHost>
--------------------------------------------------
# 启动Apache服务
[root@Lab-17-Task-01 ~]# systemctl start httpd
# 设置Apache服务为开机自启动
[root@Lab-17-Task-01 ~]# systemctl enable httpd 4、访问测试
在本地主机中使用浏览器访问:http://172.20.1.30查看是否安装成功
5、添加监控设备
# 创建Observium 的管理账号
# 进入Observium目录下进行配置
[root@Lab-17-Task-01 ~]# cd /opt/observium
# 创建命令格式:./adduser.php <username> <password> <level>
[root@Lab-17-Task-01 observium]# ./adduser.php root 123456 5
# 配置SNMP监控服务
# CentOS修改SNMP的配置文件。
root@Lab-17-Task-01 observium]# vi /etc/snmp/snmpd.conf
-------------------- snmpd.conf ------------------
......
com2sec notConfigUser 172.20.1.30 OpenLabMonitor
......
view systemview included .1.3.6.1
......
--------------------------------------------------
# 启动SNMP服务
[root@Lab-17-Task-01 observium]# systemctl start snmpd
# 设置SNMP服务为开机自启动
[root@Lab-17-Task-01 observium]# systemctl enable snmpd
# Windows安装SNMP客户端
# 方法一:在系统中依次打开“控制面板”—>“程序”—>“程序和功能”—>“打开或关闭 Windows 功能”,选择“简单网络管理协议(SNMP)”(要全选)
# 方法二:在系统中依此打开“设置”->“应用和功能”->“可选功能”->“WMI SNMP供应商”,进行功能添加即可。
# 功能添加完成后,配置SNMP服务
# ①"Windows管理工具"—>""服务""—>"SNMP Service",打开“SNMP Service”的属性对话框,在对话化框中选择“安全”选项,添加“接受的社区名称”(只读)。
# ②选择配置接受主机的SNMP数据包。当选择“接受来自下列主机的SNMP数据包”时,需要添加监控系统的地址。
# ③应用配置
# 添加防火墙策略
# ①“Windows管理工具”—>“高级安全Windows Defender防火墙”,打开“入站规则”配置。
# ②选择SNMP服务(UDP In),启用并允许连接
# ③设置作用域,允许来自监控系统IP地址的包通过
# 执行添加命令进行CentOS、Windows设备监控,参考命令如下。
# 添加命令格式
# 进入ObserviumDB 目录添加
#./add_device.php <hostname/IP> <community> v2c
[root@Lab-17-Task-01 observium]# ./add_device.php 172.20.1.30 OpenLabMonitor v2c
[root@Lab-17-Task-01 observium]# ./add_device.php 172.20.1.36 OpenLabMonitor v2c
# 进入浏览器查看添加监控状态
请根据开展本实验的本地主机所在网络实际情况,选择合适的受监控对象进行SNMP配置。
本实验使用的IP地址是172.20.1.30和172.20.1.36。