웹사이트 검색

LibreNMS - 완전한 기능을 갖춘 Linux용 네트워크 모니터링 도구


LibreNMS는 SNMP 프로토콜을 사용하는 강력하고 기능이 풍부한 자동 검색 PHP 기반 네트워크 모니터링 시스템인 오픈 소스입니다. Linux, FreeBSD를 포함한 광범위한 운영 체제는 물론 Cisco, Juniper, Brocade, Foundry, HP 등을 포함한 네트워크 장치를 지원합니다.

LibreNMS 기능:

  1. CDP, FDP, LLDP, OSPF, BGP, SNMP 및 ARP 프로토콜을 사용하여 전체 네트워크를 자동 검색합니다.
  2. 사용자 정의 가능한 대시보드가 포함된 모바일 친화적인 웹 UI가 있습니다.
  3. Unix 에이전트를 지원합니다.
  4. 네트워크 확장을 위한 수평 확장을 지원합니다.
  5. 매우 유연하고 사용자 정의 가능한 경고 시스템을 지원합니다. 이메일, IRC, Slack 등을 통해 알림을 보냅니다.
  6. 시스템에서 데이터를 관리, 그래프화 및 검색하기 위한 API를 지원합니다.
  7. 트래픽 과금 시스템을 제공합니다.
  8. 핵심 기능을 제공하는 Android 및 iOS 앱도 지원합니다.
  9. NfSen, Collectd, SmokePing, RANCID 및 Oxidized와의 통합을 지원합니다.
  10. MySQL, HTTP, LDAP, Radius 및 Active Directory와 같은 다양한 인증 방법을 지원합니다.
  11. 자동 업데이트 및 기타 여러 기능을 허용합니다.

Linux 시스템에 LibreNMS를 설치하기 전에 온라인 데모를 사용해 볼 수 있습니다.

Demo URL: https://demo.librenms.org/
Username: demo
Password: demo

테스트 환경:

  1. LEMP 스택이 포함된 Ubuntu 16.04
  2. LEMP 스택을 갖춘 CentOS 7

이 튜토리얼에서는 새로 설치된 Ubuntu 또는 CentOS Linux에 LibreNMS 네트워크 모니터링 도구를 설치하는 방법을 알아봅니다(동일한 지침은 에서도 작동함). >DebianRHEL 기반 배포판).

참고: 이 문서의 모든 지침은 루트 사용자로 실행해야 합니다. 그렇지 않은 경우 sudo 명령을 사용하여 루트를 얻으세요. 사용자 권한.

1단계: 필수 패키지 설치

1. 먼저 표시된 대로 기본 패키지 관리자를 사용하여 필요한 모든 패키지를 설치하여 시작하세요.

우분투/데비안에서

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, mariadbsnmp< 서비스가 시작되고 부팅 시 자동 시작되도록 활성화됩니다(일반적으로 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. 다음으로 useradd 명령을 사용하여 librenms라는 시스템 사용자를 만듭니다. 여기서 -M 플래그는 사용자의 홈 디렉토리 생성을 비활성화하고 -r는 시스템 계정 생성을 활성화합니다. 그런 다음 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. 그런 다음 그림과 같이 composer 명령을 통해 LibreNMS를 설치합니다.

------------ 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 엄격 모드를 비활성화합니다(MySQL 엄격 모드와의 호환성은 아직 추가되지 않음).

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.inidate.timezone을 현재 시간대로 설정합니다(예: '아프리카/캄팔라) ”, 다음 스크린샷과 같습니다.

------------ 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에 액세스하려면 librenms에 대한 Nginx 서버 블록을 구성해야 합니다. 표시된 대로 .conf 파일을 만듭니다.

sudo vim /etc/nginx/conf.d/librenms.conf     [On Debian/Ubuntu]
vi /etc/nginx/conf.d/librenms.conf           [On CentOS/RHEL]         

다음 config를 추가하고 필요에 따라 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정책 도구를 설치하고 >컨텍스트는 다음 명령을 사용하여 LibreNMS에 필요합니다.

------------ 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단계: Cron 생성 및 Logrotate 구성

20. 이제 아래 명령을 실행하여 LibreNMS에 대한 크론 작업을 설정하세요.

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

21. 다음으로 모든 LibreNMS 로그는 /opt/librenms/logs에 기록됩니다. 이러한 로그가 자동 순환되도록 구성해야 할 수 있습니다 , 다음과 같이 제공된 logrotate 구성 파일을 사용합니다.

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

이 주소가 로컬 시스템에서 작동하려면 라이브로 전환하기 전에 로컬 도메인 확인 또는 테스트 목적으로 호스트 파일(/etc/hosts)을 사용하여 로컬 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로 이동하세요. 장치 추가 후 홈페이지로 이동하여 다양한 대시보드를 추가할 수 있습니다.

그게 다야! https://docs.librenms.org/의 LibreNMS 문서에서 설치 및 설정을 포함한 자세한 정보를 찾을 수 있습니다.

LibreNMS는 다양한 네트워크 하드웨어를 지원하는 완전한 기능을 갖춘 네트워크 모니터링 시스템입니다. 이것이 명확한 설치 가이드였기를 바랍니다. 질문이 있는 경우 아래 피드백 양식을 통해 문의해 주세요.