메뉴 닫기

LibreNMS

LibreNMS

LibreNMS는 네트워크 장비의 상태를 자동으로 수집하고, 실시간으로 모니터링할 수 있도록 시각화해주는 오픈소스 네트워크 모니터링 시스템입니다.
직관적인 웹 인터페이스를 제공하며, 다양한 벤더의 장비를 효과적으로 관리할 수 있도록 확장성과 유연성을 갖추고 있습니다.
이번 글에서는 LibreNMS의 설치 과정과 기본 설정 방법을 차근차근 살펴보겠습니다.

설치 환경

–  OS : Ubuntu 22.04.5 LTS

–  Nginx 1.18.0 / PHP 8.1.2 / MariaDB : 10.6.18

 

패키지 설치

Nginx, PHP, MariaDB 등 LibreNMS를 구동하기 위한 패키지를 설치합니다.

apt install -y software-properties-common

add-apt-repository universe -y

apt update && sudo apt upgrade -y

apt install -y nginx mariadb-server php php-fpm php-cli php-mysql php-gd php-mbstring php-xml php-bcmath php-snmp php-curl php-zip php-redis php-imap php-gmp php-json snmp snmpd rrdtool git fping whois mtr-tiny nmap python3 python3-pymysql python3-dotenv python3-redis python3-pip acl

 

MariaDB 설정

mariadb  최초 설치 후 ‘mysql_secure_installation’ 명령어를 통해 root 패스워드 설정 및 기본 보안 설정을 진행한 후 root 계정으로 로그인 합니다.

mysql_secure_installation
mysql -u root -p

‘librenms’ DB를 생성하고 해당 DB에 대한 모든 권한을 가진 ‘librenms’ 사용자를 생성합니다.

CREATE DATABASE librenms;
GRANT ALL PRIVILEGES ON librenms.* TO ‘librenms’@’localhost’ IDENTIFIED BY ‘패스워드‘;
FLUSH PRIVILEGES;
EXIT;

 

LibreNMS 사용자 생성 & 설치

시스템 계정으로 ‘librenms’를 생성하고 git을 통해 librenms 배포 데이터를 다운로드합니다.

useradd -r -M -d /opt/librenms librenms
usermod -a -G librenms www-data
git clone -b 23.11.0 https://github.com/librenms/librenms.git /opt/librenms
chown -R librenms:librenms /opt/librenms
chmod 775 /opt/librenms
chmod -R 775 /opt/librenms/logs

 

Nginx 설정

LibreNMS 웹 UI에 접속할 수 있도록 가상 호스트를 설정합니다.

vi /etc/nginx/sites-available/librenms     # 파일 생성 후 아래 내용 삽입

server {
listen 80;
server_name 서버IP_또는_도메인;
root /opt/librenms/html;

index index.php index.html index.htm;
client_max_body_size 100M;

location / {
try_files $uri $uri/ /index.php?$query_string;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}

location ~ /\.ht {
deny all;

관련 설정이 완료되면 Nginx를 재시작합니다.

ln -s /etc/nginx/sites-available/librenms /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx

 

Cron 설정

등록된 호스트 장치 상태 자동 수집, 오래된 로그 자동 삭제 등을 위한 cron 설정을 합니다.

vi /etc/cron.d/librenms     # 새 cron 파일 생성 후 아래 내용 삽입

 

# LibreNMS Cronjob Example

# Poller (Every 5 minutes)
*/5 * * * * librenms /opt/librenms/cronic /opt/librenms/poller-wrapper.py 16

# Discovery (Every 6 hours)
33 0,6,12,18 * * * librenms /opt/librenms/discovery.php -h all >> /opt/librenms/logs/discovery.log 2>&1

# Cleanup (Every day)
45 0 * * * librenms /opt/librenms/daily.sh >> /opt/librenms/logs/daily.log 2>&1

이후 ‘systemctl restart cron’으로 데몬을 재시작합니다.

 

Web Installer 실행

웹 브라우저를 통해 ‘http://서버IP_또는_도메인’으로 접근합니다.

500 Error가 발생하며 정상적인 설치 화면이 나오지 않아 /opt/librenms/ 디렉터리에 위치한 validate.php 파일을 이용하여 설치환경을 점검하였습니다.

sudo -u librenms php /opt/librenms/validate.php

위와 같은 에러가 발생 하였고 메시지에 출력된 명령어를 사용하여 오류를 해결하였습니다.

웹 UI가 정상적으로 출력되면 이전에 생성했던 DB 정보를 기입한 뒤 ‘Check Credentials’를 클릭합니다.

(Host, Port, User, Database Name은 기본적으로 입력되어 있고 ‘librenms’@’localhost’ 계정에 대한 패스워드를 입력해야 합니다.)

웹에서 사용할 관리자 계정을 생성합니다.

아래 창이 나오면서 설치가 완료됩니다.

  

LibreNMS 둘러보기

[호스트 등록]

호스트 IP와 Community String을 입력한 후 ‘Add Device’를 클릭하면, 해당 호스트에 대해 SNMP와 ICMP 통신을 확인한 후 등록이 처리됩니다.

[호스트 목록]

[호스트 정보 및 자원 사용량 그래프]

[포트 정보 확인]

[이벤트 로그 수집]

 

이처럼 LibreNMS는 네트워크 환경에서 연결된 장치들의 상태를 직관적으로 확인할 수 있는 유용한 모니터링 도구입니다. 이번 글을 통해 LibreNMS의 기본적인 개념과 설치 과정을 이해하는 데 도움이 되었길 바랍니다.

읽어주셔서 감사합니다.

Libre NMS Libre NMS Libre NMS  

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x