在Alma Linux 8上安装和配置OpenNMS

在Alma Linux 8上安装和配置OpenNMS

OpenNMS是一个用Java编写的免费开源网络监控和管理平台。 它是由用户、开发人员和 OpenNMS Group 组成的社区自行托管和开发的。 OpenNMS 允许您监控本地和远程网络上的所有内容,包括性能、流量监控、配置、服务监控、事件管理、K线走势图支持等。 OpenNMS 使用 SNPM 和 JMX 来收集远程主机的信息。

这篇文章将向您展示如何在Alma Linux 8上使用Nginx安装OpenNMS。

先决条件

  • 运行Alma Linux 8的服务器。
  • 与您的服务器 IP 指向的有效域名。
  • 服务器上配置了 root 密码。

安装Java JDK

OpenNMS 是一个基于java 的应用程序。 所以你的服务器上必须安装Java JDK。 您可以通过运行以下命令来安装它:

dnf install java-11-openjdk -y

安装 Java 后,您可以使用以下命令验证 Java 安装:

java --version

您将得到以下输出:

openjdk 11.0.13 2021-10-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)

在Alma Linux 8上安装OpenNMS

默认情况下,OpenNMS不包含在Alma Linux默认存储库中。 因此,您需要将 OpenNMS 官方存储库添加到您的系统中。

您可以通过运行以下命令添加 OpenNMS 存储库和 GPG 密钥:

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

接下来,通过运行以下命令安装 OpenNMS:

dnf install opennms -y

这还将把 PostgreSQL 服务器安装到您的服务器上。

接下来,将目录更改为 OpenNMS 并使用以下命令初始化 PostgreSQL 数据库:

cd /opt/opennms
postgresql-setup initdb

最后,使用以下命令启动并启用 PostgreSQL 服务:

systemctl start postgresql
systemctl enable postgresql

您现在可以使用以下命令检查 PostgreSQL 的状态:

systemctl status postgresql

您将得到以下输出:

? postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-01-15 13:34:47 UTC; 5s ago
  Process: 7305 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS)
 Main PID: 7307 (postmaster)
    Tasks: 8 (limit: 11411)
   Memory: 15.9M
   CGroup: /system.slice/postgresql.service
           ??7307 /usr/bin/postmaster -D /var/lib/pgsql/data
           ??7309 postgres: logger process   
           ??7311 postgres: checkpointer process   
           ??7312 postgres: writer process   
           ??7313 postgres: wal writer process   
           ??7314 postgres: autovacuum launcher process   
           ??7315 postgres: stats collector process   
           ??7316 postgres: bgworker: logical replication launcher   

Jan 15 13:34:47 almalinux8 systemd[1]: Starting PostgreSQL database server...
Jan 15 13:34:47 almalinux8 postmaster[7307]: 2022-01-15 13:34:47.618 UTC [7307] LOG:  listening on IPv6 address "::1", port 5432
Jan 15 13:34:47 almalinux8 postmaster[7307]: 2022-01-15 13:34:47.618 UTC [7307] LOG:  listening on IPv4 address "127.0.0.1", port 5432

为 OpenNMS 配置 PostgreSQL

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

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

su - postgres -c "psql -U postgres"

接下来,使用以下命令更改 Postgres 密码:

alter user postgres with password 'mypassword';

接下来,使用以下命令为 OpenNMS 创建数据库和用户:

createuser -P opennms
createdb -O opennms opennms

接下来,使用以下命令退出 PostgreSQL shell:

\q

接下来,使用以下命令编辑 PostgreSQL 配置文件:

nano /var/lib/pgsql/data/pg_hba.conf

找到以下几行:

host    all             all             127.0.0.1/32            ident
host    all             all             ::1/128                 ident

并且,将它们替换为以下行:

host           all            all           127.0.0.1/32           md5
host           all            all           ::1/128                   md5

最后,重新加载 PostgreSQL 服务以应用配置更改:

systemctl reload postgresql

配置 OpenNMS

接下来,您需要编辑 OpenNMS 数据源配置文件并定义数据库:

nano /opt/opennms/etc/opennms-datasources.xml

更改以下与您的数据库凭据匹配的行:




保存并关闭文件,然后运行以下命令来检测 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 P新高: "/etc/alternatives/java"...
runjava: Did not find an appropriate JVM in the P新高: "/etc/alternatives/java"
runjava: Searching for a good JVM...
runjava: Found a good JVM in "/usr/lib/jvm/java-11-openjdk-11.0.13.0.8-4.el8_5.x86_64/bin/java".
runjava: Value of "/usr/lib/jvm/java-11-openjdk-11.0.13.0.8-4.el8_5.x86_64/bin/java" stored in configuration file.

接下来,运行以下命令来初始化数据库并检测系统库:

/opt/opennms/bin/install -dis

您将得到以下输出:

- Running pre-execution phase
  Creating backup of /opt/opennms/etc/service-configuration.xml
    Zipping /opt/opennms/etc/service-configuration.xml
- Running execution phase
  Current configuration: 32 services.
  A service entry named 'OpenNMS:Name=PerspectivePoller' already exists.
  Final configuration: 32 services.
- Saving the execution state
- Running post-execution phase
  Removing backup /opt/opennms/etc/service-configuration.xml.zip

Finished in 0 seconds
Upgrade completed successfully!

最后,使用以下命令启动并启用 OpenNMS 服务:

systemctl start opennms
systemctl enable opennms

您可以使用以下命令检查 OpenNMS 的状态:

systemctl status opennms

您将得到以下输出:

? opennms.service - OpenNMS server
   Loaded: loaded (/usr/lib/systemd/system/opennms.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-01-15 13:39:33 UTC; 6s ago
  Process: 8638 ExecStart=/etc/init.d/opennms -s start (code=exited, status=0/SUCCESS)
 Main PID: 9722 (java)
    Tasks: 36 (limit: 11411)
   Memory: 181.2M
   CGroup: /system.slice/opennms.service
           ??9721 bash /etc/init.d/opennms -s start
           ??9722 /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-4.el8_5.x86_64/bin/java --add-modules=java.base,java.compiler,java.datatransfer,ja>

Jan 15 13:39:22 almalinux8 systemd[1]: Starting OpenNMS server...
Jan 15 13:39:32 almalinux8 systemd[1]: opennms.service: Can't open PID file /opt/opennms/logs/opennms.pid (yet?) after start: No such file or>
Jan 15 13:39:33 almalinux8 systemd[1]: opennms.service: Supervising process 9722 which is not our child. We'll most likely not notice when it>
Jan 15 13:39:33 almalinux8 systemd[1]: Started OpenNMS server.

此时,OpenNMS已启动并监听8980端口,可以通过以下命令查看:

ss -antpl | grep 8980

您将得到以下输出:

LISTEN 0      50                      *:8980             *:*    users:(("java",pid=9722,fd=1031))   

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

将 Nginx 配置为 OpenNMS 的反向代理

接下来,您需要安装 Nginx 并将其配置为 OpenNMS 的反向代理。 为此,请使用以下命令安装 Nginx 服务器:

dnf install nginx -y

安装 Nginxx 后,创建 Nginx 虚拟主机配置文件:

nano /etc/nginx/conf.d/opennms.conf

添加以下行:

upstream opennms {
  server 127.0.0.1:8980;
}

server {
    listen 80;
    server_name opennms.example.com;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    location / {
        proxy_pass http://opennms/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;

        proxy_redirect off;
    }
}

保存并关闭文件,然后使用以下命令验证 Nginx 配置:

nginx -t

您将得到以下输出:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

接下来,启动并启用 Nginx 服务以在系统重新引导时启动:

systemctl start nginx
systemctl enable nginx

您现在可以使用以下命令检查 Nginx 的状态:

systemctl status nginx

您将得到以下输出:

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-01-15 13:44:05 UTC; 6s ago
  Process: 13489 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 13488 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 13486 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 13491 (nginx)
    Tasks: 2 (limit: 11411)
   Memory: 3.7M
   CGroup: /system.slice/nginx.service
           ??13491 nginx: master process /usr/sbin/nginx
           ??13492 nginx: worker process

Jan 15 13:44:05 almalinux8 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Jan 15 13:44:05 almalinux8 nginx[13488]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Jan 15 13:44:05 almalinux8 nginx[13488]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Jan 15 13:44:05 almalinux8 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Jan 15 13:44:05 almalinux8 systemd[1]: Started The nginx HTTP and reverse proxy server.

配置防火墙

接下来,您需要允许端口 80 通过防火墙。 您可以通过运行以下命令来允许它:

firewall-cmd --add-service=http --permanent

接下来,重新加载防火墙以应用更改:

firewall-cmd --reload

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

访问 OpenNMS Web 界面

现在,打开 Web 浏览器并使用 URL http://opennms.example.com 访问 OpenNMS Web 界面。 您将看到 OpenNMS 登录屏幕:

提供默认的管理员用户名和密码 admin/admin,然后单击“登录”按钮。 您将在以下屏幕上看到 OpenNMS 仪表板:

现在,点击 admin => Change Password 按钮来更改默认密码,如下所示:

更改您的默认密码并单击“提交”按钮。 您将看到以下屏幕:

结论

恭喜 您已在Alma Linux 8上成功安装带有Nginx的OpenNMS。您现在可以从OpenNMS仪表板添加远程主机并开始从中央位置监控它们。 如果您有任何疑问,请随时问我。

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