在CentOS 8上安装和配置OpenNMS

时间:2020-02-23 14:31:04  来源:igfitidea点击:

OpenNMS的诞生源于其创建者对现有网络管理工具的昂贵,不灵活且难以部署的沮丧。除此之外,他们还观察了客户如何改变他们的业务流程以适应现有工具,而不是相反。这推动了他们创建OpenNMS。

OpenNMS是世界上第一个完全开放源代码的企业级网络服务管理平台,每天都有数百家企业在没有团队帮助的情况下使用它。这就是OpenNMS团队使它易于使用的程度。作为真正的开源,它是100%免费的。

与传统的网络管理产品非常关注网络元素(例如交换机和路由器上的接口)不同,OpenNMS专注于网络资源提供的服务:网页,数据库访问,DNS,DHCP等(尽管也提供了有关网络元素的信息) )。

我们将安装和配置这个出色的工具,并检查它可以做什么。在此之前,让我们看一下它的程序包隐藏在里面的内容。

OpenNMS的功能

以下是OpenNMS具备的核心功能:可扩展性:它是为企业构建的,可从单个实例监视数百万个设备。可扩展性:使用灵活且可扩展的体系结构扩展服务轮询和性能数据收集框架许可证,OpenNMS是一个完全开放源代码的解决方案。技术支持:得到大量用户的支持,并由The OpenNMS Group进行商业销售。

现在,我们应该准备在CentOS 8机器上探索OpenNMS。

更新并准备我们的服务器

在深入研究此设置的深层内容之前,最好先选择一个干净且更新良好的平台。在整个过程中,我们将更新并安装所需的必要工具。

sudo dnf -y update
sudo dnf install -y vim  curl wget

OpenNMS是使用Java开发的,因此我们需要安装Java。使用如何在RHEL 8上设置Java 11-OpenJDK 11 |在CentOS 8上安装Java。 CentOS 8指南

安装OpenNMS Horizon

在覆盖了基础层并确保准备好欢迎即将推出的软件包之后,我们可以继续安装OpenNMS Horizon。我们将首先添加OpenNMS官方存储库,然后继续获取并安装必需的软件包。

添加yum存储库并导入GPG密钥

sudo dnf -y install https://yum.opennms.org/repofiles/opennms-repo-stable-rhel8.noarch.rpm
sudo rpm --import https://yum.opennms.org/OPENNMS-GPG-KEY

添加存储库后,我们就可以使用其所有内置依赖项来拉取并安装OpenNMS

sudo dnf -y install opennms

上面的命令将自动安装以下软件包,使工作更轻松:jicmp6和jicmp:Java网桥,以允许从OpenNMS Horizon存储库发送ICMP消息。opennms-core:OpenNMS Horizon核心服务,例如从OpenNMS Horizon存储库中调配,轮询和收集。

初始化和设置PostgreSQL

我们已经提到过Postgres数据库将在上一个命令中自动安装。现在,我们应该使用相关的数据库,凭据对其进行配置,并确保其正常运行。

初始化PostgreSQL数据库

首先让我们通过运行以下命令来初始化数据库

sudo postgresql-setup --initdb --unit postgresql

要使PostgreSQL在服务器重启时自动启动,请运行下面的Systemd命令启用数据库服务器并启动它。

sudo systemctl enable postgresql
sudo systemctl start postgresql

创建数据库凭证

我们将需要一个用户来访问OpenNMS数据库。使用密码创建用户并创建用户opennms拥有的opennms数据库

$sudo su postgres
bash-4.4$psql
psql (10.14)
Type "help" for help.

postgres=# createuser -P opennms
postgres-# createdb -O opennms opennms
postgres-# \q
bash-4.4$exit

使用密码保护默认的postres用户以增加安全性,如下所示:

$sudo su postgres
bash-4.4$psql
postgres=# ALTER USER postgres WITH PASSWORD 'StrongPassword';
ALTER ROLE
postgres=# \q
bash-4.4$exit

更改PostgreSQL的访问策略

安装Postgres时,ident是本地IPv6和IPv4连接的默认方法。身份认证方法的工作方式是从ident服务器获取客户端操作系统的用户名,并将其用作允许的数据库用户名(具有可选的用户名映射)。仅在TCP/IP连接上支持。基于密码的身份验证方法为md5和password。除了通过连接发送密码的方式(分别为MD5哈希和明文)外,这些方法的操作方式相似。

我们将改变从ident到MD5哈希的方式。相应地编辑下面显示的文件

sudo vim /var/lib/pgsql/data/pg_hba.conf

允许OpenNMS Horizon使用MD5哈希密码通过本地网络访问数据库

host    all             all             127.0.0.1/32            md5 #<==
host    all             all             ::1/128                 md5

进行更改后,重新启动postgres以应用并持久保存PostgreSQL的配置更改

sudo systemctl restart postgresql

配置对OpenNMS Horizon的数据库访问

我们已经配置了数据库,现在应该允许OpenNMS Horizon自由连接。如下所示编辑opennms-datasources.xml文件,以查看所需的配置。基本上是添加我们已经设置的数据库详细信息。

$sudo vim /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="StrongPassword" 

屏幕截图上的详细信息相同

初始化并启动OpenNMS Horizon

完成数据库设置后,我们终于可以初始化OpenNMS Horizon。让我们添加Java设置,然后继续启动应用程序。

检测Java环境并保存在/opt/opennms/etc/java.conf中

sudo /opt/opennms/bin/runjava -s

初始化数据库并检测保存在/opt/opennms/etc/libraries.properties中的系统库

sudo /opt/opennms/bin/install -dis

启用OpenNMS Horizon以在系统启动时自动启动

$sudo systemctl enable --now opennms
$sudo systemctl status opennms

● opennms.service - OpenNMS server
   Loaded: loaded (/usr/lib/systemd/system/opennms.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2017-09-23 13:44:38 UTC; 5s ago
  Process: 1689425 ExecStart=/etc/init.d/opennms -s start (code=exited, status=0/SUCCESS)
 Main PID: 1690701 (java)
    Tasks: 36 (limit: 11070)
   Memory: 162.8M
   CGroup: /system.slice/opennms.service
           ├─1690700 /bin/bash /etc/init.d/opennms -s start
           └─1690701 /usr/lib/jvm/java-11-openjdk-11.0.8.10-0.el8_2.x86_64/bin/java --add-modules=java.base,java.compiler

由于OpenNMS Horizon侦听端口8980,因此如果正在运行防火墙,则应考虑允许流量进出防火墙上的该端口。只需运行以下命令。

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

登录并更改默认密码

启动OpenNMS之后,可以通过将浏览器指向http://[IP-or-FQDN-of-your-server]:8980/opennms来访问Web应用程序。默认登录用户为admin,密码初始化为admin。

登录后,可以按以下步骤更改密码:在主导航菜单中,单击admin更改密码更改密码。设置为当前密码admin并设置一个新密码,然后确认新设置的密码,然后单击"提交"。完成后,注销并使用新密码登录。

在OpenNMS中添加主机

我们已经完成了OpenNMS Horizon的设置,剩下的唯一事情就是添加主机供我们监视。要添加主机,请登录OpenNMS Web控制台,然后在主导航菜单上进行如下操作:单击+。

由于这是一个全新的设置,因此我们需要添加一个请购单。我们将看到一个弹出窗口,要求我们输入新申请的名称。

带有表单的新页面将如下所示。填写表格,然后滚动到页面底部,然后单击"设置"。

单击"准备"完成后,应会弹出成功消息。

添加节点后,可以通过单击信息下拉菜单然后选择节点来检查它们。我们应该能够看到我们刚刚添加的节点以及它已经解密的一些细节。