네트워크 모니터링 · 6 min read · Dec 07, 2025

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

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

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

전제 조건

  • Debian 11이 실행되는 서버.
  • 서버 IP를 가리키는 유효한 도메인 이름.
  • 서버에 구성된 루트 비밀번호.

Debian 11에 Java 설치하기

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)

Debian 11에 OpenNMS 설치하기

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

먼저, 다음 명령어를 사용하여 필요한 모든 종속성을 설치합니다:

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에서 데이터베이스 생성하기

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

먼저, 다음 명령어를 사용하여 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

다음과 같이 데이터베이스 자격 증명을 정의합니다:

  

  

작업이 완료되면 파일을 저장하고 닫은 후, 다음 명령어를 실행하여 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))     

OpenNMS를 위한 Nginx를 리버스 프록시로 구성하기

다음으로, OpenNMS를 위한 리버스 프록시로 Nginx를 설치하고 구성하는 것이 좋습니다. 먼저, 다음 명령어로 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의 구문 구성 오류를 확인합니다:

ginx -t

다음과 같은 출력을 받게 됩니다:

ginx: the configuration file /etc/nginx/nginx.conf syntax is ok
ginx: 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 로그인 페이지가 표시됩니다:

OpenNMS Horizon

기본 사용자 이름과 비밀번호를 admin으로 입력하고 로그인 버튼을 클릭합니다. 다음 화면에서 OpenNMS 대시보드를 확인할 수 있습니다:

Horizon Dashboard

이제 admin > 비밀번호 변경을 클릭하여 기본 admin 비밀번호를 변경합니다:

Change password

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

Password changed

결론

축하합니다! Debian 11 서버에 Nginx를 리버스 프록시로 사용하여 OpenNMS를 성공적으로 설치했습니다. 이제 원격 장치를 OpenNMS에 추가하고 웹 브라우저에서 모니터링을 시작할 수 있습니다. 질문이 있으면 언제든지 문의해 주세요.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.