모니터링 솔루션 · 10 min read · Nov 16, 2025
Rocky Linux에 LibreNMS 모니터링 솔루션 설치하는 방법

LibreNMS는 SNMP, ARP, OSPF 및 BGP를 포함한 여러 프로토콜로 자동 검색을 지원하는 모니터링 도구입니다. 운영 체제를 모니터링하려면 Linux, Windows 및 BSD를 포함한 대부분의 OS에서 사용할 수 있는 SNMP 프로토콜을 사용할 수 있습니다.
SNMP 프로토콜에는 v1 및 v2가 있으며, 이는 커뮤니티 비밀번호로만 보호되며, 인증 및 암호화를 위한 비밀번호를 지원하는 프로토콜 v3가 있습니다. 프로덕션 환경에서는 v2 및 v1보다 더 안전한 SNMP 프로토콜 v3를 사용하는 것이 좋습니다.
이 가이드에서는 Rocky Linux 서버에 LibreNMS 모니터링 도구를 설치하는 방법을 배웁니다. 이 가이드에는 LEMP 스택(Nginx, MariaDB 및 PHP-FPM) 설치와 SNMP 서비스의 기본 구성도 포함되어 있습니다.
끝까지 진행하면 프로덕션 준비가 완료된 모니터링 솔루션인 LibreNMS를 갖게 되며, 모니터링할 새로운 호스트, 서버 또는 장치를 추가할 수 있습니다.
전제 조건
이 가이드를 완료하려면 다음 요구 사항이 필요합니다:
- Rocky Linux 서버 - 이 예제에서는 Rocky Linux 8을 사용합니다.
- sudo 루트/관리자 권한이 있는 비루트 사용자.
- 로컬 배포를 위한 로컬 도메인 이름.
리포지토리 설정
패키지를 설치하기 전에 Rocky Linux 시스템에서 리포지토리를 설정합니다. EPEL 리포지토리(Enterprise Linux용 추가 패키지)와 PHP Remi 리포지토리를 추가해야 합니다.
다음 dnf 명령을 실행하여 EPEL 리포지토리를 시스템에 추가합니다.
sudo dnf install epel-release확인 메시지가 표시되면 Y를 입력하고 ENTER를 눌러 진행합니다.

다음으로, 다음 dnf 명령을 실행하여 PHP Remi 리포지토리를 추가합니다. 이 리포지토리는 LibreNMS 설치에 필요한 최신 PHP 8.1을 포함하여 여러 버전의 PHP를 제공합니다.
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm이제 Y를 입력하고 ENTER를 눌러 진행합니다.

EPEL 및 Remi 리포지토리가 추가된 후, 아래의 dnf 명령을 사용하여 확인합니다.
sudo dnf repolistEPEL 및 Remi 리포지토리가 추가되어 Rocky Linux 시스템에서 사용 가능해야 합니다.
패키지 종속성 설치
EPEL 및 Remi 리포지토리를 추가한 후, 이제 LibreNMS의 패키지 종속성을 설치하기 시작합니다. 여기에는 LEMP 스택, SNMP 패키지 및 일부 기본 Python 종속성이 포함됩니다.
설치를 시작하기 전에 다음 명령을 실행하여 PHP 리포지토리 모듈 ‘remi-8.1‘을 활성화합니다. 최신 버전의 LibreNMS는 최소한 PHP 8이 필요합니다.
sudo dnf reset php
sudo dnf module enable php:remi-8.1Y를 입력하여 PHP Remi 8.1 리포지토리를 확인하고 활성화합니다.

다음으로, 다음 dnf 명령을 실행하여 LibreNMS의 패키지 종속성을 설치합니다. 설치 확인 메시지가 표시되면 y를 입력하고 ENTER를 눌러 진행하며, 설치가 시작됩니다.
sudo dnf install bash-completion cronie fping git ImageMagick mariadb-server mtr net-snmp net-snmp-utils nginx nmap php-fpm php-cli php-common php-curl php-gd php-gmp php-json php-mbstring php-process php-snmp php-xml php-zip php-mysqlnd python3 python3-PyMySQL python3-devel python3-redis python3-memcached python3-pip python3-systemd rrdtool unzip
종속성이 설치된 후, 다음 명령을 실행하여 Nginx, MariaDB, PHP-FPM 및 snmpd와 같은 일부 서비스를 시작하고 활성화합니다.
sudo systemctl enable nginx php-fpm mariadb snmpd
sudo systemctl start nginx php-fpm mariadb snmpd이 시점에서 Nginx, MariaDB, PHP-FPM 및 snmpd와 같은 일부 기본 서비스가 시스템 부팅 시 자동으로 시작됩니다. 그리고 모든 서비스가 실행 중입니다.

Firewalld 설정
이 예제에서는 firewalld가 활성화된 Rocky Linux를 사용하고 있습니다. 이제 firewalld에 HTTP 및 HTTPS 프로토콜을 추가합니다.
다음 firewall-cmd 명령을 실행하여 firewalld에 HTTP 및 HTTPS 서비스를 추가합니다. ‘ success ‘라는 출력 메시지가 표시되어야 하며, 이는 새로운 규칙이 추가되었음을 의미합니다.
sudo firewall-cmd --permanent --zone public --add-service http
sudo firewall-cmd --permanent --zone public --add-service https다음으로, firewalld를 다시 로드하여 새로운 변경 사항을 적용합니다. 그런 다음, 다음 명령을 사용하여 firewalld 상태를 확인합니다.
sudo firewall-cmd --reload
sudo firewall-cmd --list-allHTTP 및 HTTPS 프로토콜이 firewalld에 추가되었다는 출력이 표시됩니다.

LibreNMS 소스 코드 다운로드
이 단계에서는 GitHub에서 LibreNMS 소스 코드를 다운로드합니다. 그러나 그 전에 LibreNMS 애플리케이션을 실행하는 데 사용할 새로운 전용 사용자 ‘librenms‘를 생성합니다.
다음 명령을 실행하여 새로운 시스템 사용자 ‘librenms’를 생성합니다. 이 사용자는 LibreNMS 애플리케이션을 실행하는 데 사용됩니다.
sudo useradd librenms -d /opt/librenms -M -r -s "$(which bash)"이제 작업 디렉토리를 ‘/opt’로 이동하고 아래의 git 명령을 통해 LibreNMS 소스 코드를 다운로드합니다. 이제 ‘/opt/librenms‘라는 새로운 디렉토리가 생성되며, 이는 LibreNMS 설치 디렉토리로 사용됩니다.
cd /opt
git clone https://github.com/librenms/librenms.git
LibreNMS 설치 디렉토리 ‘/opt/librenms‘의 소유권과 권한을 변경합니다. 설치의 소유권은 ‘librenms’ 사용자여야 하며, 권한 771은 사용자가 디렉토리에서 읽기, 쓰기 및 실행할 수 있도록 허용합니다.
sudo chown -R librenms:librenms /opt/librenms
sudo chmod 771 /opt/librenms마지막으로, 다음 명령을 실행하여 일부 LibreNMS 디렉토리에 대한 액세스 제어 목록을 설정합니다. 이는 그룹 ‘librenms‘가 특정 LibreNMS 디렉토리에서 읽기, 쓰기 및 실행할 수 있도록 허용합니다.
sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/LibreNMS를 위한 PHP 종속성 설치
LibreNMS 소스 코드를 다운로드하고 올바른 권한을 구성한 후, 이제 LibreNMS를 위한 PHP 종속성을 설치합니다.
다음 명령을 사용하여 ‘librenms‘ 사용자로 로그인합니다.
su - librenms이제 아래의 설치자 스크립트를 통해 PHP 종속성을 설치합니다.
./scripts/composer_wrapper.php install --no-dev이제 LibreNMS에 필요한 PHP 종속성이 설치되는 것을 볼 수 있습니다. LibreNMS를 위한 Python 패키지 설치도 볼 수 있습니다.

PHP 종속성 설치가 완료되면, ‘Ctrl+d’를 눌러 ‘librenms‘ 사용자에서 로그아웃하거나 ‘exit‘ 명령을 입력할 수 있습니다.
PHP-FPM 구성
이 단계에서는 LibreNMS를 위한 PHP-FPM 설치를 구성합니다. 기본 구성 ‘/etc/php.ini‘를 수정하고 LibreNMS를 위한 특정 PHP-FPM 풀을 설정합니다.
다음 명령을 실행하여 Rocky Linux 시스템의 올바른 시간대를 설정합니다.
sudo timedatectl set-timezone Europe/Stockholm이제 다음 nano 편집기를 사용하여 PHP 구성 ‘/etc/php.ini‘를 편집합니다.
sudo nano /etc/php.ini‘date.timezone’ 옵션의 주석을 제거하고 현재 서버 시간대로 값을 변경합니다.
date.timezone = Europe/Stockholm작업이 완료되면 파일을 저장하고 편집기를 닫습니다.
다음으로, 기본 PHP-FPM 풀 구성 ‘www.conf‘를 ‘librenms.conf‘로 복사합니다. 이 예제에서는 LibreNMS 모니터링 도구를 위한 특정 PHP-FPM 풀을 설정합니다.
cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/librenms.conf이제 다음 nano 편집기를 사용하여 PHP-FPM 풀 구성 ‘/etc/php-fpm.d/librenms.conf‘을 편집합니다.
sudo nano /etc/php-fpm.d/librenms.conf기본 풀 이름을 ‘[www]‘에서 ‘[librenms]‘로 변경합니다.
[librenms]기본 사용자 및 그룹을 ‘librenms‘로 변경합니다. 이는 PHP-FPM 프로세스가 ‘librenms‘ 사용자 및 그룹으로 실행되도록 합니다.
user = librenms
group = librenms마지막으로, listen 옵션을 ‘/run/php-fpm-librenms.sock‘로 변경합니다. 이는 PHP-FPM librenms 풀의 sock 파일을 지정합니다.
listen = /run/php-fpm-librenms.sock작업이 완료되면 파일을 저장하고 편집기를 종료합니다.
이제 다음 systemctl 명령을 실행하여 PHP-FPM 서비스를 재시작하고 새로운 변경 사항을 적용합니다.
sudo systemctl restart php-fpm
MariaDB 서버 구성
PHP-FPM을 구성한 후, 이제 MariaDB 데이터베이스 서버를 설정하고 LibreNMS를 위한 새로운 데이터베이스와 사용자를 생성합니다.
LibreNMS는 InnoDB가 활성화된 MariaDB 데이터베이스 서버가 필요합니다. 따라서 이제 이를 활성화해야 합니다. 그런 다음, LibreNMS를 위한 새로운 데이터베이스와 사용자를 생성합니다.
다음 nano 편집기를 사용하여 MariaDB 서버 구성 ‘/etc/my.cnf.d/mariadb-server.cnf‘를 편집합니다.
sudo nano /etc/my.cnf.d/mariadb-server.cnf다음 구성을 ‘[mysqld]‘ 섹션 아래에 추가합니다.
[mysqld]
....
innodb_file_per_table=1
lower_case_table_names=0작업이 완료되면 파일을 저장하고 편집기를 종료합니다.
이제 아래의 systemctl 명령을 실행하여 MariaDB 서비스를 재시작하고 새로운 변경 사항을 적용합니다. 이제 MariaDB 서버가 InnoDB 데이터베이스 엔진이 활성화된 상태로 실행되고 있습니다.
sudo systemctl restart mariadb다음으로, 아래의 mysql 명령을 통해 MariaDB 셸에 로그인합니다. 비밀번호를 묻는 메시지가 표시되면 ENTER를 누르거나 MariaDB 루트 비밀번호를 입력할 수 있습니다.
sudo mysql -u root -p다음 쿼리를 실행하여 LibreNMS를 위한 새로운 데이터베이스와 사용자를 생성합니다. 이 예제에서는 새로운 데이터베이스와 사용자 ‘librenms‘를 생성하며, 데이터베이스 비밀번호는 본인의 비밀번호로 변경해야 합니다.
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
다음으로, 아래의 쿼리를 실행하여 데이터베이스 사용자 ‘librenms@localhost‘의 권한을 확인합니다.
SHOW GRANTS FOR librenms@localhost;사용자 ‘librenms@localhost‘가 데이터베이스 ‘librenms‘에 대한 권한을 가지고 있어야 합니다.

이제 ‘exit‘를 입력하여 MariaDB 셸에서 로그아웃합니다.
Nginx 서버 블록 설정
MariaDB 서버를 구성하고 데이터베이스와 사용자를 생성한 후, 이제 LibreNMS를 위한 새로운 Nginx 서버 블록 구성을 생성합니다.
시작하기 전에 LibreNMS에 사용할 로컬 도메인을 결정했는지 확인합니다. 이 예제에서는 LibreNMS가 도메인 ‘librenms.howtoforge.local‘에서 실행되어야 합니다.
다음 nano 편집기를 사용하여 새로운 Nginx 서버 블록 구성 ‘/etc/nginx/conf.d/librenms.conf‘을 생성합니다.
sudo nano /etc/nginx/conf.d/librenms.conf다음 구성을 파일에 추가하고 도메인 이름을 본인의 도메인으로 변경해야 합니다.
server {
listen 80;
server_name librenms.howtoforge.local;
root /opt/librenms/html;
index index.php;
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 ~ [^/]\.php(/|$) {
fastcgi_pass unix:/run/php-fpm-librenms.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi.conf;
}
location ~ /\.(?!well-known).* {
deny all;
}
}작업이 완료되면 파일을 저장하고 편집기를 종료합니다.
다음으로, 아래의 명령을 실행하여 Nginx 구성을 확인하고 구성이 올바른지 확인합니다.
sudo nginx -tNginx 구성이 올바른 경우 ‘ test successful - Syntax OK ‘와 같은 출력 메시지가 표시됩니다.
이제 Nginx 서비스를 재시작하여 새로운 서버 블록 구성을 적용합니다.
sudo systemctl restart nginx
이 시점에서 LEMP 스택(Nginx, MariaDB 데이터베이스 및 PHP-FPM)에 대한 구성이 완료되었습니다. 또한 LibreNMS가 이제 Rocky Linux 시스템에서 실행되고 있어야 합니다.
SELinux 구성
이 가이드에서는 SELinux가 강제 모드로 활성화된 상태에서 LibreNMS를 실행합니다. 따라서 이제 LibreNMS를 위한 SELinux 규칙을 설정합니다.
시작하려면 아래의 dnf 명령을 실행하여 패키지 ‘policycoreutils-python-utils‘를 Rocky Linux 시스템에 설치합니다. 이 패키지는 SELinux 관리를 위한 여러 명령줄을 제공합니다.
sudo dnf install policycoreutils-python-utils프롬프트가 표시되면 y를 입력하여 확인하고 ENTER를 눌러 진행합니다.

다음으로, LibreNMS 소스 코드에 대한 레이블을 설정하기 위해 다음 명령을 실행합니다.
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/html(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/(rrd|storage)(/.*)?'
semanage fcontext -a -t httpd_log_t "/opt/librenms/logs(/.*)?"
semanage fcontext -a -t bin_t '/opt/librenms/librenms-service.py'
restorecon -RFvv /opt/librenms
chcon -t httpd_sys_rw_content_t /opt/librenms/.env
다음 명령을 실행하여 Nginx 웹 서버에 대한 일부 서비스 접근을 허용합니다.
setsebool -P httpd_can_sendmail=1
setsebool -P httpd_execmem 1이제 다음 nano 편집기를 사용하여 새로운 파일 ‘http_fping.tt‘를 생성합니다.
nano http_fping.tt다음 구성을 파일에 추가합니다.
module http_fping 1.0;
require {
type httpd_t;
class capability net_raw;
class rawip_socket { getopt create setopt write read };
}
#============= httpd_t ==============
allow httpd_t self:capability net_raw;
allow httpd_t self:rawip_socket { getopt create setopt write read };작업이 완료되면 파일을 저장하고 편집기를 종료합니다.
다음 명령을 실행하여 ‘http_fping.tt‘를 SELinux 형식으로 변환합니다. 그런 다음, 새로운 컴파일된 규칙을 SELinux에 추가합니다.
checkmodule -M -m -o http_fping.mod http_fping.tt
semodule_package -o http_fping.pp -m http_fping.mod
semodule -i http_fping.pp
이제 LibreNMS에 대한 SELinux 구성을 완료했습니다. 다음으로, LibreNMS에 대한 추가 구성을 설정합니다.
LibreNMS 구성 마무리
LibreNMS 구성을 마무리하기 위해, 이제 ‘lnms‘ 명령줄을 설정하고, cron 및 logrotate에 대한 기본 구성을 복사합니다. 또한 LibreNMS를 위한 SNMP 서비스를 설정합니다.
다음 명령을 실행하여 ‘lnms‘ 명령줄을 활성화하고 ‘lnms‘ 명령의 bash 완성을 복사합니다.
ln -s /opt/librenms/lnms /usr/bin/lnms
cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/LibreNMS cron의 예제 구성을 ‘/etc/cron.d/librenms‘에 복사합니다.
sudo cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenmsLibreNMS의 기본 logrotate 구성을 ‘/etc/logrotate.d/librenms‘에 복사합니다.
sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
이제 기본 snmpd 서비스 구성을 ‘/etc/snmp/snmpd.conf‘에 복사합니다. 그런 다음, 새로운 파일 ‘/etc/snmp/snmpd.conf‘를 nano 편집기를 사용하여 편집합니다.
sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
sudo nano /etc/snmp/snmpd.confsnmpd 서비스의 기본 커뮤니티 비밀번호 ‘RANDOMSTRINGGOESHERE‘를 본인의 비밀번호로 변경합니다.
# Change RANDOMSTRINGGOESHERE to your preferred SNMP community string
com2sec readonly default RANDOMSTRINGGOESHERE작업이 완료되면 파일을 저장하고 편집기를 종료합니다.
다음으로, LibreNMS가 각 대상 호스트의 운영 체제를 자동으로 감지하는 데 사용할 이진 파일을 다운로드합니다. 그런 다음 기본 권한을 변경하여 실행 가능하게 만듭니다.
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro마지막으로, 새로운 변경 사항과 구성을 적용하기 위해 snmpd 서비스를 재시작합니다.
systemctl restart snmpd이제 모든 기본 구성이 완료되었습니다. 다음으로, 웹 브라우저를 통해 LibreNMS 설치를 시작합니다.
LibreNMS 웹 설치 접근
로컬 머신에서 ‘/etc/hosts‘ 파일을 편집하고 LibreNMS 설치의 로컬 도메인 이름을 정의합니다. 또한 IP 주소를 서버 IP 주소로 변경해야 합니다.
192.168.5.100 librenms.howtoforge.local이제 웹 브라우저를 열고 LibreNMS 설치의 도메인 이름(예: http://librenms.howtoforge.local/)으로 이동합니다.
처음에 LibreNMS 설치 관리자가 설치를 위한 환경을 확인합니다. 모든 요구 사항이 녹색으로 표시되어야 하며, 이는 시스템이 LibreNMS 설치를 위한 준비가 되었음을 의미합니다.
데이터베이스 아이콘을 클릭하여 계속 진행합니다.

이제 LibreNMS를 위한 데이터베이스 및 사용자 세부 정보를 입력하고 ‘Check Credentials‘를 클릭합니다. 데이터베이스 자격 증명이 올바르면 해당 섹션이 녹색으로 표시됩니다.

이제 ‘Build Database‘를 클릭하여 LibreNMS의 데이터베이스 마이그레이션을 시작합니다.

데이터베이스 마이그레이션이 완료되면 ‘Build Database‘ 섹션이 녹색으로 표시됩니다.
키 아이콘을 클릭하여 LibreNMS의 관리자 사용자 구성을 시작합니다.

이제 LibreNMS 설치를 위한 새로운 관리자 사용자, 비밀번호 및 이메일 주소를 입력하고 ‘Add User‘를 클릭합니다.

이제 설치가 완료되었으며 다음 페이지가 표시됩니다. 설치가 완료되었고 구성 내용이 ‘.env‘ 파일에 기록되었음을 확인할 수 있습니다.

이제 ‘validate your install‘ 링크를 클릭하여 LibreNMS 설치를 확인합니다.
이제 LibreNMS 로그인 페이지로 리디렉션됩니다. 관리자 사용자 및 비밀번호를 입력한 후 ‘Login‘을 클릭합니다.

이제 모든 구성이 ‘OK‘로 표시되어야 하며, 이는 구성이 오류가 없음을 의미합니다.
LibreNMS에서 권장하는 지침을 따라 모든 오류 또는 경고를 수정할 수도 있습니다.

이제 새로운 대상 호스트, 가상 머신 또는 네트워크 장치를 추가하여 LibreNMS 모니터링 솔루션을 모니터링할 수 있습니다.
결론
축하합니다! Rocky Linux 서버에 LibreNMS 모니터링 솔루션을 설치했습니다. 또한 Rocky Linux에서 LEMP 스택(Nginx, MariaDB 및 PHP-FPM)의 기본 구성도 배웠습니다.
여기에서 호스트 또는 대상 머신을 추가하여 모니터링하고, LibreNMS 에이전트를 설정하고, 경고 또는 알림을 설정하고, Graylog와의 타사 통합을 설정하고, 기타 작업을 계속 진행할 수 있습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.