웹사이트 검색

Debian 11에 LibreNMS를 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. 패키지 종속성 설치
  3. 새 사용자 라이브러리 설정
  4. 시간대 시스템 및 PHP 설정
  5. MariaDB 설정 및 데이터베이스 생성
  6. 새 PHP-FPM 풀 만들기\n
  7. LibreNMS 다운로드
  8. LibreNMS PHP 종속성 설치
  9. LibreNMS용 Nginx 구성
  10. LibreNMS 설치 시작
    1. - 데이터베이스 시간대 수정
    2. - 시스템 오류 수정

    LibreNMS는 PHP를 기반으로 하고 자동 검색을 지원하는 오픈 소스 네트워크 모니터링 시스템입니다. GPLv3 라이선스에 따라 출시된 Observium 모니터링 소프트웨어의 커뮤니티 포크입니다. LibreNMS를 사용하면 Linux, Windows 및 BSD와 같은 운영 체제를 모니터링할 수 있으며 Aruba, Cisco, Dell, D-Link, HP, Mikrotik 등과 같은 여러 공급업체의 광범위한 네트워크 하드웨어도 지원합니다.

    완전한 기능을 갖춘 모니터링 시스템인 LibreNMS는 다중 통합 및 다중 프로토콜 데이터 수집을 통해 풍부한 기능을 제공합니다.

    다음은 LibreNMS의 주목할만한 기능입니다.

    • CDP, BGP, SNMP, OSPF 및 ARP와 같은 여러 프로토콜을 사용하여 전체 네트워크를 자동 검색합니다.\n
    • 이메일, slacks, IRC, Rocket.chat, Telegram 등을 사용하는 여러 알림 방법\n
    • 모니터링 시스템에서 데이터를 관리, 그래프 작성 및 검색하기 위한 광범위한 API.\n
    • 네트워크 사용 또는 전송에 따라 대역폭 청구서를 생성하기 위한 청구 시스템을 지원합니다.\n
    • MySQL, Radius, LDAP, HTTP 및 Active Directory와 같은 여러 인증 방법을 지원합니다.\n
    • 2단계 인증 지원
    • Graylog, NfSen, Nagios Plugins, Oxidized, RANCID와 같은 타사 애플리케이션과의 다중 통합.\n
    • 하드웨어 공급업체에 대한 광범위한 지원은 여기에서 공급업체를 확인하십시오.\n
    • 사용자 친화적이고 사용자 정의 가능한 대시보드.\n
    • 자동 업데이트 지원으로 LibreNMS 소프트웨어를 유지하십시오.\n
    • 핵심 기능을 제공하는 Android 및 iOS용 기본 애플리케이션입니다.\n

    이 가이드에서는 Debian 11 Bullseye에서 LibreNMS 모니터링 도구를 설치하고 구성하는 방법을 배웁니다.

    전제 조건

    이 가이드를 완료하려면 다음 요구 사항을 충족해야 합니다.

    • 운영 체제: Debian 11 Bullseye
    • 루트 권한\n

    이제 설치를 시작하겠습니다.

    패키지 종속성 설치

    이 첫 번째 단계에서는 LireNMS용 기본 및 필수 패키지를 설치합니다. LEMP 스택, Python 패키지, snmpd 및 curl, fping, git 및 imagemagick과 같은 추가 시스템 유틸리티를 설치하게 됩니다.

    1. 다음 명령을 사용하여 Debian 리포지토리를 새로 고치고 업데이트합니다.

    sudo apt update

    2. 이제 다음 명령을 실행하여 패키지 종속성을 설치합니다.

    sudo apt install acl curl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.4-cli php7.4-curl php7.4-fpm php7.4-gd php7.4-gmp php7.4-json php7.4-mbstring php7.4-mysql php7.4-snmp php7.4-xml php7.4-zip python3-dotenv python3-pymysql python3-redis python3-setuptools python3-pip python3-systemd rrdtool snmp snmpd whois

    y를 입력하여 설치를 확인하고 Enter를 눌러 계속하십시오.

    3. 패키지 종속성 설치가 완료되면 다음 명령을 실행하여 Nginx, MariaDB, PHP-FPM 및 snmpd와 같은 서비스를 시작하고 활성화합니다.

    sudo systemctl enable --now nginx
    sudo systemctl enable --now mariadb
    sudo systemctl enable --now php7.4-fpm
    sudo systemctl enable --now snmpd.service

    이제 LibreNMS에 대한 종속성 패키지 설치를 완료했습니다.

    새 사용자 라이브러리 설정

    이 단계에서는 새 시스템 사용자 librenms를 생성합니다. LibreNMS 모니터링 도구는 librenms 사용자로 실행됩니다.

    1. 다음 명령을 실행하여 새 librenms 사용자를 생성합니다.

    useradd librenms -d /opt/librenms -M -r -s "$(which bash)"

    알아야 할 옵션:

    • -d /opt/librenms: 사용자 librenms의 기본 홈 디렉토리를 /opt/librenms로 설정합니다.\n
    • -M: 사용자 librenms에 대한 홈 디렉토리를 만들지 마십시오.\n
    • -r: 이 사용자를 시스템 사용자로 librenms로 만듭니다.
    • -s "&#36 (which bash)": 사용자 librenms에 대한 기본 셸을 설정합니다. 쉘은 which bash 명령의 출력이 됩니다.

    2. 다음으로 다음 명령을 사용하여 사용자 librenms에 대한 새 암호를 만듭니다.

    passwd librenms

    강력한 새 암호를 입력하고 반복합니다.

    LibreNMS 설치를 위해 시스템을 구성하려면 다음 단계를 계속하십시오.

    시간대 시스템 및 PHP 설정

    시간은 모니터링의 필수적인 부분입니다. 이 단계에서는 PHP의 기본 시간대와 시스템 시간대를 설정합니다. 두 시간대(PHP 및 시스템) 시간대가 동기화되고 동일한 시간대를 사용하는지 확인합니다.

    1. 다음 명령을 사용하여 PHP-FPM 및 CLI에 대한 구성 php.ini를 편집합니다.

    sudo nano /etc/php/7.4/fpm/php.ini
    sudo nano /etc/php/7.4/cli/php.ini

    옵션 date.timezone의 주석을 제거하고 그 뒤에 시간대를 입력하십시오. 이 예에서는 시간대 Europe/Paris를 사용했습니다.

    date.timezone = Europe/Paris

    두 구성을 모두 저장하고 종료합니다.

    2. 이제 PHP-FPM을 다시 시작하여 다음 명령을 사용하여 새 구성을 적용합니다.

    sudo systemctl restart php7.4-fpm

    3. 그런 다음 아래의 timedatectl 명령을 실행하여 기본 시스템 시간대를 유럽/파리로 설정합니다.

    sudo timedatectl set-timezone Europe/Paris

    PHP 및 시스템에 대한 시간대 구성을 완료했습니다.

    MariaDB 설정 및 데이터베이스 생성

    이 단계에서는 MariaDB에 대한 구성을 LibreNMS 요구 사항으로 추가한 다음 LibreNMS 설치를 위한 새 MariaDB 데이터베이스 및 사용자를 만듭니다.

    1. nano 편집기를 사용하여 MariaDB 서버 구성 /etc/mysql/mariadb.conf.d/50-server.cnf을 편집합니다.

    sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

    [mysqld] 섹션 아래에 다음 구성을 추가합니다.

    [mysqld]
    .....
    ....
    innodb_file_per_table=1
    lower_case_table_names=0

    구성을 저장하고 종료합니다.

    2. 새로운 MariaDB 구성을 적용하려면 아래의 systemctl 명령을 사용하여 서비스를 다시 시작하십시오.

    sudo systemctl restart mariadb

    이제 MariaDB 서버에 추가 구성을 추가했습니다.

    3. 다음으로 mysql 명령을 사용하여 아래와 같이 root 사용자로 MariaDB/MySQL 셸에 로그인합니다.

    mysql -u root -p

    암호를 입력하거나 Enter 키를 눌러 로그인합니다.

    4. 이제 다음 MariaDB 쿼리를 실행하여 새 데이터베이스 및 사용자 librenms를 만듭니다. 강력한 암호로 LibreNMSPassword 암호를 변경해야 합니다.

    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;

    exit를 입력하고 Enter 키를 눌러 MariaDB 셸에서 로그아웃합니다.

    이제 LibreNMS 설치를 위한 데이터베이스와 사용자를 생성했습니다.

    새 PHP-FPM 풀 생성

    FPM(FastCGI Process Manager) 또는 PHP-FPM을 사용하면 PHP 응용 프로그램에 대한 사용자 정의 풀을 사용할 수 있습니다. 기본적으로 /etc/php/7.4/fpm/pool.d/www.conf 구성으로 www 풀을 실행하는 PHP-FPM입니다.

    이 단계에서는 LibreNMS용 새 사용자 정의 PHP-FPM 풀을 생성합니다. /etc/php/7.4/fpm/pool.d/librenms.conf 구성으로 새 PHP-FPM 풀 librenms를 생성하고 아래에서 실행됩니다. 사용자 librenms.

    1. 먼저 다음 명령을 사용하여 기본 풀 구성 www.conflibrenms.conf에 복사합니다.

    cp /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/librenms.conf

    2. nano 편집기를 사용하여 사용자 지정 librenms.conf 풀 구성을 편집합니다.

    sudo nano /etc/php/7.4/fpm/pool.d/librenms.conf

    줄 맨 위에서 기본 사용자를 [www]에서 [librenms]로 변경합니다.

    [librenms]

    기본 사용자 및 그룹을 librenms로 변경합니다.

    user = librenms
    group = librenms

    기본 PHP-FPM 양말 파일을 /run/php-fpm-librenms.sock으로 변경합니다.

    listen = /run/php-fpm-librenms.sock

    구성을 저장하고 종료합니다.

    3. 그런 다음 PHP-FPM 서비스를 다시 시작하여 새 구성을 적용합니다.

    sudo systemctl restart php7.4-fpm

    이제 PHP-FPM은 양말 파일 /run/php/php-fpm-librenms.sock을 사용하여 새 풀 librenms를 생성합니다.

    4. 다음 명령을 사용하여 librenms sock 파일을 확인합니다.

    ss -anl | grep librenms

    아래와 비슷한 출력이 표시됩니다.

    u_str LISTEN 0      511                /run/php/php-fpm-librenms.sock 69199                  * 0     users:(("php-fpm7.4",pid=26105,fd=10),("php-fpm7.4",pid=26104,fd=10),("php-fpm7.4",pid=26103,fd=7))

    이제 LibreNMS 모니터링 도구를 다운로드하고 설치할 준비가 되었습니다.

    LibreNMS 다운로드

    이 단계에서는 LibreNMS 소스 코드를 다운로드하고 이에 대한 권한 및 액세스 제어를 설정합니다.

    1. 작업 디렉토리를 /opt로 변경하고 아래와 같이 git 명령을 사용하여 LibreNMS 소스 코드를 다운로드합니다.

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

    LibreNMS 설치는 /opt/librenms 디렉토리입니다.

    2. 다음 명령을 사용하여 LibreNMS 설치의 소유권 및 권한을 변경합니다.

    chown -R librenms:librenms /opt/librenms
    chmod 771 /opt/librenms

    3. 다음으로 LibreNMS 설치 디렉터리에 대한 액세스 제어 목록(ACL)을 설정합니다. 그룹이 다음 setfacl 명령을 사용하여 아래의 각 디렉토리에서 읽기 쓰기 실행을 허용합니다.

    setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
    setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/

    LibreNMS용 PHP 종속성을 설치하기 위한 다음 단계를 계속하십시오.

    LibreNMS PHP 종속성 설치

    LibreNMS PHP 종속성을 설치하려면 librenms 사용자로 로그인하고 LibreNMS 소스 코드에 포함된 composer_wrapper를 사용해야 합니다.

    1. 다음 명령을 사용하여 librenms 사용자로 로그인합니다.

    su - librenms

    2. PHP 스크립트 composer_wrapper.php를 실행하여 LibreNMS용 PHP 패키지 종속성을 설치합니다.

    ./scripts/composer_wrapper.php install --no-dev

    3. 모든 다운로드 프로세스가 완료되면 exit를 입력하고 Enter를 눌러 librenms 사용자에서 로그아웃합니다.

    이제 LibreNMS용 PHP 종속성 설치를 완료했습니다.

    LibreNMS용 Nginx 구성

    이 단계에서는 LibreNMS 모니터링 도구를 위한 새로운 Nginx 서버 블록을 생성합니다. 이 예제에서는 도메인 이름 librenms.example.io를 사용합니다.

    1. nano 편집기를 사용하여 새 Nginx 서버 블록 구성 librenms를 만듭니다.

    sudo nano /etc/nginx/sites-available/librenms

    다음 구성을 복사하여 붙여넣습니다. 그리고 귀하의 도메인으로 도메인 이름을 변경했는지 확인하십시오.

    server {
     listen      80;
     server_name librenms.example.io;
     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;
     }
    }

    보안 HTTPS LibreNMS 설치를 위해 다음 구성을 사용하십시오. 그리고 SSL 인증서의 도메인 이름과 경로를 변경해야 합니다.

    server {
        listen      80;
        server_name librenms.example.io;
        rewrite     ^   https://$server_name$request_uri? permanent;
    }

    server {

     server_name librenms.example.io;
     root        /opt/librenms/html;
     index       index.php;

       listen 443 ssl http2;
        server_name example.io;
        ssl_certificate           /etc/letsencrypt/live/librenms.example.io/fullchain.pem;
        ssl_certificate_key       /etc/letsencrypt/live/librenms.example.io/privkey.pem;

        ssl_session_cache  builtin:1000  shared:SSL:10m;
        ssl_protocols TLSv1.2;
        ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
        ssl_prefer_server_ciphers on;

     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/php-fpm-librenms.sock;
      fastcgi_split_path_info ^(.+\.php)(/.+)$;
      include fastcgi.conf;
     }
     location ~ /\.(?!well-known).* {
      deny all;
     }
    }

    이제 구성을 저장하고 종료하십시오.

    2. 다음으로 새 가상 호스트 librenms를 활성화하고 다음 명령을 사용하여 nginx 구성을 확인합니다.

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

    구성이 올바르면 test is successful과 같은 출력 메시지가 표시됩니다.

    3. 마지막으로 nginx 서비스를 다시 시작하여 새 구성을 적용합니다.

    sudo systemctl restart nginx

    이제 LibreNMS용 Nginx 서버 블록 구성을 완료했습니다. LibreNMS 설치를 시작할 준비가 되었습니다.

    LibreNMS 설치 시작

    LibreNMS 설치를 시작하려면 웹 브라우저를 열고 주소 표시줄에 LibreNMS 도메인 이름을 입력하십시오.

    1. LibreNMS 사전 설치 확인이 표시됩니다. 모든 확인 상태 표시가 녹색인지 확인한 다음 아이콘 데이터베이스를 클릭하여 계속하십시오.

    2. 데이터베이스, 사용자 및 암호를 입력합니다. 그런 다음 자격 증명 확인 버튼을 클릭합니다.

    이렇게 하면 MariaDB 데이터베이스 및 사용자에 대한 확인이 수행됩니다. 성공하면 데이터베이스 자격 증명에 녹색 표시가 나타납니다.

    3. 이제 Build Database 버튼을 클릭하여 LibreNMS용 데이터베이스 스키마를 가져옵니다.

    데이터베이스 구성이 완료되면 데이터베이스 자격 증명 섹션과 데이터베이스 구축 섹션이 모두 녹색으로 표시되는지 확인하십시오.

    4. 계속하려면 키 아이콘을 클릭하십시오.

    LibreNMS 관리 사용자를 생성하려면 새 사용자, 비밀번호 및 이메일 주소를 입력하십시오.

    사용자 추가 버튼을 클릭합니다.

    관리자 사용자가 생성되면 아래와 같이 페이지에 사용자 관리자가 표시됩니다.

    5. 표시 아이콘을 클릭하면 설치가 완료됩니다. 아래는 얻을 수 있는 결과입니다.

    LibreNMS 설치를 완료하려면 아래와 같이 LibreNMS 유효성 검사 페이지를 엽니다.

    6. 그러면 LibreNMS 로그인 페이지로 리디렉션됩니다.

    관리자 사용자와 암호를 입력한 다음 로그인 버튼을 클릭합니다.

    7. LibreNMS 유효성 검사 페이지에서 아래와 같은 몇 가지 오류가 표시됩니다.

    다른 오류가 있을 수 있지만 LibreNMS 확인 페이지에서 오류에 대한 솔루션을 제공합니다.

    8. 다음은 설치 시 발생하는 몇 가지 오류와 해결 방법입니다.

    - 데이터베이스 시간대 수정

    루트 사용자를 사용하여 MariaDB 셸에 로그인합니다.

    mysql -u root -p

    현재 데이터베이스를 librenms로 변경합니다.

    use librenms;

    이제 다음 쿼리를 실행하여 데이터베이스 시간대 오류를 수정하십시오.

    SET TIME_ZONE='+00:00';
    ALTER TABLE `notifications` CHANGE `datetime` `datetime` timestamp NOT NULL DEFAULT '1970-01-02 00:00:00' ;
    ALTER TABLE `users` CHANGE `created_at` `created_at` timestamp NOT NULL DEFAULT '1970-01-02 00:00:01' ;

    - 시스템 오류 수정

    다음 명령을 사용하여 이진 명령 LibreNMS lnms를 /usr/bin 디렉토리에 추가합니다.

    sudo ln -s /opt/librenms/lnms /usr/bin/lnms

    lnms 명령에 대해 bash 완료를 활성화합니다.

    sudo cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/

    마지막으로 LibreNMS의 logrotate 구성을 /etc/logrotate.d/ 디렉토리에 복사합니다.

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

    9. LibreNMS 오류를 수정한 후 LibreNMS 유효성 검사 페이지로 돌아가서 페이지를 다시 로드합니다.

    이제 모든 상태가 정상인지 확인하십시오.

    10. 개요 메뉴를 클릭하여 대시보드를 표시합니다.

    이제 Debian 11 Bullseye에서 LibreNMS 설치를 완료했습니다.

    결론

    축하합니다! 최신 Debian 11 Bullseye에 Nginx, PHP-FPM 및 MariaDB 데이터베이스와 함께 LibreNMS 모니터링 도구를 성공적으로 설치했습니다. 또한 사용자 정의 PHP-FPM 풀을 생성하고 LibreNMS 설치의 일부 오류를 수정하는 방법을 배웠습니다.

    다음 단계에서는 모니터링할 호스트를 LibreNMS 모니터링 도구에 추가하는 방법을 배웁니다.