모니터링 도구 · 9 min read · Nov 06, 2025
AlmaLinux 9에 LibreNMS 모니터링 도구 설치하는 방법

LibreNMS는 SNMP, ARP, OSPF 및 BGP를 포함한 여러 프로토콜로 자동 검색을 지원하는 모니터링 도구입니다. 운영 체제를 모니터링하려면 Linux, Windows 및 BSD를 포함한 대부분의 OS에서 사용할 수 있는 SNMP 프로토콜을 사용할 수 있습니다.
SNMP 프로토콜에는 v1 및 v2가 있으며, 이는 커뮤니티 비밀번호로만 보호되며, 인증 및 암호화를 위한 비밀번호를 지원하는 프로토콜 v3가 있습니다. 프로덕션 환경에서는 v2 및 v1보다 더 안전한 SNMP 프로토콜 v3를 사용하는 것이 좋습니다.
이 가이드에서는 AlmaLinux 9 서버에 LibreNMS 모니터링 도구를 설치하는 방법을 보여드리겠습니다. PHP-FPM, Nginx 웹 서버 및 MariaDB 데이터베이스와 함께 LibreNMS를 실행할 것입니다.
필수 조건
이 가이드를 완료하려면 다음이 필요합니다:
- AlmaLinux 9 서버 - 이 데모는 호스트 이름이 almalinux9인 서버를 사용합니다.
- sudo/root 권한이 있는 비루트 사용자.
의존성 설치
먼저, EPEL 및 Remi 저장소를 시스템에 추가합니다. 그런 다음 LibreNMS에 필요한 패키지 의존성을 설치합니다.
다음 dnf 명령을 실행하여 EPEL 저장소와 PHP Remi 저장소를 시스템에 추가합니다.
sudo dnf install -y epel-release
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm일부 의존성은 EPEL 저장소에서 사용할 수 있으므로 EPEL을 시스템에 추가해야 합니다.

PHP Remi 저장소는 PHP-FPM 패키지를 설치하는 데 사용됩니다.

이제 다음 명령을 실행하여 PHP의 기본 저장소 모듈을 재설정합니다. 그런 다음 LibreNMS에서 필요한 PHP 버전 8.1에 대해 PHP Remi 저장소를 활성화합니다.
sudo dnf module reset php
sudo dnf module enable php:remi-8.1
다음으로, 아래의 dnf 명령을 실행하여 LibreNMS에 필요한 패키지 의존성을 설치합니다. 여기에는 PHP-FPM, Nginx 웹 서버, MariaDB 서버, 일부 Python3 패키지 및 rrdtool, unzip, ImageMagick, git 및 fping과 같은 시스템 유틸리티가 포함됩니다.
sudo dnf install -y 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-redis python3-memcached python3-pip python3-systemd rrdtool unzip설치가 완료되면 다음 단계로 넘어갑니다.

시스템 사용자 생성
이 섹션에서는 LibreNMS를 실행하는 데 사용될 새로운 시스템 사용자 librenms를 생성합니다.
다음 명령을 실행하여 새로운 사용자 librenms를 생성합니다.
sudo useradd librenms -d /opt/librenms -M -r -s "$(which bash)"상세 옵션:
- -d /opt/librenms: 새로운 사용자의 홈 디렉토리를 /opt/librenms로 지정합니다.
- -M: 새로운 사용자의 홈 디렉토리를 생성하지 않습니다.
- -r: 새로운 사용자를 시스템 사용자로 정의합니다.
- -s “$(which bash)”: 새로운 사용자의 셸을 bash로 지정합니다.
PHP-FPM 구성
다음 섹션에서는 LibreNMS를 위한 PHP-FPM을 설정합니다. 시스템의 적절한 시간대를 설정한 다음 LibreNMS에서 사용할 특정 PHP-FPM 풀을 추가합니다.
먼저, 다음 명령을 실행하여 서버의 시간대를 구성합니다.
sudo timedatectl set-timezone Europe/Stockholm
sudo ln -s /usr/share/zoneinfo/Europe/Stockholm /etc/localtime
그런 다음, 다음 nano 편집기를 사용하여 파일 /etc/php.ini를 엽니다.
sudo nano /etc/php.inidate.timezone 매개변주의 주석을 제거하고 적절한 시간대로 값을 변경합니다:
date.timezone=Europe/Stockholm완료되면 파일을 저장하고 종료합니다.
이제 다음 명령을 실행하여 기본 PHP-FPM 풀 구성을 /etc/php-fpm.d/librenms.conf로 복사하고 nano 편집기를 사용하여 엽니다.
sudo cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/librenms.conf
sudo nano /etc/php-fpm.d/librenms.confPHP-FPM 풀 이름을 www에서 librenms로 변경합니다.
[librenms]기본 사용자 및 그룹을 librenms로 변경합니다.
user = librenms
group = librenms새 PHP-FPM 풀의 기본 소켓 파일을 /run/php-fpm/librenms.sock로 변경합니다.
listen = /run/php-fpm/librenms.sock완료되면 파일을 저장하고 편집기를 종료합니다.
이제 다음 명령을 실행하여 PHP-FPM 서비스를 시작하고 활성화합니다.
sudo systemctl start php-fpm
sudo systemctl enable php-fpm그런 다음 다음 명령을 사용하여 PHP-FPM 서비스가 실행 중인지 확인합니다.
sudo systemctl status php-fpm실행 중이라면 터미널에 다음 출력이 표시됩니다:

또한 다음 명령을 사용하여 LibreNMS의 PHP-FPM 소켓 파일을 확인할 수 있습니다.
ss -pl | grep php-fpm구성이 성공적이라면 PHP-FPM 소켓 파일 /run/php-fpm/librenms.sock이 사용 가능해야 합니다.
MariaDB 서버 구성
PHP-FPM 구성이 완료된 후 MariaDB 서버를 구성합니다. MariaDB 서버에 추가 구성을 추가하고 mariadb-secure-installation 유틸리티를 통해 MariaDB를 보호합니다.
다음 nano 편집기를 사용하여 기본 MariaDB 서버 구성 파일 /etc/my.cnf.d/mariadb-server.cnf를 엽니다.
sudo nano /etc/my.cnf.d/mariadb-server.cnf‘[mysqld]‘ 섹션 아래에 다음 구성을 삽입합니다.
innodb_file_per_table=1
lower_case_table_names=0완료되면 파일을 저장하고 편집기를 종료합니다.
이제 다음 명령을 실행하여 MariaDB 서비스를 시작하고 활성화합니다.
sudo systemctl start mariadb
sudo systemctl enable mariadb다음으로, 다음 명령을 실행하여 MariaDB 서버 설치를 보호합니다.
sudo mariadb-secure-installation아래의 몇 가지 구성에 대해 질문을 받게 됩니다:
- MariaDB root 사용자의 인증 방법을 unix_socket으로 변경합니다. n을 입력하여 아니오로 확인합니다.
- MariaDB root 비밀번호를 설정합니다. y를 입력하여 확인하고 새 MariaDB root 비밀번호를 입력한 후 반복합니다.
- MariaDB root 사용자의 원격 로그인을 비활성화합니다. y를 입력하여 확인합니다.
- MariaDB에서 기본 데이터베이스 테스트를 제거합니다. y를 입력하여 확인합니다.
- MariaDB에서 익명 사용자를 제거합니다. y를 입력하여 확인합니다.
- 마지막으로, 변경 사항을 적용하기 위해 테이블 권한을 다시 로드하려면 y를 입력합니다.
LibreNMS용 MariaDB 데이터베이스 및 사용자 생성
MariaDB 서버가 구성되면 LibreNMS에서 사용할 새로운 데이터베이스와 사용자를 생성합니다.
다음 명령을 사용하여 MariaDB 서버에 로그인합니다.
sudo mariadb -u root -p다음 쿼리를 실행하여 LibreNMS용 새로운 데이터베이스와 사용자를 생성합니다. 이 데모에서는 비밀번호 librenmspassword로 새로운 데이터베이스 및 사용자 librenms를 생성합니다. 또한 LibreNMS 데이터베이스의 기본 문자가 utf8mb4인지 확인해야 합니다.
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'librenmspassword';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
이제 아래 쿼리를 실행하여 새로운 사용자 librenms의 권한을 확인한 다음 exit를 입력하여 MariaDB에서 로그아웃합니다.
SHOW GRANTS FOR 'librenms'@'localhost';
exit아래에 표시된 출력은 사용자 librenms가 데이터베이스 librenms에 접근할 수 있음을 보여줍니다.

LibreNMS 다운로드 및 설치
이 섹션에서는 LibreNMS 소스 코드를 다운로드하고 적절한 소유권 및 권한을 설정한 다음 소스 코드에 포함된 composer_wrapper 스크립트를 통해 PHP 의존성을 설치합니다.
다음 git 명령을 실행하여 LibreNMS 소스 코드를 /opt/librenms 디렉토리에 다운로드합니다.
git clone https://github.com/librenms/librenms.git /opt/librenms이제 /opt/librenms 디렉토리의 소유권을 사용자 librenms로 변경하고 권한을 771로 변경합니다.
sudo chown -R librenms:librenms /opt/librenms
sudo chmod 771 /opt/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로 로그인합니다. 이제 /opt/librenms 디렉토리에 있어야 합니다.
su - librenms
pwd다음 명령을 실행하여 LibreNMS용 PHP 의존성을 설치합니다. 설치가 완료되면 exit를 입력하여 사용자 librenms에서 로그아웃합니다.
./scripts/composer_wrapper.php install --no-dev
exit
SELinux 구성
AlmaLinux 9 서버에서 SELinux가 강제 모드로 활성화되어 있는 경우 LibreNMS를 위해 SELinux를 구성해야 합니다. 이 섹션에서는 policycoreutils-python-utils 패키지를 설치하여 LibreNMS를 위한 SELinux를 설정합니다.
다음 명령을 실행하여 policycoreutils-python-utils 패키지를 설치합니다.
sudo dnf install -y policycoreutils-python-utils다음 명령을 실행하여 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
setsebool -P httpd_can_sendmail=1
setsebool -P httpd_execmem 1
chcon -t httpd_sys_rw_content_t /opt/librenms/.env이제 다음 nano 편집기 명령을 사용하여 새로운 파일 http_fping.tt를 생성합니다.
sudo nano http_fping.tt파일에 다음 구성을 삽입합니다. 이는 SELinux를 통해 fping 명령을 허용합니다.
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에 추가합니다.
checkmodule -M -m -o http_fping.mod http_fping.tt
semodule_package -o http_fping.pp -m http_fping.mod
semodule -i http_fping.ppFirewalld 구성
SELinux 구성이 완료된 후, firewalld를 설정하여 HTTP 및 HTTPS 프로토콜을 모두 열어야 합니다.
다음 firewall-cmd 명령을 실행하여 HTTP 및 HTTPS 포트를 열고, 변경 사항을 적용하기 위해 firewalld를 다시 로드합니다.
sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload이제 다음 명령을 사용하여 firewalld 규칙 목록을 확인합니다. 성공하면 규칙 목록에 HTTP 및 HTTPS 프로토콜이 표시됩니다.
sudo firewall-cmd --list-all
SNMP 서비스 구성
SNMP 또는 간단한 네트워크 관리 프로토콜은 모뎀, 스위치 및 라우터와 같은 네트워크 장치에서 가장 널리 사용되는 프로토콜입니다. 이 섹션에서는 네트워크 장치를 모니터링하는 데 사용될 LibreNMS 설치에서 snmpd 서비스를 설정합니다.
기본 SNMP 구성을 /etc/snmp/snmpd.conf로 복사하고 아래의 nano 편집기를 사용하여 엽니다.
sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
sudo nano /etc/snmp/snmpd.conf기본 SNMP 비밀번호 RANDOMSTRINGGOESHERE를 새 비밀번호로 변경합니다.
# Change RANDOMSTRINGGOESHERE to your preferred SNMP community string
com2sec readonly default RANDOMSTRINGGOESHERE완료되면 파일을 저장하고 편집기를 종료합니다.
다음으로, Linux 및 UNIX OS를 감지하기 위한 LibreNMS 에이전트 도구의 이진 파일을 다운로드하고 실행 가능하게 만듭니다.
sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
sudo chmod +x /usr/bin/distro
이제 다음 명령을 사용하여 snmpd 서비스를 시작하고 활성화합니다.
sudo systemctl start snmpd
sudo systemctl enable snmpd마지막으로, 아래의 systemctl 명령을 사용하여 snmpd 서비스를 확인합니다.
sudo systemctl status snmpdsnmpd 서비스가 실행 중이라면 ‘active (running)‘와 같은 출력이 표시됩니다.

추가 LibreNMS 설정
다음 섹션은 LibreNMS에 대한 추가 구성입니다. 다음 구성을 설정합니다:
- LibreNMS의 이진 명령 ‘lnms’ 및 bash_completion 설정.
- LibreNMS 폴링을 위한 cron 설정.
- systemd 타이머를 통한 LibreNMS 스케줄러 설정.
- LibreNMS 로그를 위한 logrotate 설정.
먼저, LibreNMS 명령줄 lnms에 대한 심볼릭 링크를 /usr/bin/lnms에 생성합니다. 그런 다음 lnms 명령에 대한 bash 완성을 /etc/bash_completion.d/ 디렉토리에 복사합니다.
sudo ln -s /opt/librenms/lnms /usr/bin/lnms
sudo cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/이제 사용자 librenms로 로그인하고 lnms 명령을 실행한 다음 TAB을 눌러 lnms 명령의 사용 가능한 매개변수 목록을 가져옵니다.
su - librenms
lnms TAB터미널에 다음과 유사한 출력이 표시됩니다.

다음으로, 다음 명령을 실행하여 LibreNMS cron 구성을 /etc/cron.d/librenms에 복사합니다.
cp /opt/librenms/dist/librenms.cron /etc/cron.d/librenms그런 다음, 아래의 명령을 사용하여 LibreNMS의 logrotate 구성을 복사합니다.
sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms그 후, LibreNMS 스케줄러 서비스 및 타이머를 /etc/systemd/system/ 디렉토리에 복사하고 systemd 관리자를 다시 로드하여 변경 사항을 적용합니다.
sudo cp /opt/librenms/dist/librenms-scheduler.service /opt/librenms/dist/librenms-scheduler.timer /etc/systemd/system/
sudo systemctl daemon-reload마지막으로, LibreNMS 스케줄러 서비스를 시작하고 활성화합니다.
sudo systemctl enable librenms-scheduler.timer
sudo systemctl start librenms-scheduler.timer
Nginx 구성
모든 구성이 완료되면 이제 LibreNMS를 위한 Nginx 서버 블록을 설정합니다.
다음 nano 편집기 명령을 사용하여 새로운 Nginx 서버 블록 구성 /etc/nginx/conf.d/librenms.conf를 생성합니다.
sudo nano /etc/nginx/conf.d/librenms.conf다음 구성을 삽입하고 server_name 옵션에서 도메인 이름을 변경해야 합니다.
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 구성을 확인합니다. 성공하면 ‘test is successful - syntax is ok‘와 같은 출력이 표시됩니다.
sudo nginx -t다음으로, 다음 명령을 사용하여 Nginx 서비스를 시작하고 활성화합니다.
sudo systemctl start nginx
sudo systemctl enable nginx
그런 다음, 아래의 명령을 입력하여 Nginx 서비스 상태를 확인하고 서비스가 실행 중인지 확인합니다.
sudo systemctl status nginx성공하면 다음과 같은 출력이 표시됩니다:

웹 브라우저를 통한 LibreNMS 설치
Nginx 서버 블록 구성을 생성한 후, 웹 브라우저에서 LibreNMS 설치를 시작할 준비가 되었습니다.
웹 브라우저를 열고 LibreNMS 설치의 도메인 이름인 http://librenms.howtoforge.local에 방문합니다.
첫 페이지에서 LibreNMS는 현재 환경을 확인하고 검증합니다. 필수 조건 검사를 통과한 후, database 아이콘을 클릭하여 계속 진행합니다.

이제 생성한 데이터베이스 세부 정보를 입력하고 Check Credentials를 클릭합니다.

그런 다음, Build Database를 클릭하여 LibreNMS 데이터베이스를 마이그레이션합니다.

다음으로, key 아이콘을 클릭하여 관리자 사용자 및 비밀번호 LibreNMS를 설정합니다. 관리자 사용자, 비밀번호 및 이메일 세부 정보를 입력한 후 Add User를 클릭합니다.

이제 Finish Install을 클릭하여 LibreNMS 설치를 완료합니다.

LibreNMS 설치가 완료되면 LibreNMS 로그인 페이지로 리디렉션됩니다. 관리자 사용자 및 비밀번호를 입력한 후 Login을 클릭합니다.

성공하면 다음과 같은 LibreNMS 대시보드가 표시됩니다. 필요에 따라 LibreNMS 대시보드를 생성하고 정렬할 수 있습니다.

마지막으로, validate.php 스크립트를 사용하여 적절한 LibreNMS 구성이 있는지 확인할 수 있습니다. 다음 명령을 실행하여 사용자 librenms로 로그인하고 validate.php 스크립트를 실행합니다.
su - librenms
./validate.php적절한 LibreNMS 구성이 있는 경우 모든 항목이 OK 상태여야 합니다:

결론
축하합니다. 이제 AlmaLinux 9에 LibreNMS 모니터링 도구를 성공적으로 설치했습니다. MariaDB 데이터베이스 서버와 Nginx 웹 서버로 LibreNMS를 설치하고 구성했습니다. 또한 LibreNMS를 위해 SELinux 및 firewalld를 구성했습니다.
추가로, 새로운 호스트나 장치를 모니터링하기 위해 LibreNMS 문서를 방문하세요.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.