OpenNMS 설치 · 8 min read · Nov 01, 2025

Ubuntu 22.04에 OpenNMS 모니터링 솔루션 설치하는 방법

OpeNNMS는 무료이며 오픈 소스 네트워크 모니터링 및 네트워크 관리 솔루션입니다. 이는 로컬 네트워크와 원격 네트워크의 모든 것을 시각화하고 모니터링하는 엔터프라이즈급 네트워크 모니터링 플랫폼입니다. OpenNMS는 네트워크 모니터링 및 관리에 대한 완전한 오픈 소스 솔루션으로, AGPLv3 라이센스 하에 배포됩니다.

OpenNMS는 수만 개의 네트워크를 분산 및 계층 시스템을 통해 모니터링할 수 있는 확장 가능한 네트워크 모니터링 플랫폼입니다. 또한 OpenNMS는 귀하의 핵심 비즈니스 및 타사 확장과 쉽게 통합되는 유연한 모니터링 플랫폼입니다.

OpenNMS에는 아래에 나열된 여러 구성 요소가 있습니다:

  1. OpenNMS Horizon - 세 가지 주요 구성 요소의 번들: Core (Horizon의 주요 구성 요소), Minion (원격 분산 모니터링에 사용), Sentinel (확장성 용도).
  2. Helm - OpenNMS를 위한 맞춤형 대시보드.
  3. 학습 기반 상관 관계 아키텍처 (ALEC) (알람 분류).
  4. 프로비저닝 통합 서버 (PRIS) (추출된 데이터 통합).

이 가이드는 PostgreSQL 데이터베이스 서버와 Nginx 리버스 프록시를 사용하여 Ubuntu 22.04 서버에 OpenNMS 모니터링 솔루션을 설치하는 방법을 보여줍니다. 또한 이 가이드는 Java OpenJDK의 설치, PostgreSQL 데이터베이스 서버의 기본 구성 및 Nginx 웹 서버의 설치를 보여줍니다.

전제 조건

우선, 이 가이드를 완료하기 위해 다음 요구 사항이 필요합니다:

  • Ubuntu 22.04 서버 - 이 예제에서는 호스트 이름이 ‘opennms-server’인 Ubuntu 서버를 사용하며 메모리는 4GB입니다.
  • sudo/root 관리자 권한이 있는 비루트 사용자.
  • OpenNMS를 실행하기 위해 사용할 도메인 이름 또는 로컬 도메인.

Java OpenJDK 설치

OpenNMS 모니터링 솔루션은 주로 Java로 작성된 모니터링 도구입니다. 이 글을 작성할 당시 OpenNMS의 최신 버전은 최소 Java 11을 지원합니다. 기본 Ubuntu 22.04 저장소는 APT를 통해 쉽게 설치할 수 있는 Java OpenJDK 11을 제공합니다.

Java를 설치하기 전에 패키지 인덱스를 업데이트하고 새로 고치기 위해 다음 apt 명령을 실행합니다.

sudo apt update

이제 아래의 apt 명령을 통해 Java OpenJDK 11을 설치합니다. Ubuntu 22.04 시스템의 기본 Java 버전은 OpenNMS 설치에 적합한 Java OpenJDK 11입니다.

sudo apt install default-jdk

프롬프트가 표시되면 y를 입력하여 확인하고 ENTER를 누릅니다. Java OpenJDK 설치가 시작됩니다.

install java

Java OpenJDK가 설치된 후, 아래 명령을 실행하여 설치된 Java 버전을 확인합니다. Ubuntu 시스템에 Java OpenJDK 1.11이 설치되어 있어야 합니다.

java -version

Java OpenJDK가 설치되었으므로 PostgreSQL 데이터베이스 설치로 이동합니다.

PostgreSQL 서버 설치 및 구성

PostgreSQL은 고성능 RDMS (관계형 데이터베이스 관리 시스템)입니다. OpenNMS는 데이터베이스 백엔드로 PostgreSQL만 지원합니다. 이 글을 작성할 당시 OpenNMS는 PostgreSQL v10.x-14.x를 지원합니다.

이제 Ubuntu 서버에 PostgreSQL 데이터베이스 v14를 설치하고 구성합니다. 기본적으로 Ubuntu 저장소는 여러 버전의 PostgreSQL을 제공하며, OpenNMS 배포를 위해 PostgreSQL 14.x를 설치합니다.

아래의 apt 명령을 실행하여 PostgreSQL 14를 설치합니다.

sudo apt install postgresql-14

확인을 위해 프롬프트가 표시되면 y를 입력하고 ENTER를 눌러 진행합니다.

install postgresql

PostgreSQL 패키지가 설치된 후, 다음 systemctl 명령을 실행하여 PostgreSQL 서비스가 실행 중이고 활성화되어 있는지 확인합니다.

sudo systemctl is-enabled postgresql  
sudo systemctl status postgresql

그럼 PostgreSQL 서비스가 활성화되어 부팅 시 자동으로 실행된다는 것을 확인할 수 있습니다. 그리고 PostgreSQL 서비스의 상태는 실행 중입니다.

verify postgresql

이제 PostgreSQL 데이터베이스가 실행 중이므로 OpenNMS를 위한 데이터베이스 및 사용자 생성을 진행합니다. 기본 PostgreSQL 사용자 ‘ postgres ‘의 비밀번호도 설정합니다.

아래 명령을 실행하여 새로운 PostgreSQL 사용자 ‘opennms’를 생성합니다. 비밀번호 프롬프트가 표시되면 ‘ opennms ‘ 사용자에 대한 새 비밀번호를 입력하고 반복합니다.

sudo -u postgres createuser -P opennms

다음으로, 아래 명령을 통해 소유자가 ‘ opennms ‘인 새로운 데이터베이스 ‘ opennms ‘를 생성합니다.

sudo -u postgres createdb -O opennms opennms

마지막으로, 아래 명령을 통해 ‘ postgres ‘ 사용자의 비밀번호를 변경합니다. 강력한 새 비밀번호로 변경해야 합니다.

sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '5up3rp4ssw0rd';"

이제 Java OpenJDK와 PostgreSQL이 설치되었으므로 OpenNMS를 설치할 준비가 되었습니다.

OpenNMS 설치 및 구성

Java OpenJDK와 PostgreSQL 데이터베이스를 설치했으며, OpenNMS를 위한 새로운 데이터베이스와 사용자를 생성하고 PostgreSQL ‘postgres’ 사용자의 기본 비밀번호를 구성했습니다. 이제 OpenNMS를 설치하고 구성합니다.

이 섹션에서는 공식 OpenNMS 저장소를 통해 OpenNMS를 설치합니다. 그런 다음 PostgreSQL 데이터베이스와 함께 OpenNMS를 설정하고, Java 환경을 설정하고, 데이터베이스 스키마를 초기화하고, 시스템 라이브러리를 감지하고, OpenNMS가 특권 포트에서 실행될 수 있도록 허용합니다.

먼저, 다음 명령을 실행하여 OpenNMS GPG 키와 저장소를 추가합니다.

sudo apt-key adv --fetch-keys https://debian.opennms.org/OPENNMS-GPG-KEY  
sudo add-apt-repository -s 'deb https://debian.opennms.org stable main'

프롬프트가 표시되면 ENTER를 눌러 OpenNMS 저장소를 추가합니다.

add repo

이제 아래의 apt 명령을 통해 OpenNMS 패키지를 추가 R 패키지와 함께 설치합니다.

sudo apt install opennms r-recommended

확인을 위해 프롬프트가 표시되면 y를 입력하고 ENTER를 눌러 진행합니다.

install opennms

다음으로, 아래의 apt 명령을 실행하여 OpenNMS 패키지를 자동 업데이트에서 비활성화합니다. OpenNMS는 새 버전으로 업그레이드할 때 수동 단계와 구성이 필요하므로, 업그레이드 중/후 오류를 방지하기 위해 수동으로 업그레이드해야 합니다.

sudo apt-mark hold libopennms-java \  
libopennmsdeps-java \  
opennms-common \  
opennms-db

disable auto update

이제 OpenNMS가 설치되었으므로 아래 명령을 통해 OpenNMS 설치 디렉토리 ‘ /usr/share/opennms ‘를 확인할 수 있습니다. 또한 OpenNMS와 관련된 모든 변경 사항은 ‘ /usr/share/opennms ‘ 디렉토리의 파일에 적용되어야 합니다.

sudo apt install tree -y  
sudo tree /usr/share/opennms -L 1

OpenNMS 패키지의 디렉토리 및 파일 목록을 볼 수 있습니다.

opennms list files

다음으로 OpenNMS의 데이터베이스 구성을 설정합니다. 다음 nano 편집기 명령을 사용하여 파일 ‘ /usr/share/opennms/etc/opennms-datasources.xml ‘을 엽니다. ‘ sudo -u opennms command.. ‘는 명령을 ‘ opennms ‘ 사용자로 실행하고 있음을 나타내며, 루트 사용자로 실행하고 있지 않음을 나타냅니다.

sudo -u opennms nano /usr/share/opennms/etc/opennms-datasources.xml

‘jdbc-data-source’의 ‘ opennms ‘는 ‘ opennms ‘ 데이터베이스 및 사용자 세부 정보를 사용해야 합니다. 그리고 ‘ opennms-admin ‘의 경우, ‘ postgres ‘ PostgreSQL 관리자 사용자를 사용해야 합니다.

  
  

작업이 끝나면 파일을 저장하고 편집기를 종료합니다.

이제 시스템에서 Java 환경을 감지하기 위해 다음 명령을 실행합니다. 이는 구성 파일 ‘/usr/share/opennms/etc/java.conf ‘에 영구적으로 저장됩니다.

sudo -u opennms /usr/share/opennms/bin/runjava -s

setup opennms

그 후, 아래 명령을 실행하여 데이터베이스를 초기화하고 OpenNMS를 위한 시스템 라이브러리를 감지합니다. OpenNMS에 대한 라이브러리는 파일 ‘ /opt/opennms/etc/libraries.properties ‘에 나열됩니다.

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

opennsm installer

다음으로, 아래 systemctl 명령을 통해 OpenNMS 서비스 파일을 편집합니다. 시스템의 기본 EDITOR를 가져와야 합니다.

sudo systemctl edit --full opennms.service

다음 구성을 ‘ [Service] ‘ 섹션에 추가합니다. 이는 OpenNMS 서비스가 특권 포트(포트 1-1024)에서 실행되고 바인딩될 수 있도록 허용합니다.

[Service]  
...  
AmbientCapabilities=CAP_NET_RAW CAP_NET_BIND_SERVICE

작업이 끝나면 파일을 저장하고 편집기를 종료합니다.

OpenNMS 서비스 파일을 수정한 후, 다음 명령을 실행하여 systemd 관리자를 다시 로드하고 OpenNMS 서비스를 재시작 및 활성화합니다.

sudo systemctl daemon-reload  
sudo systemctl restart opennms  
sudo systemctl enable opennms

이제 OpenNMS 서비스가 새로운 구성으로 실행되고 있으므로, 아래 systemctl 명령을 통해 OpenNMS 서비스를 확인합니다.

sudo systemctl is-enabled opennms  
sudo systemctl status opennms

출력 - OpenNMS 서비스가 활성화되어 있으며 시스템 부팅 시 자동으로 실행됩니다. 현재 OpenNMS 서비스가 실행 중입니다.

check opennms

이 시점에서 OpenNMS의 설치 및 구성이 완료되었습니다. 그러나 Nginx 리버스 프록시와 함께 OpenNMS를 실행할 것입니다. 계속 읽어 Nginx를 OpenNMS의 리버스 프록시로 설정하는 방법을 알아보세요.

OpenNMS를 위한 Nginx 리버스 프록시 설치

이제 OpenNMS가 기본 포트 ‘8980’에서 실행되고 있으므로, Nginx를 OpenNMS의 리버스 프록시로 설치하고 구성합니다.

다음 apt 명령을 실행하여 시스템에 Nginx 패키지를 설치합니다.

sudo apt install nginx

프롬프트가 표시되면 y를 입력하고 ENTER를 눌러 진행합니다. 설치가 시작됩니다.

install nginx

다음으로, 아래 systemctl 명령을 사용하여 Nginx 서비스를 확인합니다.

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

Nginx 서비스가 활성화되어 부팅 시 자동으로 실행된다는 것을 확인할 수 있습니다. 또한 Nginx 서비스는 설치가 완료된 후 자동으로 시작됩니다.

check nginx

Nginx가 설치된 후, 다음 nano 편집기 명령을 사용하여 새로운 Nginx 서버 블록 ‘ /etc/nginx/sites-available/opennms.conf ‘을 생성합니다.

sudo nano /etc/nginx/sites-available/opennms.conf

파일에 다음 구성을 추가합니다. 도메인 이름을 귀하의 도메인으로 변경해야 합니다.

server {  
    listen 80;  
    server_name opennms.howtoforge.local;  
    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://opennms.howtoforge.local/;  
        proxy_pass http://localhost:8980;  
    }  
  
}

작업이 끝나면 파일을 저장하고 편집기를 종료합니다.

다음으로, ‘ opennms.conf ‘ 서버 블록을 활성화하고 Nginx 구성을 확인하여 올바른 구성이 되었는지 확인합니다.

sudo ln -s /etc/nginx/sites-available/opennms.conf /etc/nginx/sites-enabled/  
sudo nginx -t

test successful - syntax ok ‘와 같은 출력 메시지가 표시되면 Nginx 구성이 올바르다는 의미입니다.

setuo nginx

이제 새로운 서버 블록 구성을 적용하기 위해 Nginx 서비스를 재시작합니다.

sudo systemctl restart nginx

이제 Nginx가 OpenNMS의 리버스 프록시로 실행되고 있으므로, UFW 방화벽 구성을 살펴보고 일부 서비스에 대한 포트를 열어야 합니다.

UFW 방화벽 설정

Nginx 리버스 프록시를 구성한 후, OpenNMS 서버에서 UFW를 설정합니다. UFW가 활성화된 상태에서 OpenNMS 모니터링 도구를 실행할 것이므로 OpenNMS에 사용할 일부 포트를 추가해야 합니다.

다음 apt 명령을 실행하여 시스템에 UFW를 설치합니다.

sudo apt install ufw -y

UFW가 설치된 후, 아래 명령을 실행하여 OpenSSH 서비스를 추가합니다. 그런 다음 UFW 서비스를 시작하고 활성화합니다.

sudo ufw allow OpenSSH  
sudo ufw enable

프롬프트가 표시되면 y를 입력하고 ENTER를 눌러 진행합니다. 이제 UFW가 실행 중이며 활성화되어 부팅 시 자동으로 실행됩니다.

setup ufw ssh

다음으로, Nginx 웹 서버로의 트래픽을 허용하는 새로운 규칙을 추가합니다.

sudo ufw allow "Nginx Full"

ufw nginx

그 후, 다음 nano 편집기 명령을 사용하여 파일 ‘ /etc/ufw/before.rules ‘을 엽니다.

sudo nano /etc/ufw/before.rules

filter‘ 섹션 전에 다음 구성을 추가합니다. 이는 NAT를 활성화하고 *62/udp에서 10162/udp로 트래픽을 리다이렉트/포워드합니다.

*nat  
:PREROUTING ACCEPT [0:0]  
-A PREROUTING -p udp --dport 162 -j REDIRECT --to-port 10162  
COMMIT

작업이 끝나면 파일을 저장하고 편집기를 종료합니다.

이제 62/udp에서 10162/udp로의 트래픽을 허용하는 새로운 규칙을 추가합니다.

sudo ufw allow in 162/udp  
sudo ufw allow in 10162/udp

변경 사항을 적용하기 위해 UFW를 다시 로드하고 아래 명령을 통해 UFW 상태를 확인합니다.

sudo ufw reload  
sudo ufw status

ceck ufw

지금까지 PostgreSQL 데이터베이스, Nginx 웹 서버와 같은 패키지 종속성과 함께 OpenNMS의 설치 및 구성을 완료했습니다. 마지막 단계로, 웹 브라우저를 통해 OpenNMS 설치에 접근하고 OpenNMS의 관리자 사용자를 설정합니다.

OpenNMS 모니터링 도구 접근

웹 브라우저를 열고 OpenNMS 설치의 도메인 이름(예: http://opennms.howtoforge.local)을 방문합니다. OpenNMS 모니터링 도구의 로그인 페이지가 표시되어야 합니다.

기본 사용자/비밀번호 ‘ admin/admin ‘을 입력하고 ‘ Log In ‘을 클릭합니다.

opennms login

그럼 OpenNMS 관리 대시보드가 표시됩니다.

opennms dashboard

기본 사용자/비밀번호 ‘ admin/admin ‘으로 OpenNMS에 로그인한 후, OpenNMS 설치의 기본 사용자 이름과 비밀번호를 변경합니다.

상단 메뉴 바에서 ‘ Admin ‘ 메뉴를 클릭하고 ‘Change Password ‘를 선택합니다.

이제 이전 비밀번호 ‘admin’을 입력하고 새로운 OpenNMS 비밀번호를 입력한 후 비밀번호를 반복합니다. 그런 다음 ‘ Submit ‘을 클릭하여 적용합니다.

schange password

이제 OpenNMS 구성이 완료되었습니다.

결론

이제 OpenNMS, 고도로 확장 가능하고 사용자 정의 가능한 모니터링 도구가 Ubuntu 22.04 서버에 설치되었습니다. PostgreSQL 데이터베이스 서버와 Nginx 웹 서버를 리버스 프록시로 구성했습니다. OpenNMS가 완전히 구성되었으므로 이제 SNMP 프로토콜을 통해 모니터링할 새 호스트를 추가하고, OpenNMS Minion을 통해 분산 모니터링을 설정하고, Sentinel을 통해 OpenNMS를 확장하고, Helm을 통해 대시보드를 사용자 정의할 수 있습니다.

대규모 배포에서 OpenNMS를 실행하려면 공식 문서를 참조하십시오.

Share: X/Twitter LinkedIn

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

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