웹사이트 검색

Ubuntu 20.04 LTS에서 OpenNMS 네트워크 모니터링 솔루션을 설정하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • 우분투 20.04(Focal Fossa)
  • 우분투 16.04(Xenial Xerus)

이 페이지에서

  1. 전제 조건
  2. 시작하기\n
  3. Docker 및 Docker Compose 설치
  4. OpenNMS 설치
  5. OpenNMS 웹 인터페이스 액세스
  6. 결론

OpenNMS는 중앙 위치에서 무제한 장치를 모니터링하는 데 사용되는 무료 오픈 소스 엔터프라이즈급 네트워크 관리 시스템입니다. 네트워크의 모든 장치를 검색하여 작동하고 서비스를 자동으로 모니터링합니다. Java를 기반으로 하며 SNMP 및 JMX를 사용하여 원격 시스템에서 중요한 서비스를 모니터링하도록 설계되었습니다. Windows, Linux/Unix, Mac 및 Solaris를 포함한 모든 주요 운영 체제에 설치할 수 있습니다. 프로비저닝, 서비스 모니터링, 이벤트 관리, 차트 지원 및 성능 측정을 포함한 다양한 기능을 제공합니다.

현재 OpenNMS는 Horizon과 Meridian의 두 가지 버전으로 제공됩니다. Horizon은 IT 환경을 모니터링하고 관리하도록 설계되었으며 Meridian은 안정성과 장기적인 지원을 원하는 기업을 위해 설계되었습니다.

이 튜토리얼에서는 Ubuntu 20.04에서 Docker와 함께 OpenNMS를 설치하는 방법을 설명합니다.

전제 조건

  • Ubuntu 20.04를 실행하는 서버.\n
  • 서버에 루트 암호가 설정되어 있습니다.\n

시작하기

시작하기 전에 항상 시스템 패키지를 최신 버전으로 업데이트하는 것이 좋습니다. 다음 명령으로 업데이트할 수 있습니다.

apt-get update -y
apt-get upgrade -y

모든 패키지를 업데이트한 후 다음 명령을 사용하여 다른 필수 종속성을 설치합니다.

apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y

모든 종속성이 설치되면 다음 단계로 진행할 수 있습니다.

Docker 및 Docker Compose 설치

기본적으로 Docker의 최신 버전은 Ubuntu 20.04 기본 리포지토리에서 사용할 수 없습니다. 따라서 Dockers 공식 저장소에서 Docker를 설치하는 것이 좋습니다.

먼저 다음 명령을 사용하여 GPT 키를 다운로드하고 추가합니다.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

다음으로 다음 명령을 사용하여 시스템에 Docker 리포지토리를 추가합니다.

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

리포지토리가 추가되면 다음 명령을 실행하여 Docker 및 Docker Compose를 설치합니다.

apt-get install docker-ce docker-ce-cli containerd.io docker-compose -y

둘 다 설치되면 다음 명령을 사용하여 Docker의 상태를 확인합니다.

systemctl status docker

다음과 같은 결과가 표시되어야 합니다.

? docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-07-04 04:43:52 UTC; 19s ago
TriggeredBy: ? docker.socket
       Docs: https://docs.docker.com
   Main PID: 38468 (dockerd)
      Tasks: 10
     Memory: 36.3M
     CGroup: /system.slice/docker.service
             ??38468 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Docker 버전을 확인하려면 다음 명령을 실행합니다.

docker -v

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

Docker version 19.03.12, build 48a66213fe

Docker Compose 버전을 확인하려면 다음 명령을 실행합니다.

docker-compose -v

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

docker-compose version 1.25.0, build unknown

OpenNMS 설치

다음으로 다음 명령을 사용하여 OpenNMS용 프로젝트 디렉토리를 생성합니다.

mkdir opennms

다음으로 디렉토리를 opennms로 변경하고 새로운 docker-compose.yml 파일을 생성하여 OpenNMS를 설치합니다.

cd opennms
nano docker-compose.yml

다음 줄을 추가합니다.

version: '3'

volumes:
  data-postgres: {}
  data-opennms: {}

services:
  database:
    image: postgres:12
    container_name: database
    environment:
      - TZ=Europe/Berlin
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
    volumes:
      - data-postgres:/var/lib/postgresql/data
    healthcheck:
      test: [ "CMD-SHELL", "pg_isready -U postgres" ]
      interval: 10s
      timeout: 30s
      retries: 3

  horizon:
    image: opennms/horizon:26.1.1
    container_name: horizon
    environment:
      - TZ=Europe/Berlin
      - POSTGRES_HOST=database
      - POSTGRES_PORT=5432
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - OPENNMS_DBNAME=opennms
      - OPENNMS_DBUSER=opennms
      - OPENNMS_DBPASS=opennms
    volumes:
      - data-opennms:/opt/opennms/share/rrd
      - ./overlay:/opt/opennms-overlay
    command: ["-s"]
    ports:
      - "8980:8980/tcp"
      - "8101:8101/tcp"
      - "61616:61616/tcp"
    healthcheck:
      test: [ "CMD", "curl", "-f", "-I", "http://localhost:8980/opennms/login.jsp" ]
      interval: 1m
      timeout: 5s
      retries: 3

완료되면 파일을 저장하고 닫습니다. 그런 다음 다음 명령을 사용하여 OpenNMS용 컨테이너를 다운로드하고 빌드합니다.

docker-compose up -d

OpenNMS 컨테이너가 다운로드되면 다음 명령을 사용하여 실행 중인 컨테이너를 확인할 수 있습니다.

docker ps -a

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

CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS                            PORTS                                                                                           NAMES
1537b3a43c92        postgres:12              "docker-entrypoint.s…"   9 seconds ago       Up 6 seconds (health: starting)   5432/tcp                                                                                        database
7e00f3877d13        opennms/horizon:26.1.1   "/entrypoint.sh -s"      9 seconds ago       Up 6 seconds (health: starting)   0.0.0.0:8101->8101/tcp, 1162/udp, 0.0.0.0:8980->8980/tcp, 10514/udp, 0.0.0.0:61616->61616/tcp   horizon

OpenNMS 웹 인터페이스에 액세스

이 시점에서 OpenNMS는 실행 중이며 포트 8980에서 수신 중입니다. URL http://your-server-ip:8980을 사용하여 액세스할 수 있습니다. 아래와 같이 OpenNMS 로그인 페이지로 리디렉션됩니다.

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

이제 오른쪽 창의 + 아이콘을 클릭하여 모니터링할 새 서버 노드를 추가합니다. 다음 화면이 표시됩니다.

이름을 입력하고 확인 버튼을 클릭합니다. 다음 화면이 표시됩니다.

이제 모니터링하려는 서버의 IP 주소, 커뮤니티 문자열, 서버의 사용자 이름 및 비밀번호, 액세스 방법을 제공하고 제공 버튼을 클릭하십시오. 프로비저닝이 성공하면 다음 화면이 표시됩니다.

확인 버튼을 클릭하여 계속한 다음 정보 => 노드로 이동하면 다음 화면에 클라이언트1 노드 상태, 알림 및 이벤트가 표시됩니다.

결론

축하합니다! Ubuntu 20.04 서버에 OpenNMS를 성공적으로 설치했습니다. 이제 OpenNMS에 더 많은 장치를 추가하고 웹 브라우저를 통해 모니터링을 시작할 수 있습니다. 궁금한 점이 있으면 언제든지 문의해 주세요.