CentOS 8安装OpenNMS网络监控工具的方法CentOS 8安装OpenNMS网络监控工具的方法CentOS 8安装OpenNMS网络监控工具的方法CentOS 8安装OpenNMS网络监控工具的方法
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

CentOS 8安装OpenNMS网络监控工具的方法

发表 admin at 2025年2月28日
类别
  • 未分类
标签

在此页

  1. 先决条件
  2. 开始
  3. 安装 OpenNMS
  4. 配置 PostgreSQL
  5. 初始化并启动 OpenNMS
  6. 配置 SELinux 和防火墙
  7. 访问 OpenNMS 网络界面
  8. 结论

OpenNMS 是一个免费开源的网络监控和网络管理平台,用于管理全球范围内的企业网络。它基于 Java,旨在从中央位置管理数千台设备。它能够自动发现和监控网络中的服务或节点。

特征

  • 支持 SNMP、JMX、WMI、NPRE、NSCLient++ 和 XMP
  • 事件驱动架构
  • 支持设备和应用程序监控
  • 类型发现和路径中断
  • 配置和执行服务监视器
  • 支持第 2 层和第 3 层网络拓扑

在本教程中,我们将向您展示如何在 CentOS 8 服务器上安装和配置 OpenNMS。

先决条件

  • 一台运行 CentOS 8 的服务器。
  • 为服务器配置了根密码。

入门

OpenNMS 是一个基于 Java 的应用程序。因此,您需要在系统中安装 Java。您可以通过运行以下命令将其与其他所需的软件包一起安装:

dnf install java-11-openjdk-devel curl unzip -y

安装 Java 后,您可以使用以下命令验证 Java 版本:

java -version

您应该得到以下输出:

openjdk version "11.0.9" 2020-10-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.9+11-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.9+11-LTS, mixed mode, sharing)

完成后,您可以继续下一步。

安装 OpenNMS

默认情况下,OpenNMS 在 CentOS 8 默认存储库中不可用。因此,您需要将 OpenNMS 存储库添加到您的系统中。

首先,使用以下命令添加 GPG 密钥:

rpm --import https://yum.opennms.org/OPENNMS-GPG-KEY

添加 GPG 密钥后,运行以下命令以添加 OpenNMS 存储库。

dnf install https://yum.opennms.org/repofiles/opennms-repo-stable-rhel8.noarch.rpm

接下来,您可以通过运行以下命令来安装 OpenNMS:

dnf install opennms -y

这将在您的服务器中安装 OpenNMS、PostgreSQL 和其他软件包。

配置 PostgreSQL

OpenNMS 使用 PostgreSQL 作为数据库后端。您可以使用以下命令初始化 PostgreSQL 数据库:

postgresql-setup --initdb --unit postgresql

您应该得到以下输出:

 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

接下来,启动 PostgreSQL 服务并使用以下命令使其在系统重启时启动:

systemctl enable postgresql
systemctl start postgresql

接下来,您需要为 PostgreSQL 创建数据库和用户。

首先,使用以下命令登录到 PostgreSQL:

su - postgres

登录后,使用以下命令创建用户:

[ ~]$ createuser -P opennms

系统将要求您设置密码,如下所示:

Enter password for new role: 
Enter it again: 

接下来,使用以下命令创建数据库:

[ ~]$ createdb -O opennms opennms

接下来,使用以下命令为 PostgreSQL 用户设置密码;

[ ~]$ psql -c "ALTER USER postgres WITH PASSWORD 'password';"

接下来,使用以下命令退出 PostgreSQL shell:

[ ~]$ exit;

接下来,您需要修改 PostgreSQL 的访问策略。您可以通过编辑文件 /var/lib/pgsql/data/pg_hba.conf 来完成:

nano /var/lib/pgsql/data/pg_hba.conf

找到以下几行:

# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

并且,将它们替换为以下行:

host    all             all             127.0.0.1/32            md5 
host    all             all             ::1/128                 md5

保存并关闭文件,然后重新启动 PostgreSQL 服务以应用更改:

systemctl restart postgresql

接下来,您需要在 /opt/opennms/etc/opennms-datasources.xml 文件中定义您的数据库。

nano /opt/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="password" />

完成后保存并关闭文件。

初始化并启动 OpenNMS

接下来,您需要初始化 OpenNMS。首先,使用以下命令添加 Java 设置:

/opt/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-11.0.9.11-0.el8_2.x86_64/bin/java".
runjava: Value of "/usr/lib/jvm/java-11-openjdk-11.0.9.11-0.el8_2.x86_64/bin/java" stored in configuration file.

接下来,通过运行以下命令来初始化数据库:

/opt/opennms/bin/install -dis

接下来,使用以下命令使 OpenNMS 在系统重启时启动:

systemctl enable --now opennms

您应该得到以下输出:

Synchronizing state of opennms.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable opennms
Created symlink /etc/systemd/system/multi-user.target.wants/opennms.service → /usr/lib/systemd/system/opennms.service.

现在,您可以使用以下命令检查 OpenNMS 服务的状态:

systemctl status opennms

您应该得到以下输出:

? opennms.service - OpenNMS server
   Loaded: loaded (/usr/lib/systemd/system/opennms.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2020-11-25 09:21:32 EST; 13s ago
  Process: 26880 ExecStart=/etc/init.d/opennms -s start (code=exited, status=0/SUCCESS)
 Main PID: 27928 (java)
    Tasks: 67 (limit: 12523)
   Memory: 555.6M
   CGroup: /system.slice/opennms.service
           ??27927 bash /etc/init.d/opennms -s start
           ??27928 /usr/lib/jvm/java-11-openjdk-11.0.9.11-0.el8_2.x86_64/bin/java --add-modules=java.base,java.compiler,java.datatransfer,java>

Nov 25 09:21:42 centos8 opennms[26880]: [DEBUG] System property 'opennms.library.jicmp' set to '/usr/lib64/libjicmp.so.  Attempting to load ji>
Nov 25 09:21:42 centos8 opennms[26880]: [INFO] Successfully loaded jicmp library.
Nov 25 09:21:42 centos8 opennms[26880]: [DEBUG] System property 'opennms.library.jicmp' set to '/usr/lib64/libjicmp.so.  Attempting to load ji>
Nov 25 09:21:42 centos8 opennms[26880]: [INFO] Successfully loaded jicmp library.
Nov 25 09:21:42 centos8 opennms[26880]: [DEBUG] System property 'opennms.library.jicmp6' set to '/usr/lib64/libjicmp6.so.  Attempting to load >
Nov 25 09:21:42 centos8 opennms[26880]: [INFO] Successfully loaded jicmp6 library.
Nov 25 09:21:42 centos8 opennms[26880]: [DEBUG] System property 'opennms.library.jicmp' set to '/usr/lib64/libjicmp.so.  Attempting to load ji>
Nov 25 09:21:42 centos8 opennms[26880]: [INFO] Successfully loaded jicmp library.
Nov 25 09:21:42 centos8 opennms[26880]: [DEBUG] System property 'opennms.library.jicmp6' set to '/usr/lib64/libjicmp6.so.  Attempting to load >
Nov 25 09:21:42 centos8 opennms[26880]: [INFO] Successfully loaded jicmp6 library.

此时OpenNMS已经启动并监听8980端口,可以通过以下命令查看:

ss -antpl | grep :8980

您应该得到以下输出:

LISTEN   0        50                          *:8980                   *:*       users:(("java",pid=27928,fd=988)) 

完成后,您可以继续下一步。

配置 SELinux 和防火墙

CentOS 8 服务器默认启用 SELinux。所以你需要先禁用它。您可以通过编辑 /etc/selinux/config 文件来禁用它:

nano /etc/selinux/config

找到以下行:

SELINUX=enforcing

并且,将其替换为以下行:

SELINUX=permissive

保存并关闭文件,然后重新启动系统以应用更改。

接下来,使用以下命令通过 firewalld 允许端口 8980:

firewall-cmd --permanent --add-port=8980/tcp

接下来,重新加载 firewalld 以应用更改:

firewall-cmd --reload

完成后,您可以继续下一步。

访问 OpenNMS Web 界面

现在,打开您的 Web 浏览器并使用 URL http://your-server-ip:8980/opennms 访问 OpenNMS Web 界面。您将被重定向到 OpenNMS 登录页面:

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

单击选择加入以将匿名使用统计信息发送到 OpenNMS。您应该在以下页面中看到 OpenNMS 仪表板:

单击 Admin => Change password 以更改默认密码。您应该会看到以下页面:

更改您的默认密码,然后单击“提交”按钮。您应该会看到以下页面:

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

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

提供您的远程主机详细信息,然后单击“配置”按钮。添加主机后,您应该会看到以下页面:

现在,单击信息 => 节点。您应该在以下页面中获得远程主机的详细信息:

结论

恭喜!您已经在 CentOS 8 服务器上成功安装了 OpenNMS。您现在可以向 OpenNMS 添加无限的网络主机和设备,并从中央位置开始监控。

©2015-2025 Norria support@norria.com