如何在 Ubuntu 20.04 LTS 上设置 OpenNMS 网络监控解决方案
本教程适用于这些操作系统版本
- Ubuntu 20.04(Focal Fossa)
- Ubuntu 16.04(Xenial Xerus)
在此页
- 先决条件
- 开始
- 安装 Docker 和 Docker Compose
- 安装 OpenNMS
- 访问 OpenNMS 网络界面
- 结论
OpenNMS 是一个免费的、开源的、企业级的网络管理系统,用于从中央位置监控无限的设备。它通过发现网络中的所有设备并自动监控服务来工作。它基于 Java,旨在通过使用 SNMP 和 JMX 监控远程机器上的关键服务。它可以安装在所有主要操作系统上,包括 Windows、Linux/Unix、Mac 和 Solaris。它提供了一组丰富的功能,包括供应、服务监控、事件管理、图表支持和性能测量。
目前,OpenNMS 有 Horizon 和 Meridian 两个版本。 Horizon 专为监控和管理 IT 环境而设计,而 Meridian 专为寻求稳定性和长期支持的公司而设计。
在本教程中,我们将解释如何在 Ubuntu 20.04 上使用 Docker 安装 OpenNMS。
先决条件
- 一台运行 Ubuntu 20.04 的服务器。
- 在您的服务器上设置了根密码。
入门
在开始之前,最好将系统包更新到最新版本。您可以使用以下命令更新它们:
apt-get update -y
apt-get upgrade -y
更新所有包后,使用以下命令安装其他所需的依赖项:
apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y
安装所有依赖项后,您可以继续下一步。
安装 Docker 和 Docker Compose
默认情况下,最新版本的 Docker 在 Ubuntu 20.04 默认存储库中不可用。所以建议从 Dockers 官方仓库安装 Docker。
首先,使用以下命令下载并添加 GPT 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
接下来,使用以下命令将 Docker 存储库添加到您的系统:
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
添加存储库后,通过运行以下命令安装 Docker 和 Docker compose:
apt-get install docker-ce docker-ce-cli containerd.io docker-compose -y
两者安装完成后,使用以下命令验证 Docker 的状态:
systemctl status docker
您应该得到以下输出:
? docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2020-07-04 04:43:52 UTC; 19s ago
TriggeredBy: ? docker.socket
Docs: https://docs.docker.com
Main PID: 38468 (dockerd)
Tasks: 10
Memory: 36.3M
CGroup: /system.slice/docker.service
??38468 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
要检查 Docker 版本,请运行以下命令:
docker -v
您应该看到以下输出:
Docker version 19.03.12, build 48a66213fe
要检查 Docker 组合版本,请运行以下命令:
docker-compose -v
您应该看到以下输出:
docker-compose version 1.25.0, build unknown
安装 OpenNMS
接下来,使用以下命令为 OpenNMS 创建一个项目目录:
mkdir opennms
接下来,将目录更改为 opennms 并创建一个新的 docker-compose.yml 文件来安装 OpenNMS。
cd opennms
nano docker-compose.yml
添加以下行:
version: '3'
volumes:
data-postgres: {}
data-opennms: {}
services:
database:
image: postgres:12
container_name: database
environment:
- TZ=Europe/Berlin
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
volumes:
- data-postgres:/var/lib/postgresql/data
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U postgres" ]
interval: 10s
timeout: 30s
retries: 3
horizon:
image: opennms/horizon:26.1.1
container_name: horizon
environment:
- TZ=Europe/Berlin
- POSTGRES_HOST=database
- POSTGRES_PORT=5432
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- OPENNMS_DBNAME=opennms
- OPENNMS_DBUSER=opennms
- OPENNMS_DBPASS=opennms
volumes:
- data-opennms:/opt/opennms/share/rrd
- ./overlay:/opt/opennms-overlay
command: ["-s"]
ports:
- "8980:8980/tcp"
- "8101:8101/tcp"
- "61616:61616/tcp"
healthcheck:
test: [ "CMD", "curl", "-f", "-I", "http://localhost:8980/opennms/login.jsp" ]
interval: 1m
timeout: 5s
retries: 3
完成后保存并关闭文件。然后,使用以下命令下载并构建 OpenNMS 的容器:
docker-compose up -d
下载 OpenNMS 容器后,您可以使用以下命令验证正在运行的容器:
docker ps -a
您应该看到以下输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1537b3a43c92 postgres:12 "docker-entrypoint.s…" 9 seconds ago Up 6 seconds (health: starting) 5432/tcp database
7e00f3877d13 opennms/horizon:26.1.1 "/entrypoint.sh -s" 9 seconds ago Up 6 seconds (health: starting) 0.0.0.0:8101->8101/tcp, 1162/udp, 0.0.0.0:8980->8980/tcp, 10514/udp, 0.0.0.0:61616->61616/tcp horizon
访问 OpenNMS Web 界面
此时,OpenNMS 正在运行并侦听端口 8980。您可以使用 URL http://your-server-ip:8980 访问它。您将被重定向到 OpenNMS 登录页面,如下所示:

提供默认用户名和密码为 admin/admin,然后单击“登录”按钮。您应该在以下屏幕中看到 OpenNMS 仪表板:

现在,单击右侧窗格中的 + 图标以添加新的服务器节点以进行监视。您应该看到以下屏幕:

提供一个名称并单击确定按钮。您应该看到以下屏幕:


现在,提供您要监控的服务器的 IP 地址、社区字符串、服务器的用户名和密码、访问方法,然后单击“配置”按钮。配置成功后,您应该会看到以下屏幕:

单击 OK 按钮继续,然后转到 Info => Nodes,您应该在以下屏幕中看到 client1 节点状态、通知和事件:

结论
恭喜!您已经在 Ubuntu 20.04 服务器上成功安装了 OpenNMS。您现在可以将更多设备添加到 OpenNMS 并通过 Web 浏览器开始监控。如果您有任何问题,请随时问我。