모니터링 도구 · 8 min read · Nov 03, 2025

CentOS 7에서 Nginx로 LibreNMS 모니터링 도구 설치하는 방법

LibreNMS는 PHP/MYSQL/SNMP 기반의 오픈 소스 모니터링 도구입니다. 이는 FreeBSD, Cisco, Linux, HP 등 다양한 네트워크 하드웨어 및 운영 체제를 지원하는 완전한 기능을 갖춘 네트워크 모니터링 시스템입니다.

이 튜토리얼에서는 Nginx를 웹 서버로, MariaDB를 데이터베이스로 사용하여 LibreNMS를 설치하고 구성하는 방법을 보여드리겠습니다. CentOS 7 서버를 주요 서버로 사용할 것입니다.

우리가 할 일

  1. 필요한 패키지 설치
  2. Nginx 웹 서버 설치
  3. PHP-FPM 설치 및 구성
  4. MariaDB 설치 및 구성
  5. LibreNMS 다운로드 및 구성
  6. LibreNMS 웹 기반 설치
  7. 최종 구성

전제 조건

  • CentOS 7 서버
  • 루트 권한

1단계 - 필요한 패키지 설치

서버에 LibreNMS를 설치하기 전에 ImageMagick, rrdtool, SNMP, git 등을 포함한 몇 가지 패키지를 설치해야 합니다. 다음 명령어를 사용하면 됩니다:

yum -y install net-snmp ImageMagick jwhois nmap mtr rrdtool MySQL-python net-snmp-utils cronie fping git

모든 것이 잘 진행되면 다음 단계로 진행합니다.

2단계 - Nginx 웹 서버 설치

이 단계에서는 Nginx 웹 서버 설치를 위한 epel-repository를 설치합니다. EPEL(Enterprise Linux를 위한 추가 패키지) 저장소는 CentOS 7을 포함한 rpm 기반 OS를 위한 추가 저장소입니다.

아래의 yum 명령어를 사용하여 EPEL 저장소를 설치합니다.

yum -y install epel-release

이제 Nginx를 설치합니다.

yum -y install nginx

Nginx 설치 후, 서비스를 시작하고 부팅 시 자동으로 실행되도록 다음 systemctl 명령어를 사용합니다.

systemctl start nginx  
systemctl enable nginx

따라서 EPEL 저장소에서 시스템에 Nginx 웹 서버가 설치되었습니다.

Nginx 웹 서버 시작 및 확인

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

진행하기 전에 공유할 가치가 있는 정보가 있습니다:

LibreNMS 설치를 위해 PHP-FPM 버전 7을 사용할 것입니다. CentOS 7을 위한 모든 PHP 7 패키지는 서드파티 저장소에서 사용할 수 있으며, 우리는 ‘webtatic’ 저장소의 PHP 7 버전을 사용할 것입니다.

그럼 시작해 보겠습니다.

다음 rpm 명령어를 사용하여 PHP 7 webtatic 저장소를 시스템에 추가합니다.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

yum을 사용하여 wetatic 저장소에서 PHP 7 및 필요한 모든 확장을 설치합니다.

yum -y install php70w php70w-cli php70w-gd php70w-mysql php70w-snmp php70w-pear php70w-curl php70w-common php70w-fpm php70w-mcrypt

이제 PEAR 저장소를 업데이트하고 pear 명령어를 사용하여 몇 가지 PEAR(PHP Extension and Application Repository) 확장을 설치합니다.

pear channel-update pear.php.net  
pear install Net_IPv4-1.3.4  
pear install Net_IPv6-1.2.2b2

일부 pear 패키지 설치

이렇게 하면 필요한 모든 PHP 패키지를 설치할 수 있습니다.

다음으로, LibreNMS 설치를 위해 PHP-FPM을 구성합니다. php.ini 파일에서 기본 시간대를 정의하고, 시간대가 시스템에서 사용되는 현재 시간대와 일치하는지 확인해야 합니다. 다음 명령어를 통해 시스템에서 사용되는 현재 시간대를 확인할 수 있습니다.

timedatectl

다음 스크린샷은 위 명령어의 실행을 보여줍니다:

timedatectl 명령어 사용

따라서 우리는 ‘Europe/Paris‘ 시간대를 사용하고 있습니다.

이제 vim을 사용하여 ‘/etc/php.ini’ 파일을 편집합니다.

vim /etc/php.ini

다음으로, ‘date.timezone’ 줄의 주석을 제거하고 서버 시간대 ‘Europe/Paris’ 값을 부여합니다.

data.timezone = Europe/Paris

마찬가지로 cgi 줄의 주석을 제거하고 값을 ‘0‘으로 변경합니다.

cgi.fix_pathinfo=0

그게 전부입니다. 이제 변경 사항을 저장하고 편집기를 종료합니다.

다음으로, PHP-FPM이 시스템에서 어떻게 실행되는지 정의해야 합니다. 우리의 경우, PHP-FPM은 서버 포트 대신 ‘sock’ 파일 아래에서 실행됩니다.

vim을 사용하여 ‘www.conf’ 파일을 편집하여 PHP-FPM을 구성합니다.

vim /etc/php-fpm.d/www.conf

‘listen’ 포트 줄을 아래와 같이 sock 파일로 변경합니다.

listen = /var/run/php-fpm/php7.0-fpm.sock

sock 파일의 소유자, 그룹 및 권한에 대한 ‘listen’ 줄의 주석을 제거합니다.

listen.owner = nginx  
listen.group = nginx  
listen.mode = 0660

그게 전부입니다. 이제 변경 사항을 저장하고 편집기를 종료합니다.

따라서 PHP-FPM 구성은 이제 완료되었습니다. 다음 명령어를 사용하여 서비스를 시작하고 부팅 시 자동으로 실행되도록 설정합니다.

systemctl start php-fpm  
systemctl enable php-fpm

이제 PHP-FPM이 sock 파일 아래에서 실행되고 있습니다. netstat 명령어로 확인할 수 있습니다.

netstat -pl | grep php

‘/var/run/php-fpm/php7.0-fpm.sock’ 파일의 결과가 있는지 확인하십시오.

4단계 - MariaDB 설치 및 구성

LibreNMS는 모든 데이터를 저장하기 위해 MySQL 데이터베이스를 사용합니다. 이 가이드에서는 MariaDB 데이터베이스 버전을 사용할 것입니다. 이는 저장소에서 사용할 수 있으며, LibreNMS 설치를 위한 데이터베이스 및 사용자 추가를 포함하여 몇 가지 구성을 설치하고 추가해야 합니다.

아래의 yum 명령어를 사용하여 MariaDB를 설치합니다.

yum -y install mariadb mariadb-server

MariaDB 서비스를 시작하고 부팅 시 자동으로 시작되도록 설정합니다.

systemctl start mariadb  
systemctl enable mariadb

MariaDB 데이터베이스 설정

이제 아래의 ‘mysql_secure_installation’ 명령어를 사용하여 MariaDB 루트 비밀번호를 구성합니다.

mysql_secure_installation

새 MariaDB 데이터베이스의 루트 비밀번호와 몇 가지 다른 질문에 대해 질문을 받게 됩니다.

‘Y’를 입력하고 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를 위한 새로운 데이터베이스와 사용자를 생성해야 합니다. mysql 클라이언트를 사용하여 mysql 셸 명령줄에 로그인하고 새 비밀번호로 로그인합니다.

mysql -u root -p

librenms‘라는 이름의 새로운 데이터베이스와 비밀번호가 ‘hakase-labs123‘인 ‘ librenms ‘라는 새로운 사용자를 생성합니다.

아래의 MySQL 쿼리를 사용하여 모두 생성합니다.

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 MySQL 사용자 추가

이제 my.cnf 파일을 편집하여 새로운 mysql 구성을 추가해야 합니다. vim을 사용하여 ‘/etc/my.cnf’ 파일을 편집합니다.

vim /etc/my.cnf

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

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

vim을 저장하고 종료한 후, mariadb 서버를 재시작합니다.

systemctl restart mariadb

MariaDB 설정 구성

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

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

- 사용자 추가 및 LibreNMS 소스 코드 다운로드

‘librenms’라는 이름의 새로운 시스템 사용자를 생성한 다음, 사용자의 홈 디렉토리를 ‘/opt/librenms’ 디렉토리로 정의하고, 마지막으로 ‘librenms’ 사용자를 ‘nginx’ 그룹에 추가합니다.

useradd librenms -d /opt/librenms -M -r  
usermod -a -G librenms nginx

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

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

LibreNMS 설치

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

mkdir -p /opt/librenms/logs/  
mkdir -p /opt/librenms/rrd/  
chmod 775 /opt/librenms/rrd/

이제 ‘/opt/librenms’ 디렉토리 아래의 모든 파일과 디렉토리의 소유권을 ‘librenms’ 사용자 및 그룹으로 변경합니다.

chown -R librenms:librenms /opt/librenms/

- LibreNMS 가상 호스트 구성

LibreNMS는 웹 기반 애플리케이션이며, 우리는 이를 호스팅하기 위해 Nginx 웹 서버를 사용하고 있습니다.

Nginx ‘conf.d’ 디렉토리 아래에 ‘librenms.conf’라는 새로운 가상 호스트 파일을 생성합니다.

vim /etc/nginx/conf.d/librenms.conf

아래 구성을 붙여넣습니다.

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:/var/run/php-fpm/php7.0-fpm.sock;  
     }  
  
     location ~ /\.ht {  
         deny all;  
     }  
 }

그게 전부입니다. 이제 vim을 저장하고 종료합니다.

Nginx 구성을 테스트하고 오류가 없는지 확인한 후, 웹 서버를 재시작합니다.

ginx -t  
systemctl restart nginx

- Firewalld 구성

시스템에 firewalld 패키지가 설치되어 있는지 확인하십시오. 그렇지 않은 경우, 다음 yum 명령어를 사용하여 firewalld를 설치할 수 있습니다.

yum -y install firewalld

다음 systemctl 명령어를 사용하여 firewalld를 시작하고 부팅 시 자동으로 실행되도록 설정합니다.

systemctl start firewalld  
systemctl enable firewalld

방화벽 구성

firewall-cmd 명령어를 사용하여 새로운 HTTP, HTTPS 및 SNMP 포트 161/udp를 엽니다.

firebase-cmd --add-service=http --permanent  
firebase-cmd --add-service=https --permanent  
firebase-cmd --add-port=161/udp --permanent

firewalld를 다시 로드하여 구성을 적용하고 모든 서비스를 확인합니다.

firebase-cmd --reload  
firebase-cmd --list-all

HTTP 및 HTTPS 서비스가 목록에 있는지 확인하십시오.

6단계 - LibreNMS 웹 기반 설치

웹 브라우저를 열고 주소 표시줄에 LibreNMS URL을 입력합니다.

http://librenms.hakase-labs.me/

설치 페이지 ‘install.php’로 리디렉션됩니다.

- PHP 모듈 지원 확인

필요한 모든 PHP 모듈과 확장이 시스템에 설치되어 있는지 확인하십시오.

LibreNMS 웹 기반 설치 프로그램

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

- 데이터베이스 구성

아래 데이터베이스 세부정보를 입력합니다:

  1. DB 사용자: ‘librenms
  2. DB 이름: ‘librenms
  3. DB 비밀번호: ‘hakase-labs123

데이터베이스 구성

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

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

설치 페이지를 닫지 마십시오. 데이터베이스 가져오기가 표시됩니다. 오류가 없는지 확인하십시오.

MySQL 데이터베이스 스키마 가져오기

프로세스가 완료되면 ‘사용자 추가로 이동’을 클릭하여 새 관리자 사용자를 추가합니다.

- 관리자 사용자 추가

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

관리자 사용자 추가

‘사용자 추가‘를 클릭하여 설치를 계속 진행합니다.

- 구성 파일 생성

구성 파일 생성

‘구성 생성’ 버튼을 클릭하면 다음과 유사한 페이지가 표시됩니다.

구성 파일 설정

상자에 있는 PHP 코드를 복사하고 ‘/opt/librenms/‘ 디렉토리에 새로운 ‘config.php’ 파일을 생성합니다.

cd /opt/librenms/  
vim config.php

방금 복사한 코드를 새 파일에 붙여넣고 저장한 후 편집기를 종료합니다. 이제 config.php 파일의 소유권을 ‘librenms’ 사용자 및 그룹으로 변경합니다.

chown librenms:librenms config.php

셸에서 구성 파일 저장

브라우저로 돌아가서 페이지 하단에 있는 ‘설치 완료’ 버튼을 클릭합니다. 다음과 유사한 환영 메시지가 표시됩니다.

LibreNMS 모니터링 도구가 설치되었습니다

이 단계에서 웹 기반 설치가 완료되었습니다. 터미널/셸로 돌아가서 추가 구성을 추가합니다.

7단계 - 최종 구성

이 단계에서는 LibreNMS 설치를 위한 몇 가지 구성을 추가합니다.

- fping 명령 정의

LibreNMS 구성 파일을 편집하여 ‘fping’ 명령을 정의합니다. ‘/opt/librenms/‘ 디렉토리로 이동하여 vim 편집기를 사용하여 config.php 파일을 편집합니다.

cd /opt/librenms/  
vim config.php

파일의 맨 아래에 다음 줄을 추가합니다.

$config['fping'] = "/usr/sbin/fping";

변경 사항을 저장하고 편집기를 종료합니다.

- SNMP 구성

‘/etc/snmp/‘ 디렉토리의 기본 snmp.conf 파일을 백업하고 librenms 디렉토리에서 새로운 파일을 복사합니다.

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

새 구성을 편집합니다.

vim /etc/snmp/snmpd.conf

‘RANDOMSTRINGGOESHERE’라는 텍스트를 아래와 같이 자신의 커뮤니티 이름으로 변경합니다.

com2sec readonly  default         hakaselabs

그게 전부입니다. vim을 저장하고 종료합니다.

무작위 문자열 설정

다음으로, 추가한 운영 체제를 감지하기 위해 librenms-agent 스크립트를 다운로드합니다. Linux OS를 추가하면 스크립트가 특정 Linux 배포판을 감지합니다.

curl을 사용하여 스크립트를 다운로드하고 실행 가능하게 만듭니다.

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

이제 다음 systemctl 명령어를 사용하여 SNMP 서비스를 재시작합니다.

systemctl restart snmpd

- LibreNMS를 위한 Logrotate 구성

LibreNMS는 logrotate 구성에 대한 구성을 제공하며, 이는 ‘/opt/librenms/misc’ 디렉토리에 있습니다.

샘플 구성을 ‘/etc/logrotate.d’ 디렉토리로 복사합니다.

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

- LibreNMS cronjob 구성

‘opt/librenms’ 디렉토리로 이동하여 crontab 스크립트 ‘librenms.nonroot.cron’ 파일을 ‘cron.d’ 디렉토리로 복사합니다.

cd /opt/librenms/  
cp librenms.nonroot.cron /etc/cron.d/librenms

스크립트가 자동으로 실행되도록 몇 분 기다립니다.

- LibreNMS 구성 검증

설치를 검증하기 위해 validate.php 스크립트를 사용합니다. ‘/opt/librenms/‘ 디렉토리로 이동하여 스크립트를 실행합니다.

cd /opt/librenms/  
./validate.php

오류가 발생하지 않으면 다음과 유사한 출력을 볼 수 있습니다:

설정 검증

따라서 이것으로 CentOS 7에서 Nginx 웹 서버와 함께 LibreNMS 설치가 완료되었습니다.

참고

Share: X/Twitter LinkedIn

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

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