Vyhledávání na webu

LibreNMS - plně vybavený nástroj pro monitorování sítě pro Linux


LibreNMS je open source, výkonný a na funkce bohatý systém pro automatické zjišťování sítě založený na PHP, který používá protokol SNMP. Podporuje širokou škálu operačních systémů včetně Linuxu, FreeBSD a také síťových zařízení včetně Cisco, Juniper, Brocade, Foundry, HP a mnoha dalších.

Vlastnosti LibreNMS:

  1. Automaticky objeví celou síť pomocí těchto protokolů: CDP, FDP, LLDP, OSPF, BGP, SNMP a ARP.
  2. Má mobilní webové uživatelské rozhraní s přizpůsobitelnými řídicími panely.
  3. Podporuje unixového agenta.
  4. Podporuje horizontální škálování pro rozšíření s vaší sítí.
  5. Podporuje vysoce flexibilní a přizpůsobitelný systém varování; odesílá upozornění prostřednictvím e-mailu, irc, slack a dalších.
  6. Podporuje API pro správu, grafy a získávání dat z vašeho systému.
  7. Nabízí systém fakturace provozu.
  8. Podporuje také aplikace pro Android a iOS, které nabízejí základní funkce.
  9. Podporuje integraci s NfSen, collectd, SmokePing, RANCID a Oxidized.
  10. Podporuje více metod ověřování, jako je MySQL, HTTP, LDAP, Radius a Active Directory.
  11. Umožňuje automatické aktualizace a mnoho dalších funkcí.

Před instalací LibreNMS na systémy Linux si můžete vyzkoušet online demo.

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

Testovací prostředí:

  1. Ubuntu 16.04 s LEMP Stack
  2. CentOS 7 s LEMP Stack

V tomto tutoriálu se naučíme, jak nainstalovat LibreNMS Network Monitoring Tool na čerstvě nainstalovaný Ubuntu nebo CentOS Linux (stejné pokyny fungují také na Debian a RHEL).

POZNÁMKA: Všechny tyto pokyny v tomto článku byste měli spouštět jako root uživatel, pokud nejste, použijte k získání root příkaz sudo uživatelská oprávnění.

Krok 1: Nainstalujte požadované balíčky

1. Nejprve začněte instalací všech požadovaných balíčků pomocí výchozího správce balíčků, jak je znázorněno.

Na Ubuntu/Debianu

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

Na 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. Jakmile jsou nainstalovány všechny balíčky, nginx, php-fpm, mariadb a snmp< služby budou spuštěny a bude povoleno jejich automatické spouštění při spouštění (to je normální případ Ubuntu), jinak je můžete spustit a povolit spuštěním a povolením níže uvedených příkazů.

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

Krok 2: Nainstalujte nástroj LibreNMS Monitoring Tool

3. Dále vytvořte systémového uživatele s názvem librenms pomocí příkazu useradd; kde příznak -M zakáže vytvoření domovského adresáře uživatele a -r umožní vytvoření systémového účtu. Poté přidejte uživatele librenms do skupiny www-data (na Ubuntu) nebo nginx (na CentOS) následovně.

------------ 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. Poté nainstalujte LibreNMS pomocí příkazu composer podle obrázku.

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

Krok 3: Vytvořte databázi LibreNMS

5. Než začnete používat server MariaDB, musíte zabezpečit instalaci a spustit bezpečnostní skript, který je součástí binárního balíčku. Požádá vás o nastavení hesla uživatele root, odebrání anonymních uživatelů, vzdálené zakázání přihlášení uživatele root a odebrání testovací databáze.

Skript můžete spustit zadáním níže uvedeného příkazu a odpovědět na všechny otázky pomocí yes/y.

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

6. Poté se přihlaste k databázi MariaDB a vytvořte databázi pro LibreNMS (nezapomeňte použít silné/bezpečné heslo v produkčním prostředí).

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. Poté prozatím vypněte přísný režim MySQL (kompatibilita s přísným režimem MySQL bude teprve přidána).

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

Do sekce [mysqld] prosím přidejte.

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

Poté restartujte databázový server, aby se změny projevily.

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

Krok 4: Nakonfigurujte a spusťte PHP-FPM

8. Dále nastavte date.timezone v php.ini na aktuální časové pásmo, například „Afrika/Kampala ”, jak je znázorněno na následujícím snímku obrazovky.

------------ 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. Dále povolte modul mcrypt PHP v Ubuntu a restartujte php-fpm podle obrázku.

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

10. Na CentOS/RHEL musíte provést následující změny v konfiguračním souboru php-fpm.

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

Proveďte následující změny.

;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. Restartujte službu php-fpm podle obrázku.

systemctl restart php-fpm

Krok 5: Nakonfigurujte Nginx pro LibreNMS

12. V tomto kroku musíte nakonfigurovat blok serveru Nginx pro librenms, abyste měli přístup k webovému uživatelskému rozhraní. Vytvořte pro něj soubor .conf podle obrázku.

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

Přidejte následující config a podle potřeby upravte 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. Poté soubor uložte a ukončete. Odstraňte také výchozí konfiguraci bloku serveru a restartujte server Nginx.

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

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

POZNÁMKA: V systému CentOS/RHEL budete muset zakázat sekci výchozí web, pokud se jedná o jediný web, který hostujete. Smažte sekci serveru ze souboru /etc/nginx/nginx.conf.

14. Také na CentOS/RHEL musíte nainstalovat nástroj zásad pro SELinux a nakonfigurovat kontexty potřebné pro LibreNMS pomocí následujících příkazů.

------------ 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. Povolte fping vytvořením souboru http_fping.tt s následujícím obsahem.

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. Poté spusťte tyto příkazy.

------------ 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. Pokud používáte bránu firewall v systému CentOS/RHEL, povolte přístup HTTP/HTTPS přes bránu firewall.

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

Krok 6: Nakonfigurujte SNMPD pro LibreNMS

18. Nyní použijte ukázkovou konfiguraci snmp k vytvoření konfiguračního souboru a otevřete jej pro úpravy, jak je uvedeno dále.

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

Najděte řetězec RANDOMSTRINGGOESHERE a změňte jej na svůj vlastní komunitní řetězec, jak je znázorněno na snímku obrazovky.

19. Dále si do svého systému stáhněte skript shellu, který pomůže zjistit, který OS a pokud je to Linux, pak zjistí, kterou distribuci Linuxu používáte:

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

Krok 7: Vytvořte Cron a nakonfigurujte Logrotate

20. Nyní spusťte níže uvedený příkaz a nastavte úlohu cron pro LibreNMS.

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

21. Dále jsou všechny protokoly LibreNMS zaznamenávány do /opt/librenms/logs, může být nutné nakonfigurovat tyto protokoly tak, aby se automaticky střídaly , pomocí poskytnutého konfiguračního souboru logrotate, jako je tento.

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

Poté nastavte příslušná oprávnění pro kořenový adresář instalace LibreNMS a soubory protokolu.

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

Krok 8: Otevřete webový instalační program LibreNMS

22. Dále použijte následující adresu URL pro přístup k webovému instalačnímu programu a postupujte podle pokynů na obrazovce.

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

Aby tato adresa fungovala na místním počítači, musíte před uvedením do provozu nastavit místní DNS pomocí souboru hosts (/etc/hosts) pro účely rozlišení lokální domény nebo testování.

192.168.43.31 tecmint.lan
192.168.43.31 librenms.tecmint.lan

23. Zobrazí se úvodní stránka instalace, jak je znázorněno na následujícím snímku obrazovky, pokračujte kliknutím na Další fáze.

24. Poté zadejte nastavení (hostitel databáze, port, uživatelské jméno a heslo uživatele) pro databázi LibreNMS a pokračujte kliknutím na Další fáze.

25. Webový instalátor nyní zahájí import databáze MySQL, bude to chvíli trvat. Všimněte si, že proces se v určitých bodech pokusí pozastavit, stačí kliknout na Opakovat a pokračovat v procesu importu.

26. Po dokončení importu databáze byste měli vidět zprávu „Databáze je aktuální!“, jak je znázorněno na snímku obrazovky níže. Poté pokračujte kliknutím na Přejít na Přidat uživatele.

27. Dále přidejte uživatele LibreNMS, zadejte uživatelské jméno, heslo a e-mail, poté klikněte na Přidat uživatele pro provedení změn.

28. Nyní klikněte na vytvořit konfiguraci LibreNMS pro váš systém kliknutím na Generate Config.

29. Jakmile je konfigurace vygenerována, jak je znázorněno na předchozím snímku obrazovky, zkopírujte ji a uložte do kořenového adresáře vaší instalace do souboru /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. Uložte a zavřete soubor. Poté se vraťte do webového instalačního programu a pokračujte v procesu instalace kliknutím na Dokončit instalaci.

31. Nyní je vaše instalace LibreNMS dokončena, můžete kliknout na „ověřit instalaci a opravit případné problémy“, měla by se zobrazit přihlašovací stránka.

32. Dále zadejte své uživatelské údaje pro přístup na stránku ověření.

33. Během procesu ověřování instalace LibreNMS zjistila dva problémy, jedním je, že nebyla přidána zařízení (toto je prozatím varování), a za druhé jsme nenastavujte příslušná oprávnění pro konfigurační soubor (/opt/librenms/config.php), který byl přidán ručně, jak ukazuje snímek obrazovky níže.

Nyní spusťte následující příkaz pro nastavení správného oprávnění pro konfigurační soubor.

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

34. Chcete-li přidat zařízení, přejděte na: http://librenms.tecmint.lan/addhost. Po přidání zařízení můžete přejít na domovskou stránku a přidat různé řídicí panely.

A je to! Další informace, včetně instalace a nastavení, naleznete v dokumentaci LibreNMS na adrese https://docs.librenms.org/.

LibreNMS je plně vybavený systém monitorování sítě, který podporuje různé síťové vybavení. Doufáme, že to byl přehledný průvodce instalací, pokud máte nějaké dotazy, kontaktujte nás prostřednictvím formuláře pro zpětnou vazbu níže.