LibreNMS - Täysin varusteltu verkonvalvontatyökalu Linuxille


LibreNMS on avoimen lähdekoodin, tehokas ja monipuolinen automaattisesti löytävä PHP-pohjainen verkonvalvontajärjestelmä, joka käyttää SNMP-protokollaa. Se tukee laajaa valikoimaa käyttöjärjestelmiä, mukaan lukien Linux, FreeBSD, sekä verkkolaitteet, kuten Cisco, Juniper, Brocade, Foundry, HP ja monet muut.

LibreNMS-ominaisuudet:

  1. Se löytää automaattisesti koko verkon käyttämällä näitä protokollia: CDP, FDP, LLDP, OSPF, BGP, SNMP ja ARP.
  2. Siinä on mobiiliystävällinen verkkokäyttöliittymä muokattavissa olevilla kojelaudoilla.
  3. Tukee Unix-agenttia.
  4. Tukee vaakasuuntaista skaalausta laajentaaksesi verkkosi kanssa.
  5. Tukee erittäin joustavaa ja muokattavissa olevaa hälytysjärjestelmää; lähettää ilmoituksia sähköpostitse, irc:llä, slackilla ja muilla.
  6. Tukee sovellusliittymää tietojen hallintaan, kuvaamiseen ja tietojen hakemiseen järjestelmästäsi.
  7. Tarjoaa liikenteen laskutusjärjestelmän.
  8. Tukee myös Android- ja iOS-sovelluksia, jotka tarjoavat ydintoimintoja.
  9. Tukee integraatiota NfSenin, kerätyn, SmokePingin, RANCIDin ja Oxidizedin kanssa.
  10. Tukee useita todennusmenetelmiä, kuten MySQL, HTTP, LDAP, Radius ja Active Directory.
  11. Mahdollistaa automaattisen päivityksen ja monia muita ominaisuuksia.

Saatavilla on online-demo, jota voit kokeilla ennen LibreNMS:n asentamista Linux-järjestelmiin.

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

Testiympäristössä:

  1. Ubuntu 16.04 LEMP Stackilla
  2. CentOS 7 LEMP Stackilla

Tässä opetusohjelmassa opimme asentamaan LibreNMS Network Monitoring Toolin juuri asennettuun Ubuntuun tai CentOS Linuxiin (samat ohjeet toimivat myös >Debian- ja RHEL-pohjaiset jakelut).

HUOMAA: Kaikki nämä tämän artikkelin ohjeet tulee suorittaa root-käyttäjänä. Jos et ole, käytä sudo-komentoa päästäksesi pääkäyttäjänä. käyttäjän oikeudet.

Vaihe 1: Asenna tarvittavat paketit

1. Aloita asentamalla ensin kaikki tarvittavat paketit käyttämällä oletuspaketinhallintaa kuvan mukaisesti.

Ubuntussa/Debianissa

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:ssä

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. Kun kaikki paketit on asennettu, nginx, php-fpm, mariadb ja snmp<-palvelut käynnistetään ja ne käynnistyvät automaattisesti käynnistyksen yhteydessä (tämä pätee yleensä Ubuntuun), muuten voit käynnistää ja ottaa ne käyttöön suorittamalla alla olevat komennot.

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

Vaihe 2: Asenna LibreNMS-valvontatyökalu

3. Luo seuraavaksi järjestelmän käyttäjä nimeltä librenms useradd-komennolla. jossa -M-merkki estää käyttäjän kotihakemiston luomisen ja -r mahdollistaa järjestelmätilin luomisen. Lisää sitten librenms-käyttäjä ryhmään www-data (Ubuntussa) tai nginx () CentOS) seuraavasti.

------------ 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. Asenna sitten LibreNMS composer-komennolla kuvan mukaisesti.

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

Vaihe 3: Luo LibreNMS-tietokanta

5. Ennen kuin voit aloittaa MariaDB-palvelimen käytön, sinun on suojattava asennuksesi ja suoritettava binääripaketissa oleva suojausskripti. Se pyytää sinua asettamaan pääkäyttäjän salasanan, poistamaan nimettömät käyttäjät, poistamaan pääkäyttäjän kirjautumisen etänä ja poistamaan testitietokannan.

Voit käynnistää komentosarjan antamalla alla olevan komennon ja vastaamalla kaikkiin kysymyksiin kyllä/y.

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

6. Kirjaudu sitten sisään MariaDB-tietokantaan luodaksesi tietokanta LibreNMS:lle (muista käyttää vahvaa/suojattua salasanaa tuotantoympäristössä).

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. Poista tämän jälkeen MySQL-tiukka tila käytöstä toistaiseksi (yhteensopivuus MySQL:n tiukan tilan kanssa ei ole vielä lisätty).

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

Lisää [mysqld]-osioon.

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

Käynnistä sitten tietokantapalvelin uudelleen tehdäksesi muutokset.

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

Vaihe 4: Määritä ja käynnistä PHP-FPM

8. Aseta seuraavaksi date.timezone -kenttään php.ini nykyinen aikavyöhyke, esimerkiksi "Afrikka/Kampala". ”, kuten seuraavassa kuvakaappauksessa näkyy.

------------ 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. Ota seuraavaksi käyttöön mcrypt PHP-moduuli Ubuntussa ja käynnistä php-fpm uudelleen kuvan osoittamalla tavalla.

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

10. CentOS/RHEL:ssä sinun on tehtävä seuraavat muutokset php-fpm-määritystiedostoon.

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

Tee seuraavat muutokset.

;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. Käynnistä php-fpm-palvelu uudelleen kuvan mukaisesti.

systemctl restart php-fpm

Vaihe 5: Määritä Nginx LibreNMS:ää varten

12. Tässä vaiheessa sinun on määritettävä Nginx-palvelinlohko librenmsille, jotta voit käyttää verkkokäyttöliittymää. Luo sille .conf-tiedosto kuvan mukaisesti.

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

Lisää seuraava config, muokkaa server_name-osoitetta tarpeen mukaan.

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. Tallenna sitten ja poistu tiedostosta. Poista myös oletuspalvelinlohkokokoonpano ja käynnistä Nginx-palvelin uudelleen.

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

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

HUOMAA: CentOS/RHEL:ssä sinun on poistettava oletussivusto-osio käytöstä, jos tämä on ainoa sivusto, jota isännöit. Poista palvelinosio /etc/nginx/nginx.conf-tiedostosta.

14. Myös CentOS/RHEL-käyttöjärjestelmässä sinun on asennettava SELinuxin käytäntötyökalu ja määritettävä >kontekstit, joita LibreNMS tarvitsee seuraavien komentojen avulla.

------------ 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. Salli fping luomalla tiedosto http_fping.tt, jossa on seuraava sisältö.

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. Suorita sitten nämä komennot.

------------ 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. Jos käytät palomuuria CentOS/RHEL:ssä, ota HTTP/HTTPS-käyttö käyttöön palomuurin kautta.

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

Vaihe 6: Määritä SNMPD LibreNMS:ää varten

18. Käytä nyt snmp-mallimääritystä määritystiedoston luomiseen ja avaa se muokkausta varten seuraavasti.

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

Etsi merkkijono RANDOMSTRINGGOESHERE ja muuta se omaksi yhteisön merkkijonoksi kuvakaappauksen mukaisesti.

19. Lataa seuraavaksi järjestelmääsi shell-skripti, joka auttaa tunnistamaan, mikä käyttöjärjestelmä ja jos se on Linux, se havaitsee mitä Linux-jakelua käytät:

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

Vaihe 7: Luo Cron ja määritä Logrotate

20. Suorita nyt alla oleva komento määrittääksesi cron-työn LibreNMS:lle.

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

21. Seuraavaksi kaikki LibreNMS-lokit tallennetaan kansioon /opt/librenms/logs. Sinun on ehkä määritettävä nämä lokit kierrettäväksi automaattisesti. , käyttämällä toimitettua logrotate-asetustiedostoa, kuten tämä.

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

Aseta sitten asianmukaiset oikeudet LibreNMS-asennuksen juurihakemistoon ja lokitiedostoihin.

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

Vaihe 8: Avaa LibreNMS Web Installer

22. Käytä seuraavaksi verkkoasennusohjelmaa seuraavalla URL-osoitteella ja seuraa näytön ohjeita.

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

Jotta tämä osoite toimisi paikallisessa koneessa, sinun on määritettävä paikallinen DNS käyttämällä hosts-tiedostoa (/etc/hosts) paikallista toimialueen ratkaisua tai testausta varten ennen julkaisemista.

192.168.43.31 tecmint.lan
192.168.43.31 librenms.tecmint.lan

23. Näet asennuksen tervetulosivun seuraavan kuvakaappauksen mukaisesti. Jatka napsauttamalla Seuraava vaihe.

24. Anna sitten LibreNMS-tietokannan asetukset (tietokannan isäntä, portti, käyttäjänimi ja salasana) ja jatka napsauttamalla Seuraava vaihe.

25. Verkkoasennusohjelma alkaa nyt tuoda MySQL-tietokantaa. Tämä kestää jonkin aikaa. Huomaa, että prosessi yrittää keskeyttää tietyissä kohdissa. Napsauta Yritä uudelleen jatkaaksesi tuontiprosessia.

26. Kun tietokannan tuonti on valmis, sinun pitäisi nähdä viesti "Tietokanta on ajan tasalla!", kuten alla olevassa kuvakaappauksessa näkyy. Napsauta sitten Siirry Lisää käyttäjä jatkaaksesi.

27. Lisää seuraavaksi LibreNMS-käyttäjä, määritä käyttäjänimi, salasana ja sähköpostiosoite ja napsauta Lisää käyttäjä tehdäksesi muutokset.

28. Napsauta nyt Luo LibreNMS-kokoonpano järjestelmällesi napsauttamalla Generate Config.

29. Kun määritys on luotu, kuten edellisessä kuvakaappauksessa näytettiin, kopioi se ja tallenna se asennuksesi juurihakemistoon tiedostoon nimeltä /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. Tallenna ja sulje tiedosto. Palaa sitten verkkoasennusohjelmaan jatkaaksesi asennusta napsauttamalla Lopeta asennus.

31. Nyt LibreNMS-asennus on valmis. Voit napsauttaa vahvistaa asennuksesi ja korjaa ongelmat. Kirjautumissivun pitäisi ilmestyä.

32. Anna seuraavaksi käyttäjätietosi päästäksesi vahvistussivulle.

33. Asennuksen vahvistusprosessissa LibreNMS on havainnut kaksi ongelmaa, joista toinen on se, että laitteita ei ole lisätty (tämä on toistaiseksi varoitus), ja toiseksi meillä on ole asettanut asianmukaisia oikeuksia manuaalisesti lisätylle määritystiedostolle (/opt/librenms/config.php), kuten alla olevassa kuvakaappauksessa näkyy.

Suorita nyt seuraava komento asettaaksesi oikeat oikeudet asetustiedostoon.

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

34. Voit lisätä laitteita osoitteessa http://librenms.tecmint.lan/addhost. Laitteiden lisäämisen jälkeen voit siirtyä kotisivulle ja lisätä erilaisia hallintapaneeleja.

Se siitä! Löydät lisätietoja, mukaan lukien asennuksen ja asennuksen, LibreNMS-dokumentaatiosta osoitteesta https://docs.librenms.org/.

LibreNMS on täysin varusteltu verkonvalvontajärjestelmä, joka tukee useita verkkolaitteita. Toivomme, että tämä oli selkeä asennusopas. Jos sinulla on kysyttävää, ota meihin yhteyttä alla olevan palautelomakkeen kautta.