OpenNMS 部署

OpenNMS 部署步骤

环境

centos 7系统

[root@review ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core) 

[root@review ~]# uname -r
3.10.0-957.el7.x86_64

安装 PostgreSQL

1 添加 PostgreSQL 12 软件包存储库

yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

2 下载 PostgreSQL 12 客户端、服务端

yum -y install postgresql12-server postgresql12

3 PostgreSQL 数据库初始化

[root@review ~]# /usr/pgsql-12/bin/postgresql-12-setup initdb
Initializing database ... OK

4 设置开机自启

systemctl enable --now postgresql-12


# 查看进程
[root@review ~]# ps aux|grep postgres
postgres   7333  0.0  0.9 397816 17568 ?        Ss   17:02   0:00 /usr/pgsql-12/bin/postmaster -D /var/lib/pgsql/12/data/
postgres   7335  0.0  0.1 252184  2052 ?        Ss   17:02   0:00 postgres: logger   
postgres   7337  0.0  0.1 397816  2060 ?        Ss   17:02   0:00 postgres: checkpointer   
postgres   7338  0.0  0.1 397948  2824 ?        Ss   17:02   0:00 postgres: background writer   
postgres   7339  0.0  0.3 397816  6256 ?        Ss   17:02   0:00 postgres: walwriter   
postgres   7340  0.0  0.1 398368  3244 ?        Ss   17:02   0:00 postgres: autovacuum launcher   
postgres   7341  0.0  0.1 252180  2120 ?        Ss   17:02   0:00 postgres: stats collector   
postgres   7342  0.0  0.1 398372  2804 ?        Ss   17:02   0:00 postgres: logical replication launcher   
root       7350  0.0  0.0 112724   984 pts/0    S+   17:03   0:00 grep --color=auto postgres

5 创建opennms数据库用户和密码

[root@review ~]# sudo -i -u postgres createuser -P opennms
为新角色输入的口令: 123456
再输入一遍: 123456

创建一个空数据库,将所有者设置为opennms

sudo -i -u postgres createdb -O opennms opennms

给 PostgreSQL 超级用户设置密码

sudo -i -u postgres psql -c "ALTER USER postgres WITH PASSWORD '2024'; "

6 更改 PostgreSQL 的访问策略

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

pg_hba.conf 文件中定义了一种连接类型、连接来源、目标数据库、用户和使用的认证方法。

常见的认证方法包括:

  • trust不需要密码连接。
  • reject拒绝所有的连接。
  • md5要求输入密码,而且通过 MD5 加密进行验证。
  • password要求输入密码,但是密码以明文形式发送。
  • peer使用操作系统的用户身份进行认证。
  • ident使用基于映射的系统用户身份进行认证。
# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

修改为

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust

7 重新加载配置

systemctl reload postgresql-12

安装 openNms

1 下载官方的rpm包

rpm -Uvh https://yum.opennms.org/repofiles/opennms-repo-stable-rhel7.noarch.rpm

2 查看

[root@review ~]# yum list opennms
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * epel: d2lzkl7pfhq30w.cloudfront.net
opennms-repo-stable-common                                   | 1.5 kB  00:00:00     
opennms-repo-stable-rhel7                                    | 1.5 kB  00:00:00     
(1/2): opennms-repo-stable-rhel7/primary                     |  18 kB  00:00:01     
(2/2): opennms-repo-stable-common/primary                    |  33 kB  00:00:01     
opennms-repo-stable-common                                                  277/277
opennms-repo-stable-rhel7                                                     94/94
可安装的软件包
opennms.noarch                  33.0.9-1                  opennms-repo-stable-common

3 下载 opennms

yum install -y opennms

这一步会自动部署Java环境,可以查看Java版本。

[root@review ~]# java -version
openjdk version "11.0.23" 2024-04-16 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.23.0.9-2.el7_9) (build 11.0.23+9-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.23.0.9-2.el7_9) (build 11.0.23+9-LTS, mixed mode, sharing)

4 禁止自动更新

yum -y install yum-utils

5 tree 查看目录结构

# 下载tree命令
[root@review ~]# yum install tree -y


[root@review ~]# tree /opt/opennms -L 1
/opt/opennms
├── agent
├── bin
├── data
├── deploy
├── etc
├── jetty-webapps
├── lib
├── logs -> /var/log/opennms
├── share -> /var/opennms
└── system

10 directories, 0 files

6 配置 PostgreSQL 数据库访问

sudo -u opennms 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="${scv:postgres:username|opennms}"
                    password="${scv:postgres:password|opennms}" />

  <jdbc-data-source name="opennms-admin" 
                    database-name="template1" 
                    class-name="org.postgresql.Driver" 
                    url="jdbc:postgresql://localhost:5432/template1"
                    user-name="${scv:postgres-admin:username|postgres}"
                    password="${scv:postgres-admin:password|}">
    <connection-pool idleTimeout="600"
                     minPool="0"
                     maxPool="10"
                     maxSize="50" />
  </jdbc-data-source>
  
  <jdbc-data-source name="opennms-monitor" 
                    database-name="postgres" 
                    class-name="org.postgresql.Driver" 
                    url="jdbc:postgresql://localhost:5432/postgres"
                    user-name="${scv:postgres-admin:username|postgres}"
                    password="${scv:postgres-admin:password|}">
    <connection-pool idleTimeout="600"
                     minPool="0"
                     maxPool="10"
                     maxSize="50" />
  </jdbc-data-source>

修改为

  <jdbc-data-source name="opennms" 
                    database-name="opennms" 
                    class-name="org.postgresql.Driver" 
                    url="jdbc:postgresql://192.168.1.91:5432/opennms"
                    user-name="opennms"
                    password="123456" />

  <jdbc-data-source name="opennms-admin" 
                    database-name="template1" 
                    class-name="org.postgresql.Driver" 
                    url="jdbc:postgresql://192.168.1.91:5432/template1"
                    user-name="postgres"
                    password="2024">
    <connection-pool idleTimeout="600"
                     minPool="0"
                     maxPool="10"
                     maxSize="50" />
  </jdbc-data-source>
  
  <jdbc-data-source name="opennms-monitor" 
                    database-name="postgres" 
                    class-name="org.postgresql.Driver" 
                    url="jdbc:postgresql://192.168.1.91:5432/postgres"
                    user-name="postgres"
                    password="2024">
    <connection-pool idleTimeout="600"
                     minPool="0"
                     maxPool="10"
                     maxSize="50" />
  </jdbc-data-source>

保存退出。

7 分配java环境

[root@review ~]# /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: "/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64/bin/java"...
runjava: Found an appropriate JVM in the PATH: "/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64/bin/java"
runjava: Value of "/usr/lib/jvm/java-11-openjdk-11.0.23.0.9-2.el7_9.x86_64/bin/java" stored in configuration file.

8 初始化数据库

/opt/opennms/bin/install -dis

9 配置 PostgreSQL 数据库访问

systemctl edit --full opennms.service
[Unit]
Description=OpenNMS server
Wants=postgresql.service
Requires=network.target network-online.target
After=postgresql.service postgresql-10.service postgresql-11.service postgresql-12.service postgresql-13.service network.target network-online.target

[Service]
AmbientCapabilities=CAP_NET_RAW CAP_NET_BIND_SERVICE  # 添加这行
User=opennms
Environment="OPENNMS_HOME=/opt/opennms"

Type=forking
RuntimeDirectory=opennms
RuntimeDirectoryMode=0775
PIDFile=/var/run/opennms/opennms.pid

ExecStart=/opt/opennms/bin/opennms -s start
# cosmetic: sleep just long enough that Systemd doesn't complain about not seeing the PID file yet
ExecStartPost=/bin/sleep 3
ExecStop=/opt/opennms/bin/opennms -s stop

[Install]
WantedBy=multi-user.target

 保存后退出。

# 重新加载
systemctl daemon-reload

# 重启
systemctl restart opennms

10 开机自启核心实例

systemctl enable --now opennms

11 设置防火墙

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

重新加载防火墙

systemctl reload firewalld

12 浏览器访问

http://192.168.1.91:8980

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韩未零

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值