任务目标:
- 实现LAMP:Apache + PHP + MySQL + HTTP
- 部署Observium
- 实现网络监控系统
任务平台:
- 私有云:VM-CentOS9-10.10.3.222-Observium
- 操作系统:CentOS 9 Stream X86_64(2023-6-23,release)
部署指南:
系统基本配置
hostnamectl set-hostname VM-CentOS9-Observium
网络配置
nmcli device
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等配置
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload
firewall-cmd --list-all
setenforce 0
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
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:
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并执行安装
mkdir -p /opt/observium && cd /opt
wget http://www.observium.org/observium-community-latest.tar.gz
tar zxvf observium-community-latest.tar.gz
which fping
cd observium
cp config.php.default config.php
vi 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
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
cd /opt/observium
./adduser.php admin Qishi
./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的文件数据和日志存放目录
mkdir rrd
chown apache:apache rrd
mkdir /opt/observium/logs
chown apache:apache /opt/observium/logs
配置Apache Httpd,发布业务
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
systemctl start httpd
systemctl enable httpd