如何在CentOS8上安裝OpenNMS網絡監視工具

如何在CentOS8上安裝OpenNMS網絡監視工具

OpenNMS是一個免費的開源網絡監視和網絡管理平台,用於管理全球的企業網絡。它基於Java,旨在從一個中央位置管理數千個設備。它具有自動檢測和監視網絡中的服務或節點的能力。

特性

  • 支持SNMP,JMX,WMI,NPRE,NSCLient ++和XMP
  • 事件驅動架構
  • 支持設備和應用程序監視
  • 發現類型並停止路徑
  • 配置和運行服務監視器
  • 支持第2層和第3層網絡拓撲

本教程顯示了如何在CentOS 8服務器上安裝和配置OpenNMS。

先決條件

  • 運行CentOS的服務器8。
  • 根密碼是在服務器上設置的。

入門

OpenNMS是基於Java的應用程序。因此,您需要在系統上安裝Java。您可以運行以下命令來將其與其他必需的軟件包一起安裝。

dnf install java-11-openjdk-devel curl unzip -y

安裝Java之後,可以使用以下命令檢查Java版本:

java -version

您應該獲得以下輸出:

openjdk version "11.0.9" 2020-10-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.9+11-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.9+11-LTS, mixed mode, sharing)

完成後,您可以繼續下一步。

安裝OpenNMS

默認情況下,CentOS 8默認存儲庫中不提供OpenNMS。因此,您需要將OpenNMS存儲庫添加到系統中。

首先,使用以下命令添加GPG密鑰。

rpm --import https://yum.opennms.org/OPENNMS-GPG-KEY

添加GPG密鑰後,運行以下命令以添加OpenNMS存儲庫。

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

然後,您可以通過運行以下命令來運行OpenNMS:

dnf install opennms -y

這將在您的服務器上安裝OpenNMS,PostgreSQL和其他軟件包。

配置PostgreSQL

OpenNMS使用PostgreSQL作為數據庫後端。您可以使用以下命令初始化PostgreSQL數據庫:

postgresql-setup --initdb --unit postgresql

您應該獲得以下輸出:

 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

然後啟動PostgreSQL服務,以便可以使用以下命令在系統重新啟動時啟動它:

systemctl enable postgresqlsystemctl start postgresql

接下來,您需要為PostgreSQL創建數據庫和用戶。

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

su - postgres

登錄後,使用以下命令創建用戶:

[[email protected] ~]$ createuser -P opennms

系統將提示您設置密碼,如下所示。

Enter password for new role: 
Enter it again: 

然後使用以下命令創建數據庫:

[[email protected] ~]$ createdb -O opennms opennms

然後使用以下命令為PostgreSQL用戶設置密碼。

[[email protected] ~]$ psql -c "ALTER USER postgres WITH PASSWORD 'password';"

然後使用以下命令退出PostgreSQL shell:

[[email protected] ~]$ exit;

接下來,您需要更改PostgreSQL訪問策略。您可以通過編輯文件/var/lib/pgsql/data/pg_hba.conf來實現。

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

找到下一行。

# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

並將其替換為以下行:廣告

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

保存並關閉文件,然後重新啟動PostgreSQL服務以應用您的更改。

systemctl restart postgresql

接下來,您需要在/opt/opennms/etc/opennms-datasources.xml文件中定義數據庫。

nano /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="password" />

完成後,保存文件並關閉它。

初始化並啟動OpenNMS

接下來,您需要初始化OpenNMS。首先,使用以下命令添加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 PATH: "/etc/alternatives/java"...
runjava: Did not find an appropriate JVM in the PATH: "/etc/alternatives/java"
runjava: Searching for a good JVM...
runjava: Found a good JVM in "/usr/lib/jvm/java-11-openjdk-11.0.9.11-0.el8_2.x86_64/bin/java".
runjava: Value of "/usr/lib/jvm/java-11-openjdk-11.0.9.11-0.el8_2.x86_64/bin/java" stored in configuration file.

然後運行以下命令來初始化數據庫:

/opt/opennms/bin/install -dis

然後使用以下命令允許OpenNMS在系統重新啟動時啟動。

systemctl enable --now opennms

您應該獲得以下輸出:

Synchronizing state of opennms.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable opennms
Created symlink /etc/systemd/system/multi-user.target.wants/opennms.service → /usr/lib/systemd/system/opennms.service.

現在,您可以使用以下命令檢查OpenNMS服務的狀態: 廣告

systemctl status opennms

您應該獲得以下輸出:

? opennms.service - OpenNMS server
   Loaded: loaded (/usr/lib/systemd/system/opennms.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2020-11-25 09:21:32 EST; 13s ago
  Process: 26880 ExecStart=/etc/init.d/opennms -s start (code=exited, status=0/SUCCESS)
 Main PID: 27928 (java)
    Tasks: 67 (limit: 12523)
   Memory: 555.6M
   CGroup: /system.slice/opennms.service
           ??27927 bash /etc/init.d/opennms -s start
           ??27928 /usr/lib/jvm/java-11-openjdk-11.0.9.11-0.el8_2.x86_64/bin/java --add-modules=java.base,java.compiler,java.datatransfer,java>

Nov 25 09:21:42 centos8 opennms[26880]: [DEBUG] System property 'opennms.library.jicmp' set to '/usr/lib64/libjicmp.so.  Attempting to load ji>
Nov 25 09:21:42 centos8 opennms[26880]: [INFO] Successfully loaded jicmp library.
Nov 25 09:21:42 centos8 opennms[26880]: [DEBUG] System property 'opennms.library.jicmp' set to '/usr/lib64/libjicmp.so.  Attempting to load ji>
Nov 25 09:21:42 centos8 opennms[26880]: [INFO] Successfully loaded jicmp library.
Nov 25 09:21:42 centos8 opennms[26880]: [DEBUG] System property 'opennms.library.jicmp6' set to '/usr/lib64/libjicmp6.so.  Attempting to load >
Nov 25 09:21:42 centos8 opennms[26880]: [INFO] Successfully loaded jicmp6 library.
Nov 25 09:21:42 centos8 opennms[26880]: [DEBUG] System property 'opennms.library.jicmp' set to '/usr/lib64/libjicmp.so.  Attempting to load ji>
Nov 25 09:21:42 centos8 opennms[26880]: [INFO] Successfully loaded jicmp library.
Nov 25 09:21:42 centos8 opennms[26880]: [DEBUG] System property 'opennms.library.jicmp6' set to '/usr/lib64/libjicmp6.so.  Attempting to load >
Nov 25 09:21:42 centos8 opennms[26880]: [INFO] Successfully loaded jicmp6 library.

此時,OpenNMS已啟動並在端口8980上偵聽。您可以使用以下命令進行檢查。

ss -antpl | grep :8980

您應該獲得以下輸出:

LISTEN   0        50                          *:8980                   *:*       users:(("java",pid=27928,fd=988)) 

完成後,您可以繼續下一步。

配置SELinux和防火牆

默認情況下,在CentOS 8服務器上啟用SELinux。因此,必須首先禁用它。 您可以通過編輯/ etc / selinux / config文件來禁用它。

nano /etc/selinux/config

找到下一行。

SELINUX=enforcing

然後將其替換為下一行。

SELINUX=permissive

保存並關閉文件,然後重新啟動系統以應用更改。

然後使用以下命令通過防火牆d允許端口8980:

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

然後重新加載防火牆以應用您的更改。

firewall-cmd --reload

完成後,您可以繼續下一步。

訪問OpenNMS Web界面

然後打開Web瀏覽器,並使用URL訪問OpenNMS Web界面。 http://您的服務器IP:8980 / opennms.. 您將被重定向到OpenNMS登錄頁面。

指定默認的admin用戶名admin和密碼admin,然後單擊。 登錄 按鈕。顯示下一頁。

登錄OpenNMS

請點擊 選擇參加 將匿名使用情況統計信息發送到OpenNMS。 OpenNMS儀錶板顯示在下一頁上。

openNMS儀錶板

請點擊 管理員=>更改密碼 更改默認密碼。顯示下一頁。

修改管理員密碼

更改默認密碼,然後單擊 參加 按鈕。顯示下一頁。

密碼更換成功

請點擊 + 單擊該圖標以添加新主機。顯示下一頁:廣告

將新主機添加到openNMS監視

輸入新工作的名稱,然後單擊 按鈕。顯示下一頁。

添加節點

設備詳細信息

輸入遠程主機的詳細信息,然後單擊 供應 按鈕。添加主機後,將顯示下一頁。

新節點添加成功

然後點擊 信息=>節點..您需要在下一頁上獲取有關遠程主機的更多信息。

OpenNMS監視節點

結論

恭喜!您已在CentOS 8服務器上成功安裝了OpenNMS。現在,您可以向OpenNMS添加無限的網絡主機和設備,並從中央位置開始監視。

Sidebar