如何在 Ubuntu 22.04 上安装 OpenNMS 监控解决方案

如何在 Ubuntu 22.04 上安装 OpenNMS 监控解决方案

OpenNNMS 是免费且开源的网络监控和网络管理。 它是一个企业级网络监控平台,可以可视化和监控本地网络和远程网络上的所有内容。 OpenNMS 是一个完全开源的网络监控和管理解决方案,它在 AGPLv3 许可证下发布。

OpenNMS 是一个可扩展的网络监控平台,允许您通过分布式和分层系统监控数以万计的网络。 此外,OpenNMS 是一个灵活的监控平台,可以轻松与您的核心业务和第三方扩展集成。

OpenNMS 具有以下列出的多个组件:

  1. OpenNMS Horizo​​n – 三个主要组件的捆绑包:Core(Horizo​​n 的主要组件)、Minion(用于远程分布式监控)和 Sentinel(用于可扩展性)。
  2. Helm – OpenNMS 的定制仪表板。
  3. 支持学习的关联 (ALEC) 架构(警报分类)。
  4. 配置集成服务器 (PRIS)(提取的数据集成)。

本指南向您展示如何在 Ubuntu 22.04 服务器上安装带有 PostgreSQL 数据库服务器和 Nginx 反向代理的 OpenNMS 监控解决方案。 此外,本指南还将向您展示 Java OpenJDK 的安装、PostgreSQL 数据库服务器和 Nginx Web 服务器的基本配置。

先决条件

首先,您需要满足以下要求才能完成本指南:

  • Ubuntu 22.04 服务器 – 此示例使用主机名为“opennms-server”的 Ubuntu 服务器,内存为 4GB。
  • 具有 sudo/root 管理员权限的非 root 用户。\
  • 域名或本地域将用于运行 OpenNMS。

安装 Java OpenJDK

OPneNMS监控方案是一个主要用Java编写的监控工具。 在撰写本文时,最新版本的 OpenNMS 至少支持 Java 11。默认的 Ubuntu 22.04 存储库提供了 Java OpenJDK 11,您可以通过 APT 轻松安装。

在安装 Java 之前,请运行以下 apt 命令来更新和刷新包索引。

sudo apt update

现在通过下面的 apt 命令安装 Java OpenJDK 11。 Ubuntu 22.04系统默认的Java版本是Java OpenJDK 11,适合OpenNMS安装。

sudo apt install default-jdk

出现提示时,输入 y 进行确认,然后按 ENTER。 Java OpenJDK 安装将开始。

安装java

安装 Java OpenJDK 后,运行以下命令来验证安装的 Java 版本。 您应该在 Ubuntu 系统上安装 Java OpenJDK 1.11。

java -version

检查java

安装 Java OpenJDK 后,转到 PostgreSQL 数据库安装。

安装和配置 PostgreSQL 服务器

PostgreSQL 是一个高性能的 RDMS(关系数据库管理系统)。 OpenNMS 仅支持 PostgreSQL 作为数据库后端。 在撰写本文时,OpenNMS 支持 PostgreSQL v10.x-14.x。

您现在将在 Ubuntu 服务器上安装并配置 PostgreSQL 数据库 v14。 默认情况下,Ubuntu 存储库提供多个版本的 PostgreSQL,您将为 OpenNMS 部署安装 PostgreSQL 14.x。

运行以下 apt 命令来安装 PostgreSQL 14。

sudo apt install postgresql-14

当提示确认时,输入 y 并按 ENTER 继续。

安装 PostgreSQL

安装 PostgreSQL 软件包后,运行以下 systemctl 命令来验证 PostgreSQL 服务并确保该服务正在运行并启用。

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

然后您将看到 PostgreSQL 服务已启用并且将在启动时自动运行。 并且PostgreSQL服务的状态是正在运行。

验证 postgresql

现在 PostgreSQL 数据库正在运行,您将了解 OpenNMS 的数据库和用户创建。 您还将设置默认 PostgreSQL 用户“postgres”的密码。

运行以下命令创建新的 PostgreSQL 用户“opennms”。 当提示输入密码时,输入“opennms”用户的新密码并重复。

sudo -u postgres createuser -P opennms

接下来,通过以下命令创建一个所有者为“opennms”的新数据库“opennms”。

sudo -u postgres createdb -O opennms opennms

最后,通过以下命令更改“postgres”用户的密码。 请务必使用新的强密码进行更改。

sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '5up3rp4ssw0rd';"

设置postgresql数据库和用户

现在您已经安装了 java OpenJDK 和 PostgreSQL,接下来就可以安装 OpenNMS 了。

安装和配置 OpenNMS

您已经安装了 Java OpenJDK 和 PostgreSQL 数据库,还为 OpenNMS 创建了新的数据库和用户,并为 PostgreSQL ‘postgres’ 用户配置了默认密码。 然后您将开始安装和配置 OpenNMS。

在本部分中,您将通过官方 OpenNMS 存储库安装 OpenNMS。 然后,您将使用 PostgreSQL 数据库设置 OpenNMS,设置 Java 环境,初始化数据库模式,检测系统库,并允许 OpenNMS 在特权端口中运行。

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

sudo apt-key adv --fetch-keys https://debian.opennms.org/OPENNMS-GPG-KEY
sudo add-apt-repository -s 'deb https://debian.opennms.org stable main'

出现提示时,按 ENTER 确认并添加 OpenNMS 存储库。

添加仓库

现在通过下面的 apt 命令安装 OpenNMS 包以及其他 R 包。

sudo apt install opennms r-recommended

当提示确认时,输入 y 进行确认,然后按 ENTER 继续。

安装opennms

接下来,运行以下 apt 命令以禁用 OpenNMS 软件包的自动更新。 OpenNMS在升级到新版本时需要手动执行步骤和配置,因此您必须手动升级以防止升级期间/之后出现错误。

sudo apt-mark hold libopennms-java \
libopennmsdeps-java \
opennms-common \
opennms-db

禁用自动更新

现在 OpenNMS 已安装,您可以通过以下命令验证 OpenNMS 安装目录“/usr/share/opennms”。 此外,与 OpenNMS 相关的任何更改都应应用于“/usr/share/opennms”目录下的文件。

sudo apt install tree -y
sudo tree /usr/share/opennms -L 1

您可以看到 OpenNMS 包的目录和文件列表。

opennms 列表文件

接下来,您将为 OpenNMS 设置数据库配置。 使用以下 nano 编辑器命令打开文件“/usr/share/opennms/etc/opennms-datasources.xml”。 “sudo -u opennms command..”表示您正在以“opennms”用户身份运行该命令,而不是 root 用户。

sudo -u opennms nano /usr/share/opennms/etc/opennms-datasources.xml

将“jdbc-data-source”更改为“opennms”应使用“opennms”数据库和用户的详细信息。 对于“opennms-admin”,您应该使用“postgres”PostgreSQL 管理员用户。

                    database-name="opennms"
                    class-name="org.postgresql.Driver"
                    url="jdbc:postgresql://localhost:5432/opennms"
                    user-name="opennms"
                    password="p4ssw0rd" />

                    database-name="template1"
                    class-name="org.postgresql.Driver"
                    url="jdbc:postgresql://localhost:5432/template1"
                    user-name="postgres"
                    password="5up3rp4ssw0rd" />

完成后保存文件并退出编辑器。

现在运行以下命令来检测系统上的Java环境,该环境将永久存储在配置文件“/usr/share/opennms/etc/java.conf”中。

sudo -u opennms /usr/share/opennms/bin/runjava -s

设置opennms

之后,运行以下命令来初始化数据库并检测 OpenNMS 的系统库。 OpenNMS 的库将在文件“/opt/opennms/etc/libraries.properties”中列出。

sudo -u opennms /usr/share/opennms/bin/install -dis

opennsm 安装程序

接下来,通过以下 systemctl 命令编辑 OpenNMS 服务文件。 您应该在系统上获得默认的编辑器。

sudo systemctl edit --full opennms.service

将以下配置添加到'[Service]’ 部分。 这允许 OpenNMS 服务在特权端口(端口 1-1024)中运行和绑定。

[Service]
...
AmbientCapabilities=CAP_NET_RAW CAP_NET_BIND_SERVICE

完成后保存文件并退出编辑器。

修改OpenNMS服务文件后,运行以下命令重新加载systemd管理器,重新启动并启用OpenNMS服务。

sudo systemctl daemon-reload
sudo systemctl restart opennms
sudo systemctl enable opennms

现在 OpenNMS 服务已启动并使用新配置运行,您将通过下面的 systemctl 命令验证 OpenNMS 服务。

sudo systemctl is-enabled opennms
sudo systemctl status opennms

输出 – OpenNMS 服务已启用,并将在系统启动时自动运行。 OpenNMS 服务当前正在运行。

检查opennms

至此,您已经完成了OpenNMS的安装和配置。 但是,您将使用 Nginx 反向代理运行 OpenNMS。 继续阅读以了解如何将 Nginx 设置为 OpenNMS 的反向代理。

安装 Nginx 作为 OpenNMS 的反向代理

现在您已经在默认端口“8980”上运行了 OpenNMS,接下来您将安装并配置 Nginx 作为 OpenNMS 的反向代理。

运行以下 apt 命令将 Nginx 软件包安装到您的系统。

sudo apt install nginx

出现提示时输入 y,然后按 ENTER 继续。 安装将开始。

安装nginx

接下来,使用以下 systemctl 命令验证 Nginx 服务。

sudo systemctl is-enabled nginx
sudo systemctl status nginx

您应该看到 Nginx 服务已启用,并且将在启动时自动运行。 另外,Nginx服务在安装完成后会自动启动。

检查 Nginx

安装 Nginx 后,使用以下 nano 编辑器命令创建一个新的 Nginx 服务器块“/etc/nginx/sites-available/opennms.conf”。

sudo nano /etc/nginx/sites-available/opennms.conf

将以下配置添加到文件中。 请务必将域名更改为您的域名。

server {
    listen 80;
    server_name opennms.hwdomain.io;
    access_log /var/log/nginx/opennms.access.log;
    error_log /var/log/nginx/opennms.error.log;


    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-OpenNMS-Server-URL https://opennms.hwdomain.io/;
        proxy_pass http://localhost:8980;
    }

}

完成后保存文件并退出编辑器。

接下来,激活“opennms.conf”服务器块并验证 Nginx 配置以确保您拥有正确的配置。

sudo ln -s /etc/nginx/sites-available/opennms.conf /etc/nginx/sites-enabled/
sudo nginx -t

如果您看到诸如“测试成功 – 语法正确”之类的输出消息,则意味着您的 Nginx 配置正确。

设置nginx

现在重新启动 Nginx 服务以应用新的服务器块配置。

sudo systemctl restart nginx

现在 Nginx 正在作为 OpenNMS 的反向代理运行,您将检查 UFW 防火墙配置并为某些服务打开一些端口。

设置 UFW 防火墙

配置 Nginx 反向代理后,您将在 OpenNMS 服务器上设置 UFW。 您将在启用 UFW 的情况下运行 OpenNMS 监控工具,因此您必须添加一些将用于 OpenNMS 的端口。

运行以下 apt 命令在您的系统上安装 UFW。

sudo apt install ufw -y

安装 UFW 后,运行以下命令添加 OpenSSH 服务。 然后,启动并启用 UFW 服务。

sudo ufw allow OpenSSH
sudo ufw enable

出现提示时,输入 y 进行确认,然后按 ENTER 继续。 现在 UFW 将运行并已启用,并将在启动时自动运行。

设置 ufw ssh

接下来,添加一条新规则以允许流量到达 Nginx Web 服务器。

sudo ufw allow "Nginx Full"

ufw nginx

之后,使用以下 nano 编辑器命令打开文件“/etc/ufw/before.rules”。

sudo nano /etc/ufw/before.rules

在“*filter”部分之前添加以下配置。 这将启用 NAT 并将流量从 62/udp 重新路由/转发到 10162/udp。

*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p udp --dport 162 -j REDIRECT --to-port 10162
COMMIT

完成后保存文件并退出编辑器。

现在添加新规则以允许端口 62/udp 到 10162/udp。

sudo ufw allow in 162/udp
sudo ufw allow in 10162/udp

重新加载 UFW 以应用更改并通过以下命令验证 UFW 的状态。

sudo ufw reload
sudo ufw status

塞克 UFW

至此,您已经完成了 OpenNMS 的安装和配置以及 PostgreSQL 数据库、Nginx Web 服务器等包依赖项,并配置了 UFW。 最后一步,您将通过 Web 浏览器访问 OpenNMS 安装并设置 OpenNMS 的管理员用户。

访问OpenNMS监控工具

打开 Web 浏览器并访问 OpenNMS 安装的域名(即:http://opennms.hwdomain.io)。 您应该看到 OpenNMS 监控工具的登录页面。

输入默认用户/密码“admin/admin”,然后单击“登录”。

登录

然后您将看到 OpenNMS 管理仪表板。

opennms 仪表板

通过默认用户/密码“admin/admin”登录 OpenNMS 后,您将更改 OpenNMS 安装的默认用户名和密码。

在顶部菜单栏上,单击菜单“管理员”并选择“更改密码”。

现在输入旧密码“admin”并输入新的 OpenNMS 密码并重复密码。 然后,单击“提交”进行申请。

更改密码

您现在已经完成了 OpenNMS 配置。

结论

您现在已经在 Ubuntu 22.04 服务器上安装了 OpenNMS,这是一个高度可扩展且可定制的监控工具。 您还配置了已安装的 PostgreSQL 数据库服务器,并将 Nginx Web 服务器配置为 OpenNMS 的反向代理。 完全配置 OpenNMS 后,您现在可以通过 SNMP 协议添加新主机进行监控,通过 OpenNMS Minion 设置分布式监控,通过 Sentinel 扩展 OpenNMS,并开始通过 Helm 自定义仪表板。

如果您想在大型部署上运行 OpenNMS,请查看官方文档。

资讯来源:由0x资讯编译自HOWTOFORGE,版权归作者所有,未经许可,不得转载
你可能还喜欢