웹사이트 검색

CentOS 8에서 OpenNMS 네트워크 모니터링 도구를 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. 시작하기\n
  3. OpenNMS 설치
  4. PostgreSQL 구성
  5. OpenNMS 초기화 및 시작\n
  6. SELinux 및 방화벽 구성\n
  7. OpenNMS 웹 인터페이스 액세스
  8. 결론

OpenNMS는 전 세계 엔터프라이즈 네트워크를 관리하는 데 사용되는 무료 오픈 소스 네트워크 모니터링 및 네트워크 관리 플랫폼입니다. Java를 기반으로 하며 중앙 위치에서 수천 개의 장치를 관리하도록 설계되었습니다. 네트워크에서 서비스 또는 노드를 자동으로 검색하고 모니터링하는 기능이 있습니다.

특징

  • SNMP, JMX, WMI, NPRE, NSCLient++ 및 XMP 지원
  • 이벤트 기반 아키텍처
  • 기기 및 애플리케이션 모니터링 지원\n
  • 유형 발견 및 경로 중단\n
  • 서비스 모니터 구성 및 실행\n
  • 레이어 2 및 레이어 3 네트워크 토폴로지 지원

이 튜토리얼에서는 CentOS 8 서버에 OpenNMS를 설치하고 구성하는 방법을 보여줍니다.

전제 조건

  • CentOS 8을 실행하는 서버.\n
  • 루트 암호는 서버에 구성됩니다.\n

시작하기

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 설치

기본적으로 OpenNMS는 CentOS 8 기본 저장소에서 사용할 수 없습니다. 따라서 시스템에 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 postgresql
systemctl start postgresql

다음으로 PostgreSQL용 데이터베이스와 사용자를 생성해야 합니다.

먼저 다음 명령을 사용하여 PostgreSQL에 로그인합니다.

su - postgres

로그인 후 다음 명령을 사용하여 사용자를 생성합니다.

[ ~]$ createuser -P opennms

아래와 같이 비밀번호를 설정하라는 메시지가 표시됩니다.

Enter password for new role: 
Enter it again: 

다음으로 다음 명령을 사용하여 데이터베이스를 생성합니다.

[ ~]$ createdb -O opennms opennms

다음으로 다음 명령을 사용하여 PostgreSQL 사용자의 암호를 설정합니다.

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

그런 다음 다음 명령을 사용하여 PostgreSQL 셸을 종료합니다.

[ ~]$ 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 및 방화벽 구성

기본적으로 SELinux는 CentOS 8 서버에서 활성화되어 있습니다. 따라서 먼저 비활성화해야 합니다. /etc/selinux/config 파일을 편집하여 비활성화할 수 있습니다.

nano /etc/selinux/config

다음 줄을 찾으십시오.

SELINUX=enforcing

그리고 다음 줄로 바꿉니다.

SELINUX=permissive

파일을 저장하고 닫은 다음 시스템을 재부팅하여 변경 사항을 적용하십시오.

그런 다음 다음 명령을 사용하여 방화벽을 통해 포트 8980을 허용합니다.

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

다음으로 방화벽을 다시 로드하여 변경 사항을 적용합니다.

firewall-cmd --reload

완료되면 다음 단계로 진행할 수 있습니다.

OpenNMS 웹 인터페이스에 액세스

이제 웹 브라우저를 열고 URL http://your-server-ip:8980/opennms를 사용하여 OpenNMS 웹 인터페이스에 액세스하십시오. OpenNMS 로그인 페이지로 리디렉션됩니다.

기본 관리자 사용자 이름을 admin으로, 암호를 admin으로 입력한 다음 로그인 버튼을 클릭합니다. 다음 페이지가 표시됩니다.

익명의 사용 통계를 OpenNMS로 보내려면 옵트인을 클릭하십시오. 다음 페이지에 OpenNMS 대시보드가 표시되어야 합니다.

관리자 => 비밀번호 변경을 클릭하여 기본 비밀번호를 변경하십시오. 다음 페이지가 표시됩니다.

기본 비밀번호를 변경하고 제출 버튼을 클릭합니다. 다음 페이지가 표시됩니다.

+ 아이콘을 클릭하여 새 호스트를 추가합니다. 다음 페이지가 표시됩니다.

새 요청의 이름을 입력하고 확인 버튼을 클릭합니다. 다음 페이지가 표시됩니다.

원격 호스트 세부 정보를 제공하고 프로비저닝 버튼을 클릭합니다. 호스트가 추가되면 다음 페이지가 표시됩니다.

이제 정보 => 노드를 클릭하십시오. 다음 페이지에서 원격 호스트의 세부 정보를 얻어야 합니다.

결론

축하합니다! CentOS 8 서버에 OpenNMS를 성공적으로 설치했습니다. 이제 무제한 네트워크 호스트와 장치를 OpenNMS에 추가하고 중앙 위치에서 모니터링을 시작할 수 있습니다.