모니터링 도구 · 7 min read · Nov 17, 2025

우분투 16.04 LTS에서 Nginx와 함께 LibreNMS 모니터링 도구 설정하는 방법

LibreNMS는 PHP/MYSQL/SNMP 기반의 오픈 소스 모니터링 도구입니다. 다양한 네트워크 하드웨어와 운영 체제를 지원하는 기능이 풍부한 네트워크 모니터링 시스템으로, FreeBSD, Cisco, Linux, HP 등을 포함합니다.

이 튜토리얼에서는 Nginx를 웹 서버로, MariaDB를 데이터베이스로, 우분투 16.04 서버를 주요 서버로 사용하여 오픈 소스 모니터링 도구인 ‘LibreNMS’를 설치하고 구성하는 방법을 보여드리겠습니다. 우분투 16.04 Xenial Xerus 서버에서 ‘LibreNMS’를 설치하고 구성하는 방법을 단계별로 안내합니다.

우리가 할 일

  1. 패키지 설치
  2. Nginx 웹 서버 설치
  3. PHP-FPM 설치 및 구성
  4. MariaDB 설치 및 구성
  5. LibreNMS 다운로드 및 구성
  6. LibreNMS 웹 설치 프로그램
  7. 최종 구성

전제 조건

  • 우분투 16.04 서버
  • 루트 권한

1단계 - 패키지 설치

LibreNMS 모니터링 도구를 설치하기 위한 첫 번째 단계는 서버에 필요한 패키지를 설치하는 것입니다. 서버에 연결하고 저장소를 업데이트합니다.

ssh root@hakase-labs-server  
sudo apt update

다음 명령어를 사용하여 우분투 저장소에서 LibreNMS에 필요한 모든 패키지를 설치합니다.

apt install fping imagemagick whois mtr-tiny nmap python-mysqldb snmpd  rrdtool git snmp graphviz

설치가 완료되면 다음 단계로 넘어갑니다.

2단계 - Nginx 웹 서버 설치

이 튜토리얼에서는 Nginx 웹 서버에서 LibreNMS를 실행할 것입니다. Nginx는 우분투 저장소에서 사용할 수 있는 강력한 웹 서버입니다.

다음과 같이 저장소에서 apt 명령어를 사용하여 nginx를 설치합니다.

apt install nginx

설치가 완료되면 서비스를 시작하고 시스템 부팅 시 자동으로 실행되도록 활성화합니다.

systemctl start nginx  
systemctl enable nginx

Nginx 웹 서버는 기본 포트 80에서 실행되고 있습니다. netstat 명령어를 사용하여 포트를 확인하고, curl 명령어를 사용하여 Nginx의 HTTP 상태 코드를 확인할 수 있습니다.

netstat -plntu | grep 80  
curl -I localhost

netstat로 포트 확인

Nginx 설치가 완료되었습니다.

3단계 - PHP-FPM 설치 및 구성

LibreNMS는 PHP 기반의 웹 애플리케이션 모니터링 도구입니다. 새로운 PHP 버전 7.0을 지원하며, 이 가이드에서는 이를 사용할 것입니다.

다음의 apt 명령어를 사용하여 PHP, PHP-FPM 및 LibreNMS 설치에 필요한 모든 확장/모듈을 설치합니다.

apt install php7.0-cli php7.0-mysql php7.0-gd php7.0-snmp php-pear php7.0-curl php7.0-fpm php7.0-mcrypt php7.0-json php-net-ipv4 php-net-ipv6

다음으로 php.ini 파일에 몇 가지 구성을 추가해야 합니다. php.ini 파일에서 기본 시간대를 정의하고 시스템에서 사용 중인 현재 시간대와 일치하는지 확인해야 합니다.

다음 명령어를 사용하여 시스템에서 현재 사용 중인 시간대를 확인합니다.

timedatectl

다음과 유사한 결과를 얻어야 합니다.

시간대 설정 확인

서버가 ‘Europe/Paris‘ 시간대를 사용하고 있는 것을 볼 수 있습니다.

이제 PHP 구성 디렉토리로 이동하여 cli 및 fpm 구성의 php.ini 파일을 편집합니다.

cd /etc/php/7.0/  
vim fpm/php.ini  
vim cli/php.ini

date.time‘ 줄의 주석을 제거하고 값을 시스템 시간대인 ‘Europe/Paris‘로 변경합니다.

date.time = Europe/Paris

cgi 구성을 아래와 같이 주석을 제거하고 값을 0으로 변경합니다.

cgi.fix_pathinfo = 0

저장하고 종료합니다.

모든 구성이 완료되었습니다. 이제 서비스를 시작하고 시스템 부팅 시 매번 실행되도록 활성화합니다.

systemctl start php7.0-fpm  
systemctl enable php7.0-fpm

PHP-FPM이 이제 우분투 서버에서 실행되고 있으며, sock 파일 아래에서 실행되고 있습니다. netstat 명령어로 확인합니다.

netstat -pl | grep php

PHP-FPM 프로세스 확인

4단계 - MariaDB 설치 및 구성

이 단계에서는 LibreNMS 데이터베이스를 위한 mariadb-server를 설치합니다. LibreNMS 설치를 위해 새로운 데이터베이스와 사용자를 설치하고 구성합니다.

다음의 apt 명령어를 사용하여 우분투 저장소에서 mariadb-server를 설치합니다.

apt install mariadb-server mariadb-client mariadb

설치가 완료되면 서비스를 시작하고 시스템 부팅 시 자동으로 실행되도록 활성화합니다.

systemctl start mysql  
systemctl enable mysql

데이터베이스 서버 mariadb가 이제 실행되고 있습니다. 다음으로 mariadb의 루트 비밀번호를 구성해야 합니다. 아래의 ‘mysql_secure_installation’ 명령어를 사용하여 루트 비밀번호를 구성할 수 있습니다.

mysql_secure_installation

새 루트 비밀번호에 대해 질문을 받게 되며, 비밀번호를 입력하고 ‘Enter’를 눌러 계속 진행합니다.

Set root password? [Y/n] Y  
Remove anonymous users? [Y/n] Y  
Disallow root login remotely? [Y/n] Y  
Remove test database and access to it? [Y/n] Y  
Reload privilege tables now? [Y/n] Y

mariadb의 루트 비밀번호가 구성되었습니다.

다음으로 LibreNMS를 위한 새로운 데이터베이스와 사용자를 생성해야 합니다. ‘librenms’라는 이름의 새로운 데이터베이스와 비밀번호 ‘hakase-labs123’를 가진 ‘librenms’라는 이름의 새로운 사용자를 생성합니다.

다음 명령어를 사용하여 mariadb 셸에 로그인합니다.

mysql -u root -p  
Type the ROOT Password:

아래의 mariadb 쿼리를 실행하여 새로운 데이터베이스와 사용자를 생성하고, 새로운 사용자에게 데이터베이스에 대한 모든 권한을 부여합니다.

CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;  
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'hakase-labs123';  
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';  
FLUSH PRIVILEGES;

LibreNMS를 위한 새로운 데이터베이스와 사용자가 생성되었습니다.

데이터베이스 추가

LibreNMS 설치를 위해 구성 파일에 몇 가지 구성을 추가해야 합니다. ‘/etc/mysql/‘ 디렉토리로 이동하여 mariadb 구성 파일을 편집합니다.

cd /etc/mysql/  
vim mariadb.conf.d/50-server.cnf

[mysqld]‘ 섹션 아래에 다음 구성을 붙여넣습니다.

innodb_file_per_table=1  
sql-mode=""  
lower_case_table_names=0

저장하고 종료합니다.

MariaDB 설정 변경

이제 서비스를 재시작하여 새로운 구성을 적용합니다.

systemctl restart mysql

mariadb 데이터베이스 구성이 완료되었습니다.

5단계 - LibreNMS 다운로드 및 구성

이 단계에서는 LibreNMS 설치를 위한 시스템을 구성합니다.

- 새로운 사용자 추가 및 LibreNMS 다운로드

‘librenms’라는 이름의 새로운 시스템 사용자를 생성하고, ‘/opt/librenms’를 사용자의 기본 홈 디렉토리로 정의하며, 새로운 ‘librenms’ 사용자를 www-data 그룹에 할당합니다.

다음 명령어를 실행하여 모든 작업을 수행합니다.

useradd librenms -d /opt/librenms -M -r  
usermod -a -G librenms www-data

이제 ‘/opt/‘ 디렉토리로 이동하여 git 명령어를 사용하여 LibreNMS 소스 코드를 다운로드합니다.

cd /opt/  
git clone https://github.com/librenms/librenms.git librenms

librenms 사용자 추가

다음으로 LibreNMS 로그 파일 및 rrd 파일을 위한 새로운 디렉토리를 생성합니다.

mkdir -p /opt/librenms/{logs,rrd}

‘rrd’ 디렉토리의 소유권 권한을 ‘775’로 변경하고, ‘librenms’ 디렉토리의 소유자를 ‘librenms’ 사용자 및 그룹으로 변경합니다.

chmod -R 775 /opt/librenms/rrd/  
chown -R librenms:librenms /opt/librenms/

새로운 ‘librenms’가 생성되었고, LibreNMS 소스 코드가 다운로드되었습니다.

- LibreNMS 가상 호스트 구성

‘nginx’ 구성 디렉토리로 이동하여 vim으로 ‘librenms’라는 새로운 가상 호스트 파일을 생성합니다.

cd /etc/nginx/  
vim sites-available/librenms

다음 LibreNMS 가상 호스트 구성을 붙여넣습니다.

server {  
    
    # 자신의 도메인 이름 추가  
    listen      80;  
    server_name librenms.irsyadf.me;  
    
    # LibreNMS 웹 루트 디렉토리  
    root        /opt/librenms/html;  
    index       index.php;  
    
    # LibreNMS 로그  
    access_log  /opt/librenms/logs/access_log;  
    error_log   /opt/librenms/logs/error_log;  
    
    # Nginx에서 Gzip 압축 활성화  
    charset utf-8;  
    gzip on;  
    gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;  
    
    location / {  
        try_files $uri $uri/ /index.php?$query_string;  
    }  
    
    location /api/v0 {  
        try_files $uri $uri/ /api_v0.php?$query_string;  
    }  
  
    # PHP-FPM이 모든 .php 파일 요청을 처리  
    location ~ \.php {  
        include fastcgi.conf;  
        fastcgi_split_path_info ^(.+\.php)(/.+)$;  
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;  
    }  
  
    location ~ /\.ht {  
        deny all;  
    }  
}

저장하고 종료합니다. 이제 가상 호스트를 활성화합니다.

ln -s /etc/nginx/sites-available/librenms /etc/nginx/sites-enabled/

nginx 구성을 테스트하고 오류가 없는지 확인합니다. 그런 다음 서비스를 재시작합니다.

ginx -t  
systemctl restart nginx

- UFW 방화벽 구성

방화벽에 새로운 포트를 추가합니다. 새로운 ssh, http, https 및 snmpd에서 사용하는 161 udp 유형의 포트를 ufw 방화벽에 추가합니다.

다음의 ufw 명령어를 실행합니다.

ufw allow ssh  
ufw allow http  
ufw allow https  
ufw allow 161/udp

UFW 방화벽 구성

아래와 같이 ufw enable 명령어로 ufw 방화벽을 시작합니다.

ufw enable

‘y’를 입력하고 ‘Enter’를 눌러 확인합니다. 시스템 부팅 시 매번 실행되도록 시작하고 활성화합니다.

방화벽 상태를 보려면 ‘ufw status’ 명령어를 실행합니다.

ufw status

방화벽 상태 - 활성 또는 비활성 - 및 방화벽에 추가된 포트 및 서비스 목록을 확인할 수 있습니다.

방화벽 구성 목록

6단계 - LibreNMS 웹 설치 프로그램

위의 모든 단계가 완료되면 웹 브라우저를 통해 LibreNMS를 설치해야 합니다. 웹 브라우저를 열고 주소 표시줄에 LibreNMS 도메인 이름 ‘librenms.hakase-labs.co’를 입력하고 Enter를 누릅니다.

- PHP 모듈 확인

설치 페이지로 리디렉션되며 PHP 모듈 지원 확인 결과가 표시됩니다. 모든 상태가 아래와 같이 녹색인지 확인합니다.

LibreNMS 웹 설치 프로그램

다음 단계‘를 클릭하여 계속 진행합니다.

- 데이터베이스 구성

모든 데이터베이스 정보를 자신의 DB로 채웁니다.

  • DB 사용자: librenms
  • DB 비밀번호: hakase-labs123
  • DB 이름: librenms

데이터베이스 세부정보 설정

그리고 ‘ 다음 단계 ‘를 클릭합니다.

- MySQL 데이터베이스 가져오기

설치 프로그램 스크립트가 샘플 데이터베이스를 데이터베이스에 가져오는 동안 기다립니다 - 이 과정에서 브라우저 탭을 닫지 마십시오.

2단계 완료

모든 데이터베이스가 가져와지면 ‘ 사용자 추가로 이동 ‘을 클릭합니다.

- 관리자 사용자 추가

여기에서 관리자 사용자, 이메일 및 비밀번호를 입력합니다.

관리자 사용자 추가

사용자 추가 ‘를 클릭합니다.

- LibreNMS 구성 생성

LibreNMS 구성 생성

구성 생성 ‘ 버튼을 클릭합니다.

그러면 아래와 유사한 구성 파일을 받게 됩니다.

구성을 파일로 저장

php 구성 스크립트를 복사하고 ssh 세션으로 돌아갑니다. ‘/opt/librenms’ 디렉토리로 이동하여 vim을 사용하여 ‘config.php’ 파일을 수동으로 생성합니다.

cd /etc/librenms/  
vim config.php

구성을 붙여넣고 파일의 소유권을 librenms 사용자 및 그룹으로 변경합니다.

chown librenms:librenms config.php

웹 브라우저로 돌아가서 ‘ 설치 완료 ‘ 버튼을 클릭합니다.

이제 LibreNMS 웹 설치 프로그램의 마지막 페이지로 이동합니다 - 아래를 참조하십시오.

설치 완료

7단계 - 최종 구성

웹 브라우저를 통한 설치가 완료된 후, 몇 가지 추가 단계를 수행해야 합니다.

- SNMP 구성

기본 구성 파일을 백업하고 샘플 구성을 ‘/etc/snmp/‘ 디렉토리에 복사합니다.

mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.aseli  
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf

새로운 구성을 vim으로 편집합니다.

vim /etc/snmp/snmpd.conf

‘RANDOMSTRINGGOESHERE’ 줄을 자신의 커뮤니티 이름 ‘hakaselabs’로 교체합니다.

com2sec readonly  default         hakaselabs

저장하고 종료합니다.

SNMP 구성 파일

다음으로 배포 감지 스크립트를 다운로드해야 합니다. curl을 사용하여 다운로드한 후, 스크립트를 실행 가능하게 만들고, 마지막으로 snmp 서비스를 재시작합니다.

curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro  
chmod +x /usr/bin/distro  
systemctl restart snmpd

- Crontab 및 Logrotate 구성

librenms 디렉토리로 이동하여 Crontab 및 Logrotate의 샘플 구성을 복사합니다.

cd /opt/librenms/

구성을 복사합니다.

cp librenms.nonroot.cron /etc/cron.d/librenms  
cp misc/librenms.logrotate /etc/logrotate.d/librenms

이제 cron 서비스를 재시작하고 logrotate 구성을 다시 로드합니다.

systemctl restart cron  
logrotate -f /etc/logrotate.conf

- 구성 검증

cron 스크립트가 시스템에서 실행될 때까지 잠시 기다립니다. 완료되면 ‘validate.php’ 스크립트로 검증합니다.

librenms 디렉토리로 이동하여 validate 스크립트를 실행합니다.

cd /opt/librenms/  
./validate.php

설치가 올바르면 아래와 같은 결과를 얻습니다.

LibreNMS 설정 검증

Nginx 웹 서버에서 우분투 16.04에 LibreNMS 설치가 완료되었습니다.

참고

Share: X/Twitter LinkedIn

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

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