LibreNMS - pilnībā aprīkots tīkla uzraudzības rīks Linux


LibreNMS ir atvērtā koda, jaudīga un ar funkcijām bagāta, automātiski atklājoša PHP tīkla uzraudzības sistēma, kas izmanto SNMP protokolu. Tas atbalsta plašu operētājsistēmu klāstu, ieskaitot Linux, FreeBSD, kā arī tīkla ierīces, tostarp Cisco, Juniper, Brocade, Foundry, HP un daudzas citas.

  1. Tas automātiski atklāj visu tīklu, izmantojot šādus protokolus: CDP, FDP, LLDP, OSPF, BGP, SNMP un ARP.
  2. Tam ir mobilajām ierīcēm draudzīga tīmekļa lietotāja saskarne ar pielāgojamiem informācijas paneļiem.
  3. Atbalsta Unix aģentu.
  4. Atbalsta horizontālo mērogošanu, lai paplašinātu jūsu tīklā.
  5. atbalsta ļoti elastīgu un pielāgojamu brīdināšanas sistēmu; nosūta paziņojumus pa e-pastu, irc, slack un citiem.
  6. Atbalsta API, lai pārvaldītu, attēlotu un izgūtu datus no jūsu sistēmas.
  7. Piedāvā datplūsmas norēķinu sistēmu.
  8. Atbalsta arī Android un iOS lietotnes, kas piedāvā galvenās funkcijas.
  9. Atbalsta integrāciju ar NfSen, collectd, SmokePing, RANCID un Oxidized.
  10. Atbalsta vairākas autentifikācijas metodes, piemēram, MySQL, HTTP, LDAP, Radius un Active Directory.
  11. Ļauj veikt automātisku atjaunināšanu un daudzas citas funkcijas.

Pirms LibreNMS instalēšanas Linux sistēmās varat izmēģināt tiešsaistes demonstrāciju.

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

  1. Ubuntu 16.04 ar LEMP skursteni
  2. CentOS 7 ar LEMP skursteni

Šajā apmācībā mēs uzzināsim, kā instalēt LibreNMS tīkla uzraudzības rīku svaigi instalētā Ubuntu vai CentOS Linux (tās pašas instrukcijas darbojas arī uz Debian un RHEL balstītiem izplatījumiem).

PIEZĪME. Visi šie šī raksta norādījumi ir jāizpilda kā root lietotājs. Ja jūs tāds neesat, izmantojiet komandu sudo, lai iegūtu root lietotāja privilēģijas.

1. darbība: instalējiet nepieciešamās paketes

1. Vispirms sāciet visu nepieciešamo pakotņu instalēšanu, izmantojot noklusējuma pakotņu pārvaldnieku, kā parādīts.

$ 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
# 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. Kad visas paketes ir instalētas, tiks palaisti nginx, php-fpm, mariadb un snmp pakalpojumi, kas ļaus automātiski startēt sāknēšanas laikā (tas parasti notiek ar Ubuntu), pretējā gadījumā varat palaist zemāk esošās komandas sāciet un iespējojiet tos.

------------ 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. darbība: instalējiet LibreNMS uzraudzības rīku

3. Pēc tam izveidojiet sistēmas lietotāju librenms ar komandu useradd; kur -M karogs atspējo lietotāja mājas direktorijas izveidi un -r ļauj izveidot sistēmas kontu. Pēc tam pievienojiet librenms lietotāju grupai www-data (Ubuntu) vai nginx (CentOS) šādi.

------------ 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. Pēc tam instalējiet LibreNMS, izmantojot komponista komandu, kā parādīts.

------------ 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. darbība: izveidojiet LibreNMS datu bāzi

5. Pirms sākat izmantot MariaDB serveri, jums ir jānodrošina instalācija, jāpalaiž binārā pakotnē sniegtais drošības skripts. Tas prasīs iestatīt root paroli, noņemt anonīmus lietotājus, atspējot root pieteikšanos attālināti un noņemt testa datu bāzi.

Jūs varat palaist skriptu, izsniedzot zemāk esošo komandu un atbildot uz visiem jautājumiem ar yes/y .

$ sudo mysql_secure_installation   [On Debian/Ubuntu]
# mysql_secure_installation        [On CentOS/RHEL]

6. Pēc tam piesakieties MariaDB datu bāzē, lai izveidotu LibreNMS datu bāzi (atcerieties, ka ražošanas vidē jāizmanto spēcīga/droša parole).

$ 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 '[email !#@%$libre';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

7. Pēc tam pagaidām atspējojiet MySQL stingro režīmu (savietojamība ar MySQL stingro režīmu vēl nav jāpievieno).

$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf    [On Debian/Ubuntu]
# vi /etc/my.cnf        [On CentOS/RHEL]

Lūdzu, pievienojiet sadaļu [mysqld] .

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

Pēc tam restartējiet datu bāzes serveri, lai veiktu izmaiņas.

$ sudo systemctl restart mysql     [On Debian/Ubuntu]
# systemctl restart mariadb        [On CentOS/RHEL]

4. darbība: konfigurējiet un sāciet PHP-FPM

8. Pēc tam iestatiet savu date.timezone php.ini uz pašreizējo laika joslu, piemēram, „Africa/Kampala”, kā parādīts nākamajā ekrānuzņēmumā.

------------ 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. Pēc tam iespējojiet mcrypt PHP moduli Ubuntu un restartējiet php-fpm, kā parādīts.

------------ On Debian/Ubuntu ------------ 
$ sudo phpenmod mcrypt
$ sudo systemctl restart php7.0-fpm

10. Vietnē CentOS/RHEL jāveic šādas izmaiņas php-fpm konfigurācijas failā.

# vi /etc/php-fpm.d/www.conf

Veiciet šādas izmaiņas.

;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. Restartējiet pakalpojumu php-fpm, kā parādīts.

# systemctl restart php-fpm

5. darbība: konfigurējiet Nginx LibreNMS

12. Šajā darbībā jums ir jākonfigurē Nginx servera bloks librenms, lai piekļūtu tīmekļa lietotāja interfeisam. Izveidojiet tam failu .conf , kā parādīts.

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

Pievienojiet šādu konfigurāciju, pēc nepieciešamības rediģējiet servera_nosaukums .

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. Pēc tam saglabājiet un izejiet no faila. Noņemiet arī noklusējuma servera bloka konfigurāciju un restartējiet Nginx serveri.

------------ On Debian/Ubuntu ------------ 
$ sudo rm /etc/nginx/sites-enabled/default
$ sudo systemctl restart nginx

------------ On CentOS/RHEL ------------ 
# systemctl restart nginx

PIEZĪME: CentOS/RHEL jums būs jāatspējo noklusējuma vietnes sadaļa, ja šī ir vienīgā vietne, kuru mitināt. Dzēsiet servera sadaļu no faila /etc/nginx/nginx.conf.

14. Arī vietnē CentOS/RHEL ir jāinstalē politikas rīks SELinux un jākonfigurē LibreNMS nepieciešamie konteksti, izmantojot šādas komandas.

------------ 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. Atļaujiet fping, izveidojot failu http_fping.tt ar šādu saturu.

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. Pēc tam izpildiet šīs komandas.

------------ 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. Ja CentOS/RHEL izmantojat ugunsmūri, iespējojiet HTTP/HTTPS piekļuvi, izmantojot ugunsmūri.

------------ 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. darbība: konfigurējiet SNMPD LibreNMS

18. Tagad izmantojiet snmp konfigurācijas paraugu, lai izveidotu konfigurācijas failu un atvērtu to rediģēšanai šādi.

------------ 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

Atrodiet virkni RANDOMSTRINGGOESHERE un nomainiet to uz savu kopienas virkni, kā parādīts ekrānuzņēmumā.

19. Pēc tam lejupielādējiet savā sistēmā čaulas skriptu, kas palīdz noteikt, kura operētājsistēma un ja tā ir Linux, tā noteiks, kuru Linux izplatīšanu jūs izmantojat:

------------ 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. darbība: izveidojiet Cron un konfigurējiet Logrotate

20. Tagad izpildiet zemāk esošo komandu, lai iestatītu Crre darbu LibreNMS.

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

21. Pēc tam visi LibreNMS žurnāli tiek ierakstīti mapē/opt/librenms/logs, iespējams, šie žurnāli jākonfigurē automātiski pagriežami, izmantojot šādu logrotate config failu.

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

Pēc tam LibreNMS instalācijas saknes direktorijā un žurnāla failos iestatiet atbilstošās atļaujas.

------------ 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. darbība: piekļūstiet LibreNMS Web Installer

22. Pēc tam izmantojiet šo URL, lai piekļūtu tīmekļa instalētājam, un izpildiet ekrānā redzamos norādījumus.

http://librenms.tecmint.lan/install.php

Lai šī adrese darbotos lokālajā mašīnā, pirms sākat tiešsaistē, vietējā domēna izšķiršanas vai testēšanas nolūkos ir jāiestata vietējais DNS, izmantojot resursdatora failu (/etc/hosts ).

192.168.43.31 tecmint.lan
192.168.43.31 librenms.tecmint.lan

23. Jūs redzēsiet instalēšanas apsveikuma lapu, kā parādīts nākamajā ekrānuzņēmumā, noklikšķiniet uz Next Stage, lai turpinātu.

24. Pēc tam ievadiet LibreNMS datu bāzes iestatījumus (datu bāzes resursdators, ports, lietotājvārds un lietotāja parole) un noklikšķiniet uz Next Stage, lai turpinātu.

25. Tīmekļa instalētājs tagad sāks importēt MySQL datu bāzi, tas prasīs zināmu laiku. Ņemiet vērā, ka process mēģinās pauzēt noteiktos punktos, vienkārši noklikšķiniet uz Atkārtoti mēģināt turpināt importēšanas procesu.

26. Kad datu bāzes importēšana ir pabeigta, jums vajadzētu redzēt ziņojumu “Datu bāze ir atjaunināta!”, Kā parādīts zemāk esošajā ekrānuzņēmumā. Pēc tam noklikšķiniet uz Goto Pievienot lietotāju, lai turpinātu.

27. Pēc tam pievienojiet LibreNMS lietotāju, norādiet lietotājvārdu, paroli un e-pastu, pēc tam noklikšķiniet uz Pievienot lietotāju, lai veiktu izmaiņas.

28. Tagad noklikšķiniet uz Izveidot LibreNMS konfigurāciju savai sistēmai, noklikšķinot uz Ģenerēt konfigurāciju.

29. Kad konfigurācija ir izveidota, kā parādīts iepriekšējā ekrānuzņēmumā, nokopējiet to un saglabājiet to instalācijas saknes direktorijā failā ar nosaukumu /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'] = '[email !#@%$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. Saglabājiet un aizveriet failu. Pēc tam atgriezieties tīmekļa instalētājā, lai turpinātu instalēšanas procesu, noklikšķinot uz Pabeigt instalēšanu.

31. Tagad jūsu LibreNMS instalēšana ir pabeigta, varat noklikšķināt uz “validēt instalēšanu un novērst visas problēmas”, vajadzētu parādīties pieteikšanās lapai.

32. Pēc tam ievadiet savus lietotāja akreditācijas datus, lai piekļūtu validācijas lapai.

33. No instalēšanas validācijas procesa LibreNMS ir atklājis divus jautājumus, viens ir tas, ka ierīces nav pievienotas (pagaidām tas ir brīdinājums), otrkārt, mēs neesam iestatījuši atbilstošu atļauju konfigurācijas failā (/ opt/librenms /config.php), kas tika pievienots manuāli, kā parādīts zemāk redzamajā ekrānuzņēmumā.

Tagad izpildiet šo komandu, lai iestatīšanas failā iestatītu pareizo atļauju.

$ sudo chown -R librenms:librenms /opt/librenms/config.php 

34. Lai pievienotu ierīces, dodieties uz vietni: http://librenms.tecmint.lan/addhost. Pēc ierīču pievienošanas varat doties uz sākumlapu un pievienot dažādus informācijas paneļus.

Tieši tā! Plašāku informāciju, tostarp instalēšanu un iestatīšanu, varat atrast LibreNMS dokumentācijā vietnē https://docs.librenms.org/.

LibreNMS ir pilnībā aprīkota tīkla uzraudzības sistēma, kas atbalsta dažādu tīkla aparatūru. Mēs ceram, ka šī bija saprotama instalēšanas rokasgrāmata. Ja jums ir kādi jautājumi, sazinieties ar mums, izmantojot tālāk sniegto atsauksmju veidlapu.