如何在 Debian 11 上安装 OpenNMS 网络监控解决方案
在此页
- 先决条件
- 安装所需的依赖项
- 添加 OpenNMS 存储库
- 在 Debian 11 上安装 OpenNMS
- 为 OpenNMS 创建数据库和用户
- 配置 OpenNMS
- 初始化并启动 OpenNMS
- 访问 OpenNMS 网络界面
- 结论
OpenNMS 是一个用 Java 编写的免费开源开放网络管理系统。它是一个网络监控应用程序,使用 SNMP 协议从本地和网络主机收集关键信息。它可以安装在 Linux 和 Windows 操作系统上,并提供基于 Web 的界面以通过 Web 浏览器监控网络流量。它提供了一组丰富的功能,包括供应、服务监控、事件管理、图表支持和性能测量。
在这篇文章中,我们将向您展示如何在 Debian 11 上安装 OpenNMS。
先决条件
- 运行 Debian 11 的服务器。
- 在服务器上配置了根密码。
安装所需的依赖项
首先,使用以下命令将系统包更新到最新版本:
apt-get update -y
更新所有包后,您还需要将 Java 和其他所需的依赖项安装到您的服务器。您可以通过运行以下命令来安装所有这些:
apt-get install default-jdk gnupg2 curl wget -y
安装所有包后,您可以使用以下命令验证 Java 版本:
java -version
您应该在以下输出中看到 Java 版本:
openjdk version "11.0.12" 2021-07-20
OpenJDK Runtime Environment (build 11.0.12+7-post-Debian-2)
OpenJDK 64-Bit Server VM (build 11.0.12+7-post-Debian-2, mixed mode, sharing)
完成后,您可以继续下一步。
添加 OpenNMS 存储库
默认情况下,OpenNMS 软件包不包含在 Debian 11 默认存储库中。因此,您需要将 OpenNMS 存储库添加到 APT。您可以使用以下命令添加它:
nano /etc/apt/sources.list.d/opennms.list
添加以下行:
deb https://debian.opennms.org stable main
deb-src https://debian.opennms.org stable main
保存并关闭文件,然后使用以下命令添加 GPG 密钥:
wget -O - https://debian.opennms.org/OPENNMS-GPG-KEY | apt-key add -
添加存储库和密钥后,使用以下命令更新存储库缓存:
apt-get update -y
完成后,您可以继续下一步。
在 Debian 11 上安装 OpenNMS
现在,运行以下命令将 OpenNMS 软件包安装到您的系统中。
apt-get install opennms -y
安装 OpenNMS 后,您应该会看到以下输出:
*** Installation complete. You must still run the installer at
*** $OPENNMS_HOME/bin/install to be sure your database is up
*** to date before you start OpenNMS. See the install guide at
*** http://www.opennms.org/wiki/Installation:Debian and the
*** release notes for details.
Setting up opennms-webapp-jetty (28.1.1-1) ...
Setting up opennms-source (28.1.1-1) ...
Setting up opennms (28.1.1-1) ...
Setting up liblwp-protocol-https-perl (6.10-1) ...
Setting up libwww-perl (6.52-1) ...
Setting up libxml-parser-perl:amd64 (2.46-2) ...
Setting up libxml-twig-perl (1:3.52-1) ...
Processing triggers for man-db (2.9.4-2) ...
Processing triggers for libc-bin (2.31-13) ...
上面的命令也会自动安装 PostgreSQL 服务器包。您可以使用以下命令启动它:
systemctl start postgresql
接下来,使用以下命令检查 PostgreSQL 的状态:
systemctl status postgresql
您将得到以下输出:,/p>
? postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Sun 2021-10-24 04:56:37 UTC; 1min 9s ago
Main PID: 17627 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 4679)
Memory: 0B
CPU: 0
CGroup: /system.slice/postgresql.service
Oct 24 04:56:37 debian11 systemd[1]: Starting PostgreSQL RDBMS...
Oct 24 04:56:37 debian11 systemd[1]: Finished PostgreSQL RDBMS.
完成后,您可以继续下一步。
为 OpenNMS 创建数据库和用户
接下来,您需要为 OpenNMS 创建数据库和用户。首先,使用以下命令登录 PostgreSQL:
su - postgres
登录后,使用以下命令创建用户:
createuser opennms
接下来,使用以下命令为 opennms 用户设置密码:
psql -c "ALTER USER opennms WITH PASSWORD 'opennms';"
接下来,使用以下命令为 OpenNMS 创建一个数据库:
createdb -O opennms opennms
接下来,使用以下命令为 Postgres 用户设置密码:
psql -c "ALTER USER postgres WITH PASSWORD 'securepassword';"
接下来,使用以下命令退出 PostgreSQL shell:
exit
完成后,您可以继续下一步。
配置 OpenNMS
接下来,您需要编辑 OpenNMS 数据源文件并定义数据库设置。
nano /usr/share/opennms/etc/opennms-datasources.xml
根据您的数据库设置更改以下行:
<jdbc-data-source name="opennms"
database-name="opennms"
class-name="org.postgresql.Driver"
url="jdbc:postgresql://localhost:5432/opennms"
user-name="opennms"
password="opennms” />
<jdbc-data-source name="opennms-admin"
database-name="template1"
class-name="org.postgresql.Driver"
url="jdbc:postgresql://localhost:5432/template1"
user-name="postgres"
password="securepassword" />
完成后保存并关闭文件。
初始化并启动 OpenNMS
首先,您需要将 OpenNMS 与 Java 集成。您可以通过运行以下命令来完成此操作:
/usr/share/opennms/bin/runjava -s
您将获得以下输出:
runjava: Looking for an appropriate JVM...
runjava: Checking for an appropriate JVM in JAVA_HOME...
runjava: Skipping... JAVA_HOME not set.
runjava: Checking JVM in the PATH: "/etc/alternatives/java"...
runjava: Did not find an appropriate JVM in the PATH: "/etc/alternatives/java"
runjava: Searching for a good JVM...
runjava: Found a good JVM in "/usr/lib/jvm/java-11-openjdk-amd64/bin/java".
runjava: Value of "/usr/lib/jvm/java-11-openjdk-amd64/bin/java" stored in configuration file.
接下来,使用以下命令初始化数据库并检测系统库:
/usr/share/opennms/bin/install -dis
您将获得以下输出:
Processing RemotePollerServiceConfigMigratorOffline: Remove deprecated RemotePoller service entry from service-configuration.xml, see NMS-12684
- Running pre-execution phase
Creating backup of /usr/share/opennms/etc/service-configuration.xml
Zipping /usr/share/opennms/etc/service-configuration.xml
- Running execution phase
Current configuration: 32 services.
A service entry named 'OpenNMS:Name=PerspectivePoller' already exists.
Final configuration: 32 services.
- Saving the execution state
- Running post-execution phase
Removing backup /usr/share/opennms/etc/service-configuration.xml.zip
Finished in 0 seconds
Upgrade completed successfully!
最后,启动 OpenNMS 并使其在系统重启时启动:
systemctl start opennms
systemctl enable opennms
您还可以使用以下命令验证 OpenNMS 的状态:
systemctl status opennms
您应该看到以下输出:
? opennms.service - OpenNMS server
Loaded: loaded (/lib/systemd/system/opennms.service; disabled; vendor preset: enabled)
Active: active (running) since Sun 2021-10-24 05:00:11 UTC; 3s ago
Process: 22231 ExecStart=/usr/share/opennms/bin/opennms -s start (code=exited, status=0/SUCCESS)
Main PID: 23326 (java)
Tasks: 43 (limit: 4679)
Memory: 212.8M
CPU: 21.168s
CGroup: /system.slice/opennms.service
??23325 bash /usr/share/opennms/bin/opennms -s start
??23326 /usr/lib/jvm/java-11-openjdk-amd64/bin/java --add-modules=java.base,java.compiler,java.datatransfer,java.desktop,java.ins>
Oct 24 05:00:13 debian11 opennms[23326]: [DEBUG] System property 'opennms.library.jicmp' set to '/usr/lib/jni/libjicmp.so. Attempting to load>
Oct 24 05:00:13 debian11 opennms[23326]: [INFO] Successfully loaded jicmp library.
Oct 24 05:00:13 debian11 opennms[23326]: [DEBUG] System property 'opennms.library.jicmp' set to '/usr/lib/jni/libjicmp.so. Attempting to load>
Oct 24 05:00:13 debian11 opennms[23326]: [INFO] Successfully loaded jicmp library.
Oct 24 05:00:13 debian11 opennms[23326]: [DEBUG] System property 'opennms.library.jicmp6' set to '/usr/lib/jni/libjicmp6.so. Attempting to lo>
Oct 24 05:00:13 debian11 opennms[23326]: [INFO] Successfully loaded jicmp6 library.
Oct 24 05:00:13 debian11 opennms[23326]: [DEBUG] System property 'opennms.library.jicmp' set to '/usr/lib/jni/libjicmp.so. Attempting to load>
Oct 24 05:00:13 debian11 opennms[23326]: [INFO] Successfully loaded jicmp library.
Oct 24 05:00:13 debian11 opennms[23326]: [DEBUG] System property 'opennms.library.jicmp6' set to '/usr/lib/jni/libjicmp6.so. Attempting to lo>
Oct 24 05:00:13 debian11 opennms[23326]: [INFO] Successfully loaded jicmp6 library.
此时OpenNMS已经启动,监听8980端口,可以通过以下命令查看:
ss -antpl | grep 8980
您将获得以下输出:
LISTEN 0 50 *:8980 *:* users:(("java",pid=23326,fd=815))
访问 OpenNMS Web 界面
现在,打开您的 Web 浏览器并使用 URL http://your-server-ip:8980/opennms 访问 OpenNMS Web 控制台。您应该会看到 OpenNMS 登录页面:

以 admin/admin 提供默认的管理员用户名和密码,然后单击“登录”按钮。您应该在以下页面上看到 OpenNMS 仪表板:

现在,单击 + 图标添加新主机。您应该会看到以下页面:

提供您的申请名称,然后单击“确定”。您应该会看到以下页面:


提供您的远程主机名称、IP、用户名、密码、访问方法,然后单击 Provision 按钮。添加主机后,您将看到以下屏幕:

单击确定按钮。您应该会在以下屏幕上看到新添加的主机:

结论
恭喜!您已在 Debian 11 上成功安装和配置 OpenNMS。您现在可以将更多主机添加到 OpenNMS 并开始从基于 Web 的界面监控它们。