Wyszukiwanie w witrynie

LibreNMS — w pełni funkcjonalne narzędzie do monitorowania sieci dla systemu Linux


LibreNMS to wydajny i bogaty w funkcje system monitorowania sieci z funkcją automatycznego wykrywania, oparty na PHP i korzystający z protokołu SNMP, o otwartym kodzie źródłowym. Obsługuje szeroką gamę systemów operacyjnych, w tym Linux, FreeBSD, a także urządzenia sieciowe, w tym Cisco, Juniper, Brocade, Foundry, HP i wiele innych.

Funkcje LibreNMS:

  1. Automatycznie wykrywa całą sieć przy użyciu protokołów: CDP, FDP, LLDP, OSPF, BGP, SNMP i ARP.
  2. Posiada przyjazny dla urządzeń mobilnych interfejs internetowy z konfigurowalnymi pulpitami nawigacyjnymi.
  3. Obsługuje agenta Unix.
  4. Obsługuje skalowanie poziome w celu rozbudowy wraz z siecią.
  5. Obsługuje bardzo elastyczny i konfigurowalny system ostrzegania; wysyła powiadomienia poprzez e-mail, IRC, Slack i inne.
  6. Obsługuje interfejs API do zarządzania, tworzenia wykresów i pobierania danych z systemu.
  7. Oferuje system rozliczeń ruchu.
  8. Obsługuje również aplikacje na Androida i iOS, które oferują podstawowe funkcje.
  9. Obsługuje integrację z NfSen, Collected, SmokePing, RANCID i Oxidized.
  10. Obsługuje wiele metod uwierzytelniania, takich jak MySQL, HTTP, LDAP, Radius i Active Directory.
  11. Umożliwia automatyczną aktualizację i wiele innych funkcji.

Przed zainstalowaniem LibreNMS w systemach Linux dostępna jest wersja demonstracyjna online, którą możesz wypróbować.

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

Środowisko testowe:

  1. Ubuntu 16.04 ze stosem LEMP
  2. CentOS 7 ze stosem LEMP

W tym samouczku dowiemy się, jak zainstalować Narzędzie do monitorowania sieci LibreNMS na świeżo zainstalowanym systemie Ubuntu lub CentOS Linux (te same instrukcje działają również na Debianie i RHEL).

UWAGA: wszystkie instrukcje zawarte w tym artykule należy uruchomić jako użytkownik root. Jeśli tak nie jest, użyj polecenia sudo, aby uzyskać uprawnienia roota uprawnienia użytkownika.

Krok 1: Zainstaluj wymagane pakiety

1. Najpierw zacznij od zainstalowania wszystkich wymaganych pakietów przy użyciu domyślnego menedżera pakietów, jak pokazano.

Na Ubuntu/Debianie

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

W 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. Po zainstalowaniu wszystkich pakietów nginx, php-fpm, mariadb i snmp< usługi zostaną uruchomione i będą mogły automatycznie uruchamiać się podczas uruchamiania systemu (zwykle ma to miejsce w przypadku Ubuntu), w przeciwnym razie możesz uruchomić poniższe polecenia, aby je uruchomić i włączyć.

------------ 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: Zainstaluj narzędzie monitorujące LibreNMS

3. Następnie utwórz użytkownika systemowego o nazwie librems za pomocą polecenia useradd; gdzie flaga -M wyłącza utworzenie katalogu domowego użytkownika, a -r umożliwia utworzenie konta systemowego. Następnie dodaj użytkownika librenms do grupy www-data (na Ubuntu) lub nginx (na CentOS) w następujący sposób.

------------ 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. Następnie zainstaluj LibreNMS za pomocą polecenia composer, jak pokazano.

------------ 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: Utwórz bazę danych LibreNMS

5. Zanim będziesz mógł rozpocząć korzystanie z serwera MariaDB, musisz zabezpieczyć swoją instalację, uruchomić skrypt zabezpieczający dostarczony w pakiecie binarnym. Poprosi Cię o ustawienie hasła roota, usunięcie anonimowych użytkowników, zdalne wyłączenie logowania roota i usunięcie testowej bazy danych.

Możesz uruchomić skrypt wydając poniższe polecenie i odpowiedzieć na wszystkie pytania za pomocą yes/y.

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

6. Następnie zaloguj się do bazy danych MariaDB, aby utworzyć bazę danych dla LibreNMS (pamiętaj, aby używać silnego/bezpiecznego hasła w środowisku produkcyjnym).

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. Następnie wyłącz na razie tryb ścisły MySQL (zgodność z trybem ścisłym MySQL nie została jeszcze dodana).

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

W sekcji [mysqld] dodaj.

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

Następnie zrestartuj serwer bazy danych, aby zastosować zmiany.

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

Krok 4: Skonfiguruj i uruchom PHP-FPM

8. Następnie ustaw swoją date.timezone w pliku php.ini na swoją aktualną strefę czasową, na przykład „Afryka/Kampala ”, jak pokazano na poniższym zrzucie ekranu.

------------ 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. Następnie włącz moduł PHP mcrypt w Ubuntu i uruchom ponownie php-fpm, jak pokazano.

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

10. W CentOS/RHEL musisz wprowadzić następujące zmiany w pliku konfiguracyjnym php-fpm.

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

Wprowadź następujące zmiany.

;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. Uruchom ponownie usługę php-fpm, jak pokazano.

systemctl restart php-fpm

Krok 5: Skonfiguruj Nginx dla LibreNMS

12. Na tym etapie musisz skonfigurować blok serwera Nginx dla librenms, aby uzyskać dostęp do internetowego interfejsu użytkownika. Utwórz dla niego plik .conf, jak pokazano.

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

Dodaj następującą config, edytuj server_name zgodnie z wymaganiami.

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. Następnie zapisz i zamknij plik. Usuń także domyślną konfigurację bloku serwera i zrestartuj serwer Nginx.

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

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

UWAGA: w CentOS/RHEL musisz wyłączyć sekcję witryna domyślna, jeśli jest to jedyna witryna, którą hostujesz. Usuń sekcję serwera z pliku /etc/nginx/nginx.conf.

14. Również w CentOS/RHEL musisz zainstalować narzędzie do ustalania zasad dla SELinux i skonfigurować >konteksty potrzebne LibreNMS przy użyciu następujących poleceń.

------------ 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. Zezwól na fping, tworząc plik http_fping.tt z następującą zawartością.

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. Następnie uruchom te polecenia.

------------ 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. Jeśli używasz zapory sieciowej w CentOS/RHEL, włącz dostęp HTTP/HTTPS przez zaporę.

------------ 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: Skonfiguruj SNMPD dla LibreNMS

18. Teraz użyj przykładowej konfiguracji snmp, aby utworzyć plik konfiguracyjny i otwórz go do edycji w następujący sposób.

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

Znajdź ciąg RANDOMSTRINGGOESHERE i zmień go na własny ciąg znaków społeczności, jak pokazano na zrzucie ekranu.

19. Następnie pobierz na swój system skrypt powłoki, który pomoże wykryć, jakiego systemu operacyjnego i jeśli jest to Linux, wykryje, jakiej dystrybucji Linuksa używasz:

------------ 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: Utwórz Crona i skonfiguruj Logrotate

20. Teraz uruchom poniższe polecenie, aby skonfigurować zadanie cron dla LibreNMS.

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

21. Następnie wszystkie dzienniki LibreNMS są zapisywane w pliku /opt/librenms/logs. Może być konieczne skonfigurowanie tych dzienników tak, aby były automatycznie obracane , używając dostarczonego pliku konfiguracyjnego logrotate, takiego jak ten.

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

Następnie ustaw odpowiednie uprawnienia w katalogu głównym instalacji LibreNMS i plikach dziennika.

------------ 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: Uzyskaj dostęp do instalatora internetowego LibreNMS

22. Następnie użyj poniższego adresu URL, aby uzyskać dostęp do instalatora internetowego i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie.

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

Aby ten adres działał na komputerze lokalnym, przed uruchomieniem musisz skonfigurować lokalny serwer DNS przy użyciu pliku hosts (/etc/hosts) w celu rozpoznania domeny lokalnej lub w celach testowych.

192.168.43.31 tecmint.lan
192.168.43.31 librenms.tecmint.lan

23. Zobaczysz stronę powitalną instalacji, jak pokazano na poniższym zrzucie ekranu. Kliknij Następny etap, aby kontynuować.

24. Następnie wprowadź ustawienia (host bazy danych, port, nazwa użytkownika i hasło użytkownika) bazy danych LibreNMS i kliknij Następny etap, aby kontynuować.

25. Instalator internetowy rozpocznie teraz importowanie bazy danych MySQL, zajmie to trochę czasu. Pamiętaj, że proces będzie próbował się zatrzymać w pewnych momentach. Kliknij Ponów próbę, aby kontynuować proces importowania.

26. Po zakończeniu importu bazy danych powinien zostać wyświetlony komunikat „Baza danych jest aktualna!”, jak pokazano na zrzucie ekranu poniżej. Następnie kliknij Przejdź do dodania użytkownika, aby kontynuować.

27. Następnie dodaj użytkownika LibreNMS, podaj nazwę użytkownika, hasło i adres e-mail, a następnie kliknij Dodaj użytkownika, aby zastosować zmiany.

28. Teraz kliknij utwórz konfigurację LibreNMS dla swojego systemu, klikając Generuj konfigurację.

29. Po wygenerowaniu konfiguracji, jak pokazano na poprzednim zrzucie ekranu, skopiuj ją i zapisz w katalogu głównym swojej instalacji, w pliku o nazwie /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. Zapisz i zamknij plik. Następnie wróć do instalatora internetowego, aby kontynuować proces instalacji, klikając Zakończ instalację.

31. Po zakończeniu instalacji LibreNMS możesz kliknąć „Sprawdź instalację i napraw wszelkie problemy”, powinna pojawić się strona logowania.

32. Następnie wprowadź dane uwierzytelniające użytkownika, aby uzyskać dostęp do strony weryfikacji.

33. Podczas procesu sprawdzania poprawności instalacji LibreNMS wykrył dwa problemy: po pierwsze, urządzenia nie zostały dodane (na razie jest to ostrzeżenie), a po drugie, mamy nie ustawiono odpowiednich uprawnień dla pliku konfiguracyjnego (/opt/librenms/config.php), który został dodany ręcznie, jak pokazano na zrzucie ekranu poniżej.

Teraz uruchom następujące polecenie, aby ustawić prawidłowe uprawnienia do pliku konfiguracyjnego.

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

34. Aby dodać urządzenia, przejdź do: http://librenms.tecmint.lan/addhost. Po dodaniu urządzeń możesz przejść do strony głównej i dodać różne dashboardy.

Otóż to! Więcej informacji, w tym dotyczących instalacji i konfiguracji, można znaleźć w dokumentacji LibreNMS pod adresem https://docs.librenms.org/.

LibreNMS to w pełni funkcjonalny system monitorowania sieci, który obsługuje różnorodne urządzenia sieciowe. Mamy nadzieję, że był to przejrzysty przewodnik po instalacji. Jeśli masz jakieś pytania, skontaktuj się z nami za pomocą poniższego formularza opinii.