Linux服务器构建与运维管理-CentOS-实验17:使用Observium实现集中监控
棒棒堂智能运维
编辑于 2026年03月11日 19:53
收录于文集
共17篇

一、实验目的

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、系统升级和基础配置

代码块
JavaScript
自动换行
复制代码
# 根据需求添加防火墙配置
# 根据需求,分别添加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准备数据库

代码块
JavaScript
自动换行
复制代码
# 安装 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

代码块
JavaScript
自动换行
复制代码
# 安装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

代码块
JavaScript
自动换行
复制代码
# 获取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初始化配置

代码块
JavaScript
自动换行
复制代码
# 查看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业务发布

代码块
JavaScript
自动换行
复制代码
# 创建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、添加监控设备

代码块
JavaScript
自动换行
复制代码
# 创建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
# 进入浏览器查看添加监控状态
复制成功

代码块
JavaScript
自动换行
复制代码
请根据开展本实验的本地主机所在网络实际情况,选择合适的受监控对象进行SNMP配置。
本实验使用的IP地址是172.20.1.30和172.20.1.36。


复制成功