CentOS 8安装OpenNMS网络监控工具的方法
在此页
- 先决条件
- 开始
- 安装 OpenNMS
- 配置 PostgreSQL
- 初始化并启动 OpenNMS
- 配置 SELinux 和防火墙
- 访问 OpenNMS 网络界面
- 结论
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 添加无限的网络主机和设备,并从中央位置开始监控。