2023-4-CentOS9Stream:通过Observium实现网络监控系统

92 阅读4分钟

任务目标:

  1. 实现LAMP:Apache + PHP + MySQL + HTTP
  2. 部署Observium
  3. 实现网络监控系统

任务平台:

  1. 私有云:VM-CentOS9-10.10.3.222-Observium
  2. 操作系统:CentOS 9 Stream X86_64(2023-6-23,release)

部署指南:

系统基本配置
hostnamectl set-hostname VM-CentOS9-Observium
网络配置
#查看网卡信息
nmcli device
#配置IPv4地址(请根据实际情况调整网络链接的名称ens33)
nmcli connection modify ens192 ipv4.addresses "10.10.3.222/24" ipv4.gateway 10.10.3.1
#重新载入网络链接的配置信息
nmcli connection reload
nmcli connection up ens192
系统升级、关闭防火墙和SELinux等配置
#配置防火墙,允许443/tcp端口访问
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload
firewall-cmd --list-all

#配置SELinux
setenforce 0
#修改SELinux配置文件
vi /etc/selinux/config
#修改的内容是:
SELINUX=permissive

#重新启动服务器
reboot
安装MariaDB Server并配置
#安装MariaDB Server
yum makecache
yum install -y mariadb-server mariadb
#修改MySQL Server的服务器参数,满足Cacti运行需要

#启动MySQL服务,并设置位自动启动
systemctl start mariadb
systemctl enable mariadb
#查看MySQL服务状态
systemctl status mariadb

#创建Observium所需要的数据库及权限
#设置MariaDB的root账户的密码为:ruan#labs313mariadb
mysqladmin -u root password 'ruan#labs313mariadb'
#创建数据库及权限
mysql -uroot -pruan#labs313mariadb
#输入密码后进行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;
设置Repositories和Packages,为Observium安装做准备
#安装CRB、EPEL、REMI Repositories
dnf config-manager --set-enabled crb
dnf install epel-release -y
dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm -y
dnf makecache

#查看PHP版本,并设置8.2版本为默认
dnf module list php
dnf module enable php:remi-8.2 -y

#安装Observium所需要的基础工具
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

#如果需要监控libvirt VM,需要安装libvirt,否则不需要执行
dnf install libvirt -y
获取Observium并执行安装
#Observium有两个版本,本例部署Upgrading Community Edition
#获取Observium程序并进行部署和发布,最新版本请查看官网observium.org
mkdir -p /opt/observium && cd /opt
wget http://www.observium.org/observium-community-latest.tar.gz
tar zxvf observium-community-latest.tar.gz

#查看Fping工具的安装路径,不同系统Fping的安装路径不一致
which fping
#记录Fping工具安装路径

#配置Obuservium config文件
cd observium
cp config.php.default config.php
vi config.php
#将数据库和权限信息填写到config.php
#将Fping工具的安装路径填写到config.php
#修改的具体内容是:
$config['db_host']      = 'localhost';
$config['db_name']      = 'observiumDB';
$config['db_user']      = 'observiumUser';
$config['db_pass']      = 'observiumUser#2023';
$config['fping']        = "/usr/sbin/fping";

#向数据库中导入初始数据
./discovery.php -u

#配置Cron,执行自动采集数据
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
systemctl reload crond

#创建Observium的管理员账号
cd /opt/observium
./adduser.php admin Qishi#09319 10
#创建命令的格式:./adduser.php <username> <password> <level>
#Level的信息请阅读:https://docs.observium.org/user_levels/

#以下命令为示例:添加第1台监控设备,可不执行
./add_device.php <hostname> <community> v2c
#示例
./add_device.php 10.10.0.1 OpenLabsMonitor v2c
./add_device.php 10.10.1.22 OpenLabsMonitor v2c
./add_device.php 10.10.1.23 OpenLabsMonitor v2c
./add_device.php 10.10.1.23 OpenLabsMonitor v2c
./add_device.php 10.10.1.24 OpenLabsMonitor v2c
./add_device.php 10.10.1.25 OpenLabsMonitor v2c
./add_device.php 10.10.1.25 OpenLabsMonitor v2c
./add_device.php 10.10.1.11 OpenLabsMonitor v2c
./add_device.php 10.10.1.12 OpenLabsMonitor v2c
./add_device.php 10.10.1.13 OpenLabsMonitor v2c
./add_device.php 10.10.1.14 OpenLabsMonitor v2c
./add_device.php 10.10.3.4 OpenLabsMonitor v2c
./add_device.php 10.10.3.5 OpenLabsMonitor v2c
./add_device.php 10.10.3.6 OpenLabsMonitor v2c
./add_device.php 10.10.3.7 OpenLabsMonitor v2c
./add_device.php 10.10.3.70 OpenLabsMonitor v2c
#以下命令为示例:可以进行自动发现监控设备,可不执行
./discovery.php -h all
#以下命令为示例:采集数据,可不执行
./poller.php -h all
配置Observium的文件数据和日志存放目录
#创建RRD存放数据的目录
mkdir rrd
chown apache:apache rrd

#创建Observium Log目录,并配置权限
mkdir /opt/observium/logs
chown apache:apache /opt/observium/logs
配置Apache Httpd,发布业务
#修改HTTPD配置文件,发布Observium
cat > /etc/httpd/conf.d/observium.conf << EOF
<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>
EOF

#启动Apache Httpd Server,并设置为开机自启动
systemctl start httpd
systemctl enable httpd

#在本地主机中使用浏览器访问:http://10.10.3.222