如何在CentOS8上安装OpenNMS网络监视工具

如何在CentOS8上安装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

默认情况下,CentOS 8默认存储库中不提供OpenNMS。因此,您需要将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 postgresqlsystemctl start postgresql

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

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

su - postgres

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

[[email protected] ~]$ createuser -P opennms

系统将提示您设置密码,如下所示。

Enter password for new role: 
Enter it again: 

然后使用以下命令创建数据库:

[[email protected] ~]$ createdb -O opennms opennms

然后使用以下命令为PostgreSQL用户设置密码。

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

然后使用以下命令退出PostgreSQL shell:

[[email protected] ~]$ 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

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

然后使用以下命令通过防火墙d允许端口8980:

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

然后重新加载防火墙以应用您的更改。

firewall-cmd --reload

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

访问OpenNMS Web界面

然后打开Web浏览器,并使用URL访问OpenNMS Web界面。 http://您的服务器IP:8980 / opennms.. 您将被重定向到OpenNMS登录页面。

指定默认的admin用户名admin和密码admin,然后单击。 登录 按钮。显示下一页。

登录OpenNMS

请点击 选择参加 将匿名使用情况统计信息发送到OpenNMS。 OpenNMS仪表板显示在下一页上。

openNMS仪表板

请点击 管理员=>更改密码 更改默认密码。显示下一页。

修改管理员密码

更改默认密码,然后单击 参加 按钮。显示下一页。

密码更换成功

请点击 + 单击该图标以添加新主机。显示下一页:广告

将新主机添加到openNMS监视

输入新工作的名称,然后单击 按钮。显示下一页。

添加节点

设备详细信息

输入远程主机的详细信息,然后单击 供应 按钮。添加主机后,将显示下一页。

新节点添加成功

然后点击 信息=>节点..您需要在下一页上获取有关远程主机的更多信息。

OpenNMS监视节点

结论

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

Sidebar