웹사이트 검색

Debian 11에 OpenNMS Horizon 네트워크 모니터링 시스템을 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. Debian 11에 Java 설치
  3. Debian 11에 OpenNMS 설치
  4. PostgreSQL에서 데이터베이스 생성
  5. OpenNMS 구성
  6. OpenNMS 서비스 시작
  7. Nginx를 OpenNMS용 리버스 프록시로 구성\n
  8. OpenNMS 대시보드 액세스
  9. 결론

OpenNMS는 무료 오픈 소스이며 중앙 위치에서 원격 장치를 모니터링하는 데 사용되는 가장 강력한 네트워크 모니터링 및 네트워크 관리 플랫폼 중 하나입니다. 프로비저닝, 서비스 모니터링, 이벤트 관리, 차트 지원 등 많은 기능을 지원합니다. OpenNMS는 SNMP 및 JMX를 사용하고 원격 시스템에서 정보를 수집합니다. Linux 및 Windows 운영 체제에서 실행되며 손쉬운 모니터링을 위한 웹 기반 인터페이스를 제공합니다.

이 튜토리얼에서는 데비안 11에 OpenNMS를 설치하는 방법을 보여드리겠습니다.

전제 조건

  • Debian 11을 실행하는 서버.\n
  • 서버 IP를 가리키는 유효한 도메인 이름입니다.\n
  • 루트 암호는 서버에서 구성됩니다.\n

데비안 11에 자바 설치

OpenNMS는 Java 기반 응용 프로그램입니다. 따라서 서버에 Java가 설치되어 있어야 합니다. 설치되어 있지 않은 경우 다음 명령을 실행하여 설치할 수 있습니다.

apt-get install default-jdk -y

Java가 설치되면 아래 명령을 사용하여 Java 버전을 확인하십시오.

java --version

다음 출력에서 Java 버전을 얻을 수 있습니다.

openjdk 11.0.13 2021-10-19
OpenJDK Runtime Environment (build 11.0.13+8-post-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 11.0.13+8-post-Debian-1deb11u1, mixed mode, sharing)

데비안 11에 OpenNMS 설치

기본적으로 OpenNMS는 Debian 11 기본 저장소에 포함되어 있지 않습니다. 따라서 APT에 OpenNMS 공식 저장소를 추가해야 합니다.

먼저 다음 명령을 사용하여 필요한 모든 종속 항목을 설치합니다.

apt-get install curl gnupg2 wget -y

모든 패키지가 설치되면 아래 명령을 사용하여 OpenNMS 리포지토리 파일을 만듭니다.

nano /etc/apt/sources.list.d/opennms.list

다음 줄을 추가합니다.

deb https://debian.opennms.org stable main
deb-src https://debian.opennms.org stable main

파일을 저장하고 닫은 후 다음 명령을 사용하여 GPG 키를 가져옵니다.

wget -O - https://debian.opennms.org/OPENNMS-GPG-KEY | apt-key add -

다음과 같은 결과가 표시됩니다.

Connecting to debian.opennms.org (debian.opennms.org)|3.214.84.83|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1335 (1.3K)
Saving to: ‘STDOUT’

-                                   100%[=================================================================>]   1.30K  --.-KB/s    in 0s      

2021-11-28 07:58:07 (16.0 MB/s) - written to stdout [1335/1335]

OK

다음으로 리포지토리 캐시를 업데이트하고 다음 명령을 사용하여 OpenNMS를 설치합니다.

apt-get update -y
apt-get install opennms -y

설치 중에 다음 오류가 발생합니다.

Failed to install iplike into the template1 or opennms databases. See /tmp/install_iplike.log for details. To skip this step and install manually, set the         
environment variable SKIP_IPLIKE_INSTALL before installing this package. To install iplike into your database, use the /usr/sbin/install_iplike.sh script.  See    
`install_iplike.sh -h` for more details.

이 오류를 해결하려면 PostgreSQL에서 OpenNMS용 데이터베이스와 사용자를 생성해야 합니다.

PostgreSQL에서 데이터베이스 생성

OpenNMS 설치 과정에서 PostgreSQL 서버가 자동으로 설치됩니다.

먼저 다음 명령을 사용하여 PostgreSQL 서비스를 시작합니다.

systemctl start postgresql

그런 다음 다음 명령을 사용하여 PostgreSQL 인스턴스에 연결합니다.

su - postgres

연결되면 OpenNMS 사용자를 생성하고 다음 명령을 사용하여 비밀번호를 설정합니다.

createuser opennms
psql -c "ALTER USER opennms WITH PASSWORD 'opennms';"

다음으로 OpenNMS용 데이터베이스를 만들고 postgres 사용자의 비밀번호를 설정합니다.

createdb -O opennms opennms
psql -c "ALTER USER postgres WITH PASSWORD 'securepassword';"

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

exit

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

OpenNMS 구성

다음으로 OpenNMS 데이터 원본 파일을 편집하고 데이터베이스 자격 증명을 정의해야 합니다.

nano /usr/share/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="securepassword" />
</datasource-configuration>

완료되면 파일을 저장하고 닫은 후 다음 명령을 실행하여 Java 환경을 감지합니다.

sudo -u opennms /usr/share/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-amd64/bin/java".
runjava: Value of "/usr/lib/jvm/java-11-openjdk-amd64/bin/java" stored in configuration file.

그런 다음 다음 명령을 실행하여 OpenNMS 설정을 완료합니다.

sudo -u opennms /usr/share/opennms/bin/install -dis

다음과 같은 결과가 표시됩니다.

Finished in 0 seconds

Processing RemotePollerServiceConfigMigratorOffline: Remove deprecated RemotePoller service entry from service-configuration.xml, see NMS-12684
- Running pre-execution phase
  Creating backup of /usr/share/opennms/etc/service-configuration.xml
    Zipping /usr/share/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 /usr/share/opennms/etc/service-configuration.xml.zip

Finished in 0 seconds

Upgrade completed successfully!

OpenNMS 서비스 시작

OpenNMS를 설정한 후 OpenNMS 서비스를 시작하고 다음 명령을 사용하여 시스템 재부팅 시 시작되도록 활성화합니다.

systemctl start opennms
systemctl enable opennms

다음 명령을 사용하여 OpenNMS 상태를 확인할 수 있습니다.

systemctl status opennms

다음과 같은 결과가 표시됩니다.

? opennms.service - OpenNMS server
     Loaded: loaded (/lib/systemd/system/opennms.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-11-28 08:10:51 UTC; 16s ago
    Process: 22990 ExecStart=/usr/share/opennms/bin/opennms -s start (code=exited, status=0/SUCCESS)
   Main PID: 24106 (java)
      Tasks: 68 (limit: 4679)
     Memory: 559.2M
        CPU: 48.083s
     CGroup: /system.slice/opennms.service
             ??24105 bash /usr/share/opennms/bin/opennms -s start
             ??24106 /usr/lib/jvm/java-11-openjdk-amd64/bin/java --add-modules=java.base,java.compiler,java.datatransfer,java.desktop,java.in>

Nov 28 08:11:02 debian11 opennms[24106]: [DEBUG] System property 'opennms.library.jicmp' set to '/usr/lib/jni/libjicmp.so.  Attempting to loa>
Nov 28 08:11:02 debian11 opennms[24106]: [INFO] Successfully loaded jicmp library.
Nov 28 08:11:02 debian11 opennms[24106]: [DEBUG] System property 'opennms.library.jicmp6' set to '/usr/lib/jni/libjicmp6.so.  Attempting to l>
Nov 28 08:11:02 debian11 opennms[24106]: [INFO] Successfully loaded jicmp6 library.
Nov 28 08:11:02 debian11 opennms[24106]: [DEBUG] System property 'opennms.library.jicmp' set to '/usr/lib/jni/libjicmp.so.  Attempting to loa>
Nov 28 08:11:02 debian11 opennms[24106]: [INFO] Successfully loaded jicmp library.
Nov 28 08:11:02 debian11 opennms[24106]: [DEBUG] System property 'opennms.library.jicmp6' set to '/usr/lib/jni/libjicmp6.so.  Attempting to l>
Nov 28 08:11:02 debian11 opennms[24106]: [INFO] Successfully loaded jicmp6 library.
Nov 28 08:11:07 debian11 opennms[24106]: Nov 28, 2021 8:11:07 AM org.hibernate.validator.internal.util.Version 
Nov 28 08:11:07 debian11 opennms[24106]: INFO: HV000001: Hibernate Validator 4.3.2.Final

이 시점에서 OpenNMS가 시작되고 포트 8980에서 수신 대기합니다. 다음 명령으로 확인할 수 있습니다.

ss -antpl | grep 8980

다음과 같은 결과가 표시됩니다.

LISTEN 0      50                      *:8980             *:*    users:(("java",pid=24106,fd=1046))     

Nginx를 OpenNMS용 리버스 프록시로 구성

다음으로 Nginx를 OpenNMS용 리버스 프록시로 설치하고 구성하는 것이 좋습니다. 먼저 다음 명령을 사용하여 Nginx 서버를 설치합니다.

apt-get install nginx -y

Nginx가 설치되면 Nginx 가상 호스트 구성 파일을 만듭니다.

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

다음 구성을 추가합니다.

server {
  listen 80;
  server_name opennms.example.com;
    access_log /var/log/nginx/opennms.access.log;
    error_log /var/log/nginx/opennms.error.log;

  location /

  {
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-OpenNMS-Server-URL https://nms.hacc.edu/;
    proxy_pass http://server-ip:8980;

  }
}

파일을 저장하고 닫은 다음 구문 구성 오류가 있는지 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 restart nginx

Nginx 실행 상태를 확인하려면 다음 명령을 실행합니다.

systemctl status nginx

다음 출력이 표시되어야 합니다.

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-11-28 08:17:14 UTC; 6s ago
       Docs: man:nginx(8)
    Process: 25964 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 25965 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 25967 (nginx)
      Tasks: 3 (limit: 4679)
     Memory: 3.2M
        CPU: 53ms
     CGroup: /system.slice/nginx.service
             ??25967 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??25968 nginx: worker process
             ??25969 nginx: worker process

Nov 28 08:17:14 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 28 08:17:14 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.

OpenNMS 대시보드에 액세스

이제 웹 브라우저를 열고 URL http://opennms.example.com을 사용하여 OpenNMS 웹 인터페이스에 액세스하십시오. OpenNMS 로그인 페이지가 표시되어야 합니다.

기본 사용자 이름과 비밀번호를 admin으로 입력하고 로그인 버튼을 클릭합니다. 다음 화면에 OpenNMS 대시보드가 표시되어야 합니다.

이제 관리자 > 암호 변경을 클릭하여 아래와 같이 기본 관리자 암호를 변경합니다.

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

결론

축하합니다! Debian 11 서버에서 역방향 프록시로 Nginx와 함께 OpenNMS를 성공적으로 설치했습니다. 이제 원격 장치를 OpenNMS에 추가하고 웹 브라우저에서 모니터링을 시작할 수 있습니다. 궁금한 점이 있으면 언제든지 문의해 주세요.