Debian 11에 OpenNMS Horizon 네트워크 모니터링 시스템을 설치하는 방법
이 페이지에서
- 전제 조건
- Debian 11에 Java 설치
- Debian 11에 OpenNMS 설치
- PostgreSQL에서 데이터베이스 생성
- OpenNMS 구성
- OpenNMS 서비스 시작
- Nginx를 OpenNMS용 리버스 프록시로 구성\n
- OpenNMS 대시보드 액세스
- 결론
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.VersionNov 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에 추가하고 웹 브라우저에서 모니터링을 시작할 수 있습니다. 궁금한 점이 있으면 언제든지 문의해 주세요.