如何在 Debian 11 上安装 Observium 网络监控工具
Observium 是一个用于服务器基础设施的网络监控工具。它是一个维护成本低的自动发现网络监控平台,支持多种网络设备和平台,包括 Cisco、Linux、Windows、HP、Juniper、Dell、FreeBSD、Netscalar、NetApp 等。
Observium 有多个版本,免费版、专业版和企业版。对于家庭实验室来说,Observium 免费版本足以监控您的网络设备。
Observium 还提供直观的用户界面,使您可以轻松获取网络设备的状态。它还提供与第三方应用程序的外部集成,允许您创建自定义模块来收集和报告应用程序中的数据。
在本教程中,您将在 Debian 11 服务器上设置 Observium 网络监控工具。通过本指南,您将在 LAMP 堆栈(Linux、Apache2、MariaDB 和 PHP)下运行 Observium。在本教程结束时,您将运行 Observium 网络监控,并准备好添加要监控的主机或网络设备。
先决条件
要完成本教程,您将需要满足以下要求:
- Debian 11 服务器 - 此示例使用最新版本的 Debian Bulleye,主机名为“observium-server”。
- 具有 sudo/root 管理员权限的非 root 用户。
安装依赖项
Observium 是一个主要用 PHP 编写的网络监控工具。要安装 Observium,您必须安装软件包依赖项,例如 Apache2 Web 服务器、MariaDB 数据库服务器和 PHP 软件包,以及一些网络实用程序,例如 whois、rrdtool、mtr 等。
第一步,您将在 Debian 系统中安装一些软件包依赖项,其中包括 LAMP Stack 和一些网络工具。
运行以下 apt 命令来更新和刷新 Debian 软件包索引。
sudo apt update
现在通过以下 apt 命令安装 Observium 的软件包依赖项。
sudo apt install libapache2-mod-php7.4 php7.4-cli php7.4-mysql php7.4-gd php7.4-json php7.4-bcmath \
php7.4-mbstring php7.4-opcache php7.4-apcu php7.4-curl php-pear snmp fping rrdtool whois \
mariadb-server mariadb-client subversion mtr-tiny ipmitool graphviz imagemagick apache2 \
python3-mysqldb python3-pymysql python-is-python3
当提示确认时,输入 y 进行确认,然后按 ENTER 继续。安装将开始。
安装软件包依赖项后,您接下来将为 Observium 安装设置和配置 LAMP 堆栈。
设置 MariaDB 服务器
您现在将设置用于 Observium 的 MariaDB 服务器。您将通过“mysql_secure_installation”命令保护 MariaDB 部署,然后创建将用于 Observium 安装的新数据库和用户。
在开始之前,请运行以下 systemctl 命令以确保 MariaDB 服务已启用并正在运行。
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
您将看到以下输出 - MariaDB 服务已启用并将在启动时自动运行。以及MariaDB服务当前运行的状态。
接下来,通过下面的“mysql_secure_installation”命令保护 MariaDB 服务器部署。
sudo mysql_secure_installation
现在系统会提示您一些 MariaDB 配置:
- 将MariaDB root用户切换到unix_socket身份验证方法?输入 n 表示编号。
- 设置新的 MariaDB root 密码?输入 y 进行确认,然后键入 MariaDB 部署的新密码并重复该密码。
- 禁用 MariaDB root 用户的远程登录?输入 y 确认并禁用它。
- 从 MariaDB 中删除默认的匿名用户?输入 y。
- 从 MariaDB 中删除默认数据库测试?输入 y。
- 最后,重新加载所有表权限以应用新的更改?输入 y 确认。
现在您已经确保了 MariaDB 安装的安全,并使用 root 密码配置了 MariaDB。然后,您将为 Observium 创建一个新的 MariaDB 数据库和用户。
执行以下命令,以MariaDB root用户登录MariaDB shell。
sudo mysql -u root -p
运行以下查询来为 Observium 创建新的数据库和用户。您还可以使用您的详细信息更改数据库名称、数据库用户和密码。
此示例将创建一个新数据库和用户“observium”,密码为“p4ssw0rd”。
CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost' IDENTIFIED BY 'p4ssw0rd';
FLUSH PRIVILEGES;
现在运行以下查询以确保 MariaDB 用户“observium”具有对“observium”数据库的访问权限和权限。
SHOW GRANTS FOR observium@localhost;
quit
您将看到如下屏幕截图所示的输出 - MariaDB 用户“observium”拥有数据库“observium”的权限。
现在您已经配置了 MariaDB 服务器并为 Observium 创建了数据库和用户。接下来,您将了解 PHP 配置。
设置 PHP
要安装 Observium,您必须编辑 PHP 的一些配置。您将更改 PHP 配置“php.ini”文件并启用 PHP opcache。此外,您将通过 PHPINFO 验证 PHP 和 Apache2 Web 服务器的配置,这将确保 Apache2 和 PHP 正常工作。
使用以下 nano 编辑器命令编辑文件“/etc/php/7.4/apache2/php.ini”。
sudo nano /etc/php/7.4/apache2/php.ini
取消注释以下配置,并确保使用类似的内容更改“error_reporting”选项。
file_uploads = On
default_charset = UTF-8
error_reporting = E_ALL & ~E_NOTICE
date.timezone = Europe/London
在“[opcache]”选项上,更改以下设置。这将启用 PHP opcache 扩展并添加一些配置以获得最大性能。
[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
完成后保存文件并退出编辑器。
现在通过下面的 systemctl 命令重新启动 Apache2 服务并应用新的更改。
sudo systemctl restart apache2
使用以下命令验证 Apache2 服务状态,以确保 Apache2 服务正在运行并启用。
sudo systemctl is-enabled apache2
sudo systemctl status apache2
然后您将看到如下输出 - Apache2 服务已启用并将在启动时自动运行。并且Apache2服务当前状态为运行中。
为了确保 Apache2 和 PHP 正常工作,您将创建一个新的 PHPINFO 文件。运行以下命令创建新的 PHPINFO 文件“/var/www/html/info.php”。
echo '<?php phpinfo(); ?>' | tee /var/www/html/info.php
打开网络浏览器并访问服务器 IP 地址,后跟路径“/info.php”(即:http://192.168.5.30/info.php)。
如果 Apache2 和 PHP 配置正确,您将看到如下所示的 PHPINFO 页面。您将看到有关 PHP 安装和配置的详细信息。
现在您已经配置了 MariaDB 数据库服务器和 PHP,接下来您将下载 Observium 源代码并配置 Observium 安装。
安装Observium网络监控工具
在此步骤中,您将下载 Observium 源代码、设置 Observium 的数据库详细信息、导入数据库架构,最后为 Observium 安装创建管理员用户。
将工作目录移至“/opt”,并通过下面的 wget 命令下载 Observium 源代码。下载过程完成后,您将在当前工作目录中看到文件“observium-community-latest.tar.gz”。
cd /opt
wget http://www.observium.org/observium-community-latest.tar.gz
通过下面的 tar 命令提取文件“observium-community-latest.tar.gz”。
tar zxvf observium-community-latest.tar.gz
现在,Observium 源代码将位于 '/opt/observium' 目录中,该目录将是 Obselevium 监控工具的目标安装目录。
接下来,创建新的附加目录,用于存储日志和 rrd 文件。然后,将新目录的所有权更改为用户和组“www-data”。
mkdir -p /opt/observium/{logs,rrd}
sudo chown -R www-data:www-data /opt/observium/{logs,rrd}
创建其他目录后,移至 Observium 安装目录“/opt/observium”。
cd /opt/observium
将 Observium 默认配置“config.php.default”复制到“config.php”。然后,通过以下 Nano 编辑器编辑新文件“config.php”。
cp config.php.default config.php
nano config.php
使用您的数据库详细信息更改默认数据库设置。
$config['db_extension'] = 'mysqli';
$config['db_host'] = 'localhost';
$config['db_user'] = 'observium';
$config['db_pass'] = 'p4ssw0rd';
$config['db_name'] = 'observium';
完成后保存文件并退出编辑器。
接下来,运行脚本“discovery.php”来更新数据库并导入 Observium 安装的数据库架构。
./discovery.php -u
您将收到如下屏幕截图所示的输出。
导入 Observium 数据库架构后,运行脚本“adduser.php”来设置 Observium 的管理员用户。
此示例将创建一个新用户“admin”,密码为“p4ssw0rd”,角色为“10”,这是 Observium 上的最高角色作为管理员。
./adduser.php admin p4ssw0rd 10
创建用户后,您将看到一条消息,例如“用户管理员添加成功。”
至此,您已经完成了Observium网络监控工具的基本安装和配置。但是,您仍然需要为 Observium 设置 Apache2 虚拟主机配置。
配置 Apache2 虚拟主机
安装并配置 Observium 后,您现在将设置 Observium 的新 Apache2 虚拟主机配置。开始之前,请确保您拥有 Observium 安装的本地域名。
使用以下 nano 编辑器命令创建新的虚拟主机配置“/etc/apache2/sites-available/observium.conf”。
sudo nano /etc/apache2/sites-available/observium.conf
将以下配置添加到文件中并确保更改域名。本示例使用本地域 obs.hwdomain.io。
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName obs.hwdomain.io
DocumentRoot /opt/observium/html
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /opt/observium/html/>
DirectoryIndex index.php
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerSignature On
</VirtualHost>
完成后保存文件并退出编辑器。
现在通过下面的 a2ensite 命令激活虚拟主机配置“observium.conf”。然后,验证 Apache2 配置以确保您拥有正确的配置。
sudo a2ensite observium.conf
sudo apachectl configtest
您现在应该看到诸如“Syntax OK”之类的输出消息,这意味着您的 Apache2 配置是正确的。
最后,运行以下 systemctl 命令来重新启动 Apache2 服务并应用新的更改。
sudo systemctl restart apache2
现在您已经配置了 Apache2 虚拟主机。您现在可以通过本地域访问 Observium 安装。
通过 Web 浏览器访问 Observium
为 Observium 配置虚拟主机后,您现在将通过 Web 浏览器访问 Observium。
打开 Web 浏览器并访问 Observium 安装的本地域名(即:http://obs.hwdomain.io/)。您现在应该看到 Observium 登录页面。
使用您的用户名和密码登录,然后点击“登录”。
现在您应该看到 Observium 管理仪表板。现在,您可以从那里添加新设备以通过 SNMP 监控 Observium。
至此,您已经在 Debian 11 服务器上完成了 Observium 网络监控工具与 LAMP Stack 的基本安装。接下来您将进行初始发现和池。
使用 Cron 设置自动发现
移至 Observium 安装目录并运行脚本“discovery.php”和“poller.php”以填充新设备的数据。
cd /opt/observium
./discovery.php -h all
./poller.php -h all
之后,使用以下 nano 编辑器命令创建新的 cron 配置“/etc/cron.d/observium”。
sudo nano /etc/cron.d/observium
将以下配置添加到文件中。
# 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 >> /dev/null 2>&1
# Run housekeeping script daily for rrds, ports, orphaned entries in the database and performance data
47 4 * * * root /opt/observium/housekeeping.php -yrptb >> /dev/null 2>&1
完成后保存文件并退出编辑器。
通过 cron 配置,自动发现和轮询器将在后台自动运行。
结论
在本教程中,您已在 Debian 11 服务器上安装了带有 LAMP 堆栈(Linux、Apache2、MariaDB 和 PHP)的 Observium 网络监控工具。您还通过您创建的 cron 脚本配置了 Observium 的自动发现设置。
完成所有这些后,您现在可以通过 SNMP 代理将设备添加到 Observium 网络监控工具、添加与管理员级别不同的新用户、设置警报等等。