LibreNMS은 SNMP 프로토콜을 사용하는 오픈 소스이며 강력하고 기능이 풍부한 PHP 기반의 자동 발견 네트워크 모니터링 시스템입니다. Cisco, Juniper, Brocade, Foundry, HP 등을 포함한 다양한 운영 체제 및 네트워크 장치를 지원합니다.
LibreNMS 특징:
- CDP, FDP, LLDP, OSPF, BGP, SNMP 및 ARP 프로토콜을 사용하여 전체 네트워크를 자동으로 검색합니다.
- 사용자 정의 대시 보드가 있는 모바일 친화적인 웹 UI를 제공합니다.
- Unix 에이전트를 지원합니다.
- 네트워크에 따라 확장할 수 있는 가로 스케일링을 지원합니다.
- 매우 유연하고 사용자 정의 가능한 경고 시스템을 지원하며 이메일, irc, slack 등을 통해 알림을 보냅니다.
- 시스템에서 데이터를 관리, 그래프 작성 및 검색하기 위한 API를 지원합니다.
- 트래픽 빌링 시스템을 제공합니다.
- 핵심 기능을 제공하는 Android 및 iOS 앱도 지원합니다.
- NfSen, collectd, SmokePing, RANCID 및 Oxidized와 통합을 지원합니다.
- MySQL, HTTP, LDAP, Radius 및 Active Directory와 같은 다중 인증 방법을 지원합니다.
- 자동 업데이트 및 기타 다양한 기능을 지원합니다.
리눅스 시스템에 설치하기 전에 시도할 수 있는 온라인 데모가 제공됩니다.LibreNMS
Demo URL: https://demo.librenms.org/ Username: demo Password: demo
테스트 환경:
이 튜토리얼에서는 새로 설치된 LibreNMS 네트워크 모니터링 도구를 Ubuntu 또는 CentOS Linux에 설치하는 방법을 배웁니다 (동일한 지침은 Debian 및 RHEL 기반 배포에도 적용됩니다).
참고: 이 문서의 모든 지침은 root 사용자로 실행해야 하며, 그렇지 않은 경우 sudo 명령어를 사용하여 root 사용자 권한을 얻으십시오.
단계 1: 필수 패키지 설치
1. 먼저 표시된대로 기본 패키지 관리자를 사용하여 모든 필수 패키지를 설치합니다.
Ubuntu/Debian에서
$ sudo apt install composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.0-cli php7.0-curl php7.0-fpm php7.0-gd php7.0-mcrypt php7.0-mysql php7.0-snmp php7.0-xml php7.0-zip python-memcache python-mysqldb rrdtool snmp snmpd whois
CentOS/RHEL에서
# yum install epel-release # rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm # yum install composer cronie fping git ImageMagick jwhois mariadb mariadb-server mtr MySQL-python net-snmp net-snmp-utils nginx nmap php72w php72w-cli php72w-common php72w-curl php72w-fpm php72w-gd php72w-mysql php72w-process php72w-snmp php72w-xml php72w-zip python-memcached rrdtool
2. 모든 패키지가 설치되면 nginx, php-fpm, mariadb 및 snmp 서비스가 시작되고 부팅 시 자동으로 시작되도록 활성화됩니다 (Ubuntu에서는 일반적으로 해당됨), 그렇지 않으면 아래 명령을 실행하여 시작 및 활성화할 수 있습니다.
------------ On Debian/Ubuntu ------------ $ sudo systemctl nginx start php7.0-fpm mysql snmp $ sudo systemctl enable nginx php7.0-fpm mysql snmp ------------ On CentOS/RHEL ------------ # systemctl nginx start php-fpm mariadb snmpd # systemctl enable nginx php-fpm mariadb snmpd
단계 2: LibreNMS 모니터링 도구 설치
3. 다음으로, -M
플래그는 사용자 홈 디렉터리 생성을 비활성화하고, -r
은 시스템 계정 생성을 가능하게 하는 useradd 명령어
로 librenms라는 시스템 사용자를 만듭니다. 그런 다음 다음과 같이 librenms 사용자를 www-data 그룹에 추가합니다 (Ubuntu의 경우) 또는 nginx 그룹에 추가합니다 (CentOS의 경우).
------------ On Debian/Ubuntu ------------ $ sudo useradd librenms -d /opt/librenms -M -r $ sudo usermod -a -G librenms www-data ------------ On CentOS/RHEL ------------ # useradd librenms -d /opt/librenms -M -r # usermod -a -G librenms nginx
4. 그런 다음 LibreNMS를 아래와 같이 composer 명령어를 사용하여 설치합니다.
------------ On Debian/Ubuntu ------------ $ cd /opt $ sudo composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master ------------ On CentOS/RHEL ------------ # cd /opt # composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master
단계 3: LibreNMS 데이터베이스 생성
5. MariaDB 서버를 사용하기 전에 설치를 보안하는 것이 필요합니다. 바이너리 패키지에서 제공하는 보안 스크립트를 실행합니다. 이 스크립트에서 루트 암호 설정, 익명 사용자 제거, 원격으로 루트 로그인 비활성화 및 테스트 데이터베이스 제거를 요청할 것입니다.
아래 명령을 사용하여 스크립트를 실행하고 모든 질문에 yes/y
로 답하십시오.
$ sudo mysql_secure_installation [On Debian/Ubuntu] # mysql_secure_installation [On CentOS/RHEL]
6. 그런 다음 MariaDB 데이터베이스에 로그인하여 LibreNMS를 위한 데이터베이스를 만듭니다 (프로덕션 환경에서 안전한/강력한 암호를 사용하세요).
$ sudo mysql -u root -p MariaDB [(none)]> CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci; MariaDB [(none)]> CREATE USER 'librenms'@'localhost' IDENTIFIED BY '=@!#@%$libre'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> exit
7. 그 후, 일단 MySQL strict 모드를 비활성화합니다 (MySQL strict 모드와의 호환성은 아직 추가되지 않았습니다).
$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf [On Debian/Ubuntu] # vi /etc/my.cnf [On CentOS/RHEL]
[mysqld]
섹션 내에서 다음을 추가하십시오.
innodb_file_per_table=1 sql-mode="" lower_case_table_names=0
그런 다음 변경 사항을 적용하려면 데이터베이스 서버를 다시 시작하십시오.
$ sudo systemctl restart mysql [On Debian/Ubuntu] # systemctl restart mariadb [On CentOS/RHEL]
단계 4: PHP-FPM 구성 및 시작
8. 다음으로, 현재 시간대에 해당하는 php.ini
에서 date.timezone을 설정하십시오. 예를 들어, 다음 스크린샷에 표시된 것처럼 “Africa/Kampala”로 설정하십시오.
------------ On Debian/Ubuntu ------------ $ sudo vim /etc/php/7.0/fpm/php.ini $ sudo vim /etc/php/7.0/cli/php.ini ------------ On CentOS/RHEL ------------ # vi /etc/php.ini

9. 다음으로, Ubuntu에서 mcrypt PHP 모듈을 활성화하고 php-fpm을 재시작하십시오. 다음과 같이 하십시오.
------------ On Debian/Ubuntu ------------ $ sudo phpenmod mcrypt $ sudo systemctl restart php7.0-fpm
10. CentOS/RHEL에서는 다음과 같이 php-fpm 구성 파일을 수정해야 합니다.
# vi /etc/php-fpm.d/www.conf
다음 변경 사항을 적용하십시오.
;user = apache user = nginx group = apache ; keep group as apache ;listen = 127.0.0.1:9000 listen = /var/run/php-fpm/php7.2-fpm.sock listen.owner = nginx listen.group = nginx listen.mode = 0660
11. 다음과 같이 php-fpm 서비스를 재시작하십시오.
# systemctl restart php-fpm
단계 5: LibreNMS를 위한 Nginx 구성
12. 이 단계에서는 웹 UI에 액세스하기 위해 Nginx 서버 블록을 librenms에 대해 구성해야 합니다. 다음과 같이 .conf
파일을 만드십시오.
$ sudo vim /etc/nginx/conf.d/librenms.conf [On Debian/Ubuntu] # vi /etc/nginx/conf.d/librenms.conf [On CentOS/RHEL]
다음 구성을 추가하고 필요에 따라 server_name
을 편집하십시오.
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/php7.0-fpm.sock; } location ~ /\.ht { deny all; } }
13. 그런 다음 파일을 저장하고 나가십시오. 또한 기본 서버 블록 구성을 제거하고 Nginx 서버를 재시작하십시오.
------------ On Debian/Ubuntu ------------ $ sudo rm /etc/nginx/sites-enabled/default $ sudo systemctl restart nginx ------------ On CentOS/RHEL ------------ # systemctl restart nginx
참고: CentOS/RHEL에서는 호스팅하는 유일한 사이트인 경우 기본 사이트 섹션을 비활성화해야 합니다. /etc/nginx/nginx.conf 파일에서 서버 섹션을 삭제하십시오.
14. 또한 CentOS/RHEL에서는 다음 명령어를 사용하여 SELinux에 필요한 컨텍스트를 설정하기 위해 정책 도구를 설치해야 합니다.
------------ On CentOS/RHEL ------------ # yum install policycoreutils-python # semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/logs(/.*)?' # semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/logs(/.*)?' # restorecon -RFvv /opt/librenms/logs/ # semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/rrd(/.*)?' # semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/rrd(/.*)?' # restorecon -RFvv /opt/librenms/rrd/ # setsebool -P httpd_can_sendmail=1 # setsebool -P httpd_execmem 1
15.다음 내용으로 파일 http_fping.tt
을 만들어 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 };
16.그런 다음 다음 명령을 실행하십시오.
------------ On CentOS/RHEL ------------ # 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
17.만약 CentOS/RHEL에서 방화벽을 사용하는 경우 방화벽을 통해 HTTP/HTTPS 액세스를 허용합니다.
------------ On CentOS/RHEL ------------ # firewall-cmd --zone public --add-service http # firewall-cmd --permanent --zone public --add-service http # firewall-cmd --zone public --add-service https # firewall-cmd --permanent --zone public --add-service https
단계 6: LibreNMS를 위해 SNMPD 구성
18.샘플 SNMP 구성을 사용하여 구성 파일을 만들고 다음과 같이 편집합니다.
------------ On Debian/Ubuntu ------------ $ sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf $ sudo vim /etc/snmp/snmpd.conf ------------ On CentOS/RHEL ------------ # cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf # vi /etc/snmp/snmpd.conf
RANDOMSTRINGGOESHERE
문자열을 찾아 다음과 같이 자체 커뮤니티 문자열로 변경합니다.

19.다음으로 시스템에서 OS 및 Linux인 경우 Linux 배포판을 감지하는 데 도움이되는 셸 스크립트를 다운로드하십시오.
------------ On Debian/Ubuntu ------------ $ sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro $ sudo chmod +x /usr/bin/distro $ sudo systemctl restart snmpd ------------ On CentOS/RHEL ------------ # curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro # chmod +x /usr/bin/distro # systemctl restart snmpd
단계 7: 크론 생성 및 로그로테이트 구성
20.다음 명령을 실행하여 LibreNMS를위한 크론 작업을 설정하십시오.
# cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
21.다음으로 모든 LibreNMS 로그는 /opt/librenms/logs에 기록되며 이러한 로그를 로그로테이트 구성 파일을 사용하여 자동으로 회전하도록 구성해야합니다.
# cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
그런 다음 LibreNMS 설치 루트 디렉토리 및 로그 파일에 적절한 권한을 설정하십시오.
------------ On Debian/Ubuntu ------------ $ sudo chown -R librenms:librenms /opt/librenms $ sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs $ sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs ------------ On CentOS/RHEL ------------ # chown -R librenms:librenms /opt/librenms # setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs # setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs
단계 8: LibreNMS 웹 설치 프로그램에 액세스
22.다음 URL을 사용하여 웹 설치 프로그램에 액세스하고 화면 지침을 따르십시오.
http://librenms.tecmint.lan/install.php
로컬 머신에서이 주소를 작동하려면 라이브로 전환하기 전에 로컬 도메인 해결 또는 테스트 목적으로 로컬 DNS를 설정해야합니다.
192.168.43.31 tecmint.lan 192.168.43.31 librenms.tecmint.lan

23. 다음 스크린 샷에 표시된 대로 설치 환영 페이지가 표시됩니다. 계속하려면 다음 단계를 클릭하십시오.

24. 그런 다음 LibreNMS 데이터베이스의 설정 (데이터베이스 호스트, 포트, 사용자 이름 및 사용자 암호)을 입력하고 다음 단계를 클릭하여 계속하십시오.

25. 웹 설치 프로그램은 이제 MySQL 데이터베이스를 가져오기 시작합니다. 이 작업은 시간이 걸릴 수 있습니다. 프로세스는 특정 지점에서 일시 중지하려고합니다. 가져 오기 프로세스를 계속하려면 재시도를 클릭하십시오.

26. 데이터베이스 가져 오기가 완료되면 아래 스크린 샷에 표시된대로 “데이터베이스가 최신 상태입니다!”라는 메시지가 표시됩니다. 그런 다음 사용자 추가로 이동를 클릭하여 계속하십시오.

27. 다음으로 LibreNMS 사용자를 추가하고 사용자 이름, 암호 및 이메일을 지정한 다음 변경 사항을 적용하려면 사용자 추가를 클릭하십시오.

28. 이제 LibreNMS 시스템의 구성을 만들려면 구성 생성을 클릭하십시오.


29. 구성이 생성되면 이전 스크린 샷에 표시된대로 복사하여 설치의 루트 디렉토리에 저장하십시오. 파일 이름은 /opt/librenms/config.php입니다.
# vi /opt/librenms/config.php
<?php ## Have a look in defaults.inc.php for examples of settings you can set here. DO NOT EDIT defaults.inc.php! ### Database config $config['db_host'] = 'localhost'; $config['db_port'] = '3306'; $config['db_user'] = 'librenms'; $config['db_pass'] = '=@!#@%$libre'; $config['db_name'] = 'librenms'; $config['db_socket'] = ''; // This is the user LibreNMS will run as //Please ensure this user is created and has the correct permissions to your install $config['user'] = 'librenms'; ### Locations - it is recommended to keep the default #$config['install_dir'] = "/opt/librenms"; ### This should *only* be set if you want to *force* a particular hostname/port ### It will prevent the web interface being usable form any other hostname #$config['base_url'] = "http://librenms.company.com"; ### Enable this to use rrdcached. Be sure rrd_dir is within the rrdcached dir ### and that your web server has permission to talk to rrdcached. #$config['rrdcached'] = "unix:/var/run/rrdcached.sock"; ### Default community $config['snmp']['community'] = array("public"); ### Authentication Model $config['auth_mechanism'] = "mysql"; # default, other options: ldap, http-auth #$config['http_auth_guest'] = "guest"; # remember to configure this user if you use http-auth ### List of RFC1918 networks to allow scanning-based discovery #$config['nets'][] = "10.0.0.0/8"; #$config['nets'][] = "172.16.0.0/12"; #$config['nets'][] = "192.168.0.0/16"; # Update configuration #$config['update_channel'] = 'release'; # uncomment to follow the monthly release channel #$config['update'] = 0; # uncomment to completely disable updates
30. 파일을 저장하고 닫습니다. 그런 다음 웹 설치 프로그램으로 돌아가 설치 완료를 클릭하여 설치 과정을 계속합니다.

31. 이제 LibreNMS 설치가 완료되었습니다. “설치를 확인하고 문제를 해결하십시오”를 클릭하여 로그인 페이지가 표시됩니다.

32. 다음으로 사용자 자격 증명을 입력하여 유효성 검사 페이지에 액세스합니다.

33. 설치 유효성 검사 과정에서 LibreNMS가 두 가지 문제를 발견했습니다. 하나는 장치가 추가되지 않았다는 것입니다(이것은 현재 경고입니다), 두 번째는 구성 파일(/opt/librenms/config.php)에 적절한 권한을 설정하지 않았다는 것입니다. 이는 아래 화면 샷에서 수동으로 추가되었습니다.

이제 다음 명령을 실행하여 구성 파일의 올바른 권한을 설정합니다.
$ sudo chown -R librenms:librenms /opt/librenms/config.php
34. 장치를 추가하려면 다음으로 이동하십시오: http://librenms.tecmint.lan/addhost. 장치를 추가한 후 홈 페이지로 이동하여 다양한 대시 보드를 추가할 수 있습니다.

그것이 전부입니다! 자세한 정보 및 설치 및 설정에 대한 자세한 내용은 LibreNMS 문서에서 확인하십시오 https://docs.librenms.org/.
LibreNMS는 다양한 네트워크 하드웨어를 지원하는 완전한 기능의 네트워크 모니터링 시스템입니다. 이것이 명쾌한 설치 안내서였기를 바랍니다. 궁금한 점이 있으시면 아래 피드백 양식을 통해 문의하십시오.
Source:
https://www.tecmint.com/install-librenms-monitoring-on-ubuntu-centos/