介绍
本指南将向您展示如何在 CentOS/RHEL/Scientific Linux 系统上执行 Observium 安装。
兼容版本
本指南适用于 RHEL 和 CentOS 版本 7 和 8。我们强烈建议使用版本 8 或更高版本。
远程SSH
如果需要安装SSH远程安装,可以通过YUM安装:
yum install openssh
然后就可以启动SSH服务器并添加到系统启动
systemctl enable sshd
systemctl start sshd
RHEL / CentOS 8
存储库
添加 EPEL、OpenNMS 和 REMI 存储库,并切换到 REMI 的 PHP 7.4 包。
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
yum install http://yum.opennms.org/repofiles/opennms-repo-stable-rhel8.noarch.rpm
yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm
yum install yum-utils
dnf module enable php:remi-7.4
套餐
安装 Observium 所需的软件包
yum install wget httpd php php-opcache php-mysqlnd php-gd php-posix php-pear cronie net-snmp \
net-snmp-utils fping mariadb-server mariadb rrdtool subversion whois ipmitool graphviz \
ImageMagick php-sodium python3 python3-mysql python3-PyMySQL
将 Python3 设置为默认 Python 版本
alternatives --set python /usr/bin/python3
如果要监控 libvirt 虚拟机,请安装 libvirt
yum install libvirt
RHEL / CentOS 7
推荐版本
我们强烈推荐使用 CentOS 8
存储库
对于更多扩展包列表,我们首先安装 REMI、OpenNMS 和 EPEL 存储库:
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install http://yum.opennms.org/repofiles/opennms-repo-stable-rhel7.noarch.rpm
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
套餐
安装 yum-utils 并切换到 REMI 的 PHP 7.2 包
yum install yum-utils
yum-config-manager --enable remi-php72
更新所有已安装的软件包
yum update
现在让我们为 Observium 安装所需的软件包:
yum install wget.x86_64 httpd.x86_64 php.x86_64 php-opcache.x86_64 php-mysql.x86_64 php-gd.x86_64 \
php-posix php-pear.noarch cronie.x86_64 net-snmp.x86_64 net-snmp-utils.x86_64 \
fping.x86_64 mariadb-server.x86_64 mariadb.x86_64 MySQL-python.x86_64 rrdtool.x86_64 \
subversion.x86_64 jwhois.x86_64 ipmitool.x86_64 graphviz.x86_64 ImageMagick.x86_64 \
php-sodium.x86_64
如果您希望能够监控 libvirt 虚拟机,请安装 libvirt:
yum install libvirt.x86_64
下载天文台
首先,创建一个 Observium 所在的目录:
mkdir -p /opt/observium && cd /opt
天文台版
Observium 有两个版本,一个是每两年发布一次的开源社区版,另一个是订阅版,每天都有附加功能、快速错误修复和功能改进以及易于使用的基于 SVN 的更新机制。
天文台社区版
如果您想安装社区版,请使用最新的 .tar.gz 版本进行安装。
下载 Observium 最新的 .tar.gz 并解压:
wget http://www.observium.org/observium-community-latest.tar.gz
tar zxvf observium-community-latest.tar.gz
天文台订阅版
如果您拥有有效的 Observium订阅,请使用自动 SVN 发布存储库之一。
我们向stable
打算使用自动更新来保持 Observium 安装最新的人推荐该培训。
对于current
火车:
svn co https://svn.observium.org/svn/observium/trunk observium
对于stable
火车:
svn co https://svn.observium.org/svn/observium/branches/stable observium
MySQL 数据库
启动 MySQL/MariaDB 并将其配置为在启动时运行。
systemctl enable mariadb
systemctl start mariadb
设置 MySQL 根密码:
/usr/bin/mysqladmin -u root password '<mysql root password>'
创建 MySQL 数据库:
mysql -u root -p
<mysql root password>
mysql> CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost' IDENTIFIED BY '<observium db password>';
mysql> exit;
天文台配置
切换到新的安装目录:
cd observium
复制默认配置文件并为您的系统编辑它:
cp config.php.default config.php
编辑 config.php。更改选项以反映您的安装。
MySQL 凭据
您必须将包含在db_user
和 中的 MySQL 用户名和密码更改为db_pass
在上一步中设置的用户名和密码。大多数其他设置可以保留为默认值。
插入 MySQL 架构
使用升级开关运行 discovery.php 脚本-u
以插入初始 MySQL 模式
./discovery.php -u
SQL 修订中出现一些错误是可以的
飞平
由于 Fping 位于不同的位置,因此在 config.php 中添加一行以告诉 Observium。
[root@observium-centos observium]# which fping
/sbin/fping
添加以下内容
$config['fping'] = "/sbin/fping";
SELinux
解释 SELinux 以及如何使 Observium 在其中工作超出了本指南的范围,因此我们将禁用它。如果您有足够的能力维护 SELinux,那么这也是可能的,但它是一种比 RHEL/CentOS 本身更不受支持的配置。
首先,禁用 SELinux。您可以使用以下命令临时执行此操作:
setenforce 0
我们需要永久禁用SELinux,因此您还需要更改/etc/selinux/config
以便将该SELINUX
选项设置为permissive
SELINUX=permissive
系统
创建 rrd 目录以将 RRD 存储在:
mkdir rrd
chown apache:apache rrd
如果该服务器将运行仅Observium,改变/etc/httpd/conf.d/observium.conf并添加以下到结束:
<VirtualHost *>
DocumentRoot /opt/observium/html/
ServerName observium.domain.com
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 创建日志目录
mkdir /opt/observium/logs
chown apache:apache /opt/observium/logs
添加第一个用户,管理员使用级别 10:
cd /opt/observium
./adduser.php <username> <password> <level>
添加要监控的第一个设备:
./add_device.php <hostname> <community> v2c
执行初始发现和轮询运行以填充新设备的数据:
./discovery.php -h all
./poller.php -h all
定时任务
添加 cron 作业,创建一个/etc/cron.d/observium
包含以下内容的新文件:
定时使用
以下示例包含用户名,因此只能在 /etc/crontab 或 /etc/cron.d/observium 中使用。在不删除用户名的情况下,它不会在使用 crontab -e 编辑的用户 crontab 中工作。
# 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
并重新加载 cron 进程:
systemctl reload crond
最终积分
当我们重新启动服务器时,让我们将 httpd 设置为启动:
systemctl enable httpd
systemctl start httpd
允许 HTTP 通过服务器的默认防火墙
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --reload
您现在应该可以看到 http://<server ip>
更新中
更新 Observium 的目的是尽可能快速和轻松。使用我们的 SVN 交付机制,它甚至可以实现自动化。因为我们有快速的开发和模型,我们建议您经常更新,至少每月一次,但每周一两次更好,许多用户每天通过自动 CRON 作业更新。
有关如何更新 Observium订阅版的简短说明,请参阅更新订阅版。
问题
运行时,例如。poller.php 或 discovery.php 有很多关于未定义索引、变量和偏移量的注意事项。要隐藏这些通知,您可以执行以下操作:
nano /etc/php.ini
找到包含以下内容的行:
error_reporting = E_ALL & ~E_DEPRECATED
将此更改为:
error_reporting = E_ALL & ~E_NOTICE
如果本安装教程有问题,请确保您已严格按照安装指南进行操作,查看常见问题解答,然后加入我们的IRC 频道或邮件列表并寻求帮助。