웹사이트 검색

Ubuntu 22.04에서 Nginx와 함께 LibreNMS를 설치하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • 우분투 16.04(Xenial Xerus)

이 페이지에서

  1. 전제 조건
  2. 시작하기\n
  3. Nginx, PHP 및 MariaDB 서버 설치
  4. LibreNMS 데이터베이스 생성
  5. LibreNMS 설치 및 구성
  6. LibreNMS용 Nginx 가상 호스트 생성\n
  7. LibreNMS 웹 인터페이스 액세스
  8. 결론

LibreNMS는 Linux 기반 운영 체제를 위한 강력한 무료 오픈 소스 네트워크 모니터링 도구입니다. 웹 브라우저를 통해 Cisco, Juniper, Foundry, FreeBSD, Brocade 등을 포함한 모든 주요 운영 체제와 네트워크 장치를 모니터링할 수 있습니다. LibreNMS는 SNMP, ARP, CDP, FDP, LLDP, OSPF 및 BGP와 같은 여러 네트워크 프로토콜을 사용하여 모든 네트워크 운영 체제 및 장치를 자동으로 검색합니다. 자동 검색, API 액세스, 사용자 정의 가능한 경고, 자동 업데이트 등을 포함한 다양한 기능을 제공합니다.

이 튜토리얼에서는 Ubuntu 22.04에 LibreNMS를 설치하는 방법에 대한 단계별 지침을 보여줍니다.

전제 조건

  • Ubuntu 22.04를 실행하는 서버.\n
  • 서버에 루트 암호가 구성되어 있습니다.\n

시작하기

먼저 시스템 패키지를 최신 버전으로 업데이트하는 것이 좋습니다. 다음 명령으로 수행할 수 있습니다.

apt-get update -y

모든 패키지를 업데이트한 후 다음 명령을 사용하여 LibreNMS에 필요한 모든 종속성을 설치합니다.

apt-get install rrdtool whois fping imagemagick graphviz mtr-tiny nmap python3-mysqldb snmp snmpd python3-pip python3-memcache mtr-tiny acl unzip git curl wget -y

모든 종속성이 설치되면 다음 단계로 진행할 수 있습니다.

Nginx, PHP 및 MariaDB 서버 설치

다음으로 서버에 Nginx 서버, MariaDB 서버, PHP 및 기타 PHP 확장을 설치해야 합니다. php fastcgi 프로세스 관리자(PHP-FPM)를 사용합니다. 다음 명령을 실행하여 모두 설치할 수 있습니다.

apt-get install nginx mariadb-server php php-pear php-cgi php-common php-curl php-mbstring php-gd php-mysql php-bcmath php-imap php-json php-xml php-snmp php-fpm php-zip -y

모든 패키지를 설치한 후 php.ini 파일에서 시간대를 설정해야 합니다.

nano /etc/php/8.1/fpm/php.ini
nano /etc/php/8.1/cli/php.ini

아래와 같이 시스템 시간대를 정의합니다.

date.timezone = UTC

완료되면 conf 파일을 저장하고 닫습니다. 그런 다음 PHP-FPM 서비스를 다시 시작하여 변경 사항을 적용합니다.

systemctl restart php8.1-fpm

완료되면 다음 단계로 진행할 수 있습니다.

LibreNMS 데이터베이스 생성

다음으로 LibreNMS용 데이터베이스와 사용자를 생성해야 합니다.

먼저 다음 명령을 사용하여 MariaDB 셸에 로그인합니다.

mysql

로그인 후 다음 명령을 사용하여 데이터베이스와 사용자를 생성합니다.

MariaDB [(none)]> create database librenmsdb CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> grant all privileges on librenmsdb.* to IDENTIFIED by "password";

그런 다음 권한을 플러시하고 다음 명령을 사용하여 MariaDB 셸을 종료합니다.

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

다음으로 MariaDB 구성 파일을 편집하고 몇 가지 권장 설정을 수정합니다.

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

[mysqld] 섹션 안에 다음 줄을 추가합니다.

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

파일을 저장하고 닫은 다음 MariaDB 서비스를 다시 시작하여 변경 사항을 적용합니다.

systemctl restart mariadb

이 시점에서 MariaDB가 구성되었습니다. 이제 다음 단계를 진행할 수 있습니다.

LibreNMS 설치 및 구성

먼저 LibreNMS 전용 사용자를 생성해야 합니다. 다음 명령으로 추가할 수 있습니다.

useradd -r -M -d /opt/librenms librenms

다음으로 다음 명령을 사용하여 librenms 사용자를 www-data 그룹에 추가합니다.

usermod -a -G librenms www-data

다음으로 디렉터리를 /opt로 변경하고 다음 명령을 사용하여 LibreNMS의 최신 버전을 다운로드합니다.

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

다음으로 다음 명령을 사용하여 LibreNMS에 대한 로그 파일을 만듭니다.

touch /opt/librenms/logs/librenms.log

그런 다음 다음 명령을 사용하여 SNMP 샘플 구성 파일을 복사합니다.

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

다음으로 snmpd.conf 파일을 편집합니다.

nano /etc/snmp/snmpd.conf

다음 줄을 찾으십시오.

com2sec readonly  default RANDOMSTRINGGOESHERE

그리고 다음 줄로 교체했습니다.

com2sec readonly  default mysnmpserverkey        

파일을 저장하고 닫은 다음 SNMP 배포 바이너리를 다운로드하고 원하는 위치에 복사합니다.

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

그런 다음 SNMP 서비스를 다시 시작하여 변경 사항을 적용합니다.

systemctl restart snmpd

다음으로 LibreNMS cron 및 logrotate 파일을 원하는 위치에 복사해야 합니다. 다음 명령으로 복사할 수 있습니다.

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

다음으로 디렉터리를 librenms로 변경하고 다음 명령을 사용하여 필요한 종속성을 설치합니다.

cd /opt/librenms
./scripts/composer_wrapper.php install --no-dev

모든 종속성이 설치되면 librenms 디렉토리의 소유권을 변경하고 다음 명령을 사용하여 필요한 권한을 부여하십시오.

chown -R www-data:librenms /opt/librenms
chmod -R 775 /opt/librenms
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용 Nginx 가상 호스트 생성

다음으로 LibreNMS용 Nginx 가상 호스트 구성 파일을 생성해야 합니다. 다음 명령으로 만들 수 있습니다.

nano /etc/nginx/conf.d/librenms.conf

다음 줄을 추가합니다.

server {
 listen      80;
 server_name librenms.example.com;
 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 /api/v0 {
  try_files $uri $uri/ /api_v0.php?$query_string;
 }
 location ~ \.php {
  include fastcgi.conf;
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
 }
 location ~ /\.ht {
  deny all;
 }
}

파일을 저장하고 닫은 후 다음 명령을 사용하여 Nginx에서 구문 오류(nginx 오류)를 확인합니다.

nginx -t

다음 출력이 표시되어야 합니다.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

또한 php8.1-fpm이 시작되지 않았음을 의미할 수 있는 "librenms 502 잘못된 게이트웨이"가 발생하지 않도록 PHP를 한 번 다시 시작하려고 합니다.

systemctl php8.1-fpm restart

확실하게 하기 위해 Apache2가 시스템에 설치된 경우를 대비하여 명령을 실행하여 Apache2를 중지합니다. 따라서 다음 명령이 실패하면 Nginx만 의도한 대로 실행 중이라는 의미이므로 완벽하게 괜찮습니다.

systemctl stop apache2

이제 Nginx 서비스를 다시 시작하여 변경 사항을 적용합니다.

systemctl restart nginx

다음 명령을 사용하여 Nginx 서비스 상태를 확인할 수도 있습니다.

systemctl status nginx

다음과 같은 결과가 표시되어야 합니다.

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-07-02 08:35:53 UTC; 8s ago
       Docs: man:nginx(8)
    Process: 49538 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 49539 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 49543 (nginx)
      Tasks: 3 (limit: 4579)
     Memory: 3.3M
        CPU: 43ms
     CGroup: /system.slice/nginx.service
             ??49543 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??49544 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??49545 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Jul 02 08:35:53 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 02 08:35:53 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.

완료되면 다음 단계로 진행할 수 있습니다.

LibreNMS 웹 인터페이스에 액세스

이제 웹 브라우저를 열고 URL http://librenms.example.com을 입력하여 LibreNMS에 액세스하십시오. 사전 설치 확인 페이지로 리디렉션됩니다.

필요한 확장이 모두 설치되어 있는지 확인한 다음 데이터베이스 설정을 클릭하십시오. 다음 페이지가 표시됩니다.

데이터베이스 사용자 이름, 데이터베이스 이름, 암호를 제공하고 자격 증명 확인 버튼을 클릭합니다. 성공하면 다음 페이지가 표시됩니다.

이제 데이터베이스 구축 버튼을 클릭하십시오. 다음 페이지가 표시됩니다.

그런 다음 관리자 사용자 생성 버튼을 클릭합니다. 다음 페이지가 표시됩니다.

관리자 사용자 이름, 이메일, 비밀번호를 제공하고 사용자 추가 버튼을 클릭합니다. 다음 페이지가 표시됩니다.

그런 다음 설치 완료 버튼을 클릭하십시오. 다음 페이지가 표시됩니다.

그런 다음 "설치 유효성 검사"를 클릭합니다. LibreNMS 로그인 페이지가 표시됩니다.

LibreNMS 관리자 사용자 이름, 비밀번호를 제공하고 로그인 버튼을 클릭합니다. LibreNMS 대시보드가 표시됩니다.

결론

축하합니다! Ubuntu 22.04 서버에 LibreNMS를 성공적으로 설치하고 구성했습니다. 이제 LibreNMS 대시보드에서 원격 서버 또는 네트워크 장치를 추가하고 웹 브라우저를 통해 모니터링을 시작할 수 있습니다. 궁금한 점이 있으면 언제든지 문의해 주세요.