Wéi installéiere ech LibreNMS Monitoring Tool op Debian 11/10


LibreNMS ass en Open-Source a voll ausgestatteten Netzwierk Iwwerwaachungsinstrument dat eng breet Palette vun Iwwerwaachungsfunktiounen a Fäegkeeten fir Är Netzwierkapparater ubitt.

Schlëssel Funktiounen enthalen:

  • Automatesch Entdeckung vun Ärem ganzen Netzwierk mat ARP, SNMP, BGP, OSPF, LLDP, a FDP Protokoller.
  • En Alarmsystem deen héich personaliséierbar ass a ka geännert ginn fir Alarmer per E-Mail, Slack an aner Kanäl ze schécken.
  • En einfachen an einfach personaliséierbaren Dashboard.
  • Eng voll ausgedehnter API fir Daten vun Ärem Iwwerwaachungsserver ze managen an ze graféieren.
  • Extensiv Apparat Ënnerstëtzung - Ënnerstëtzt eng breet Palette vun Hardware Ubidder wéi Cisco, Juniper, HP, a vill méi.
  • Automatesch Updates a Bugfixes.
  • Multi-Factor Authentifikatioun.
  • Natierlech Ënnerstëtzung fir Android an iOS Apps.
  • a vill méi.

An dësem Guide wäerte mir de LibreNMS Iwwerwaachungsinstrument op Debian 11/10 installéieren.

Schrëtt 1: Installéiert Nginx, MariaDB a PHP

Fir unzefänken, erfrëscht d'Repositories an installéiert déi Viraussetzungspakete wéi follegt:

$ sudo apt update
$ sudo apt install software-properties-common wget apt-transport-https

De nächste Schrëtt ass d'Installatioun vun Nginx an zousätzlech Packagen wéi Curl, Git, SNMP, a Python Packagen déi vum LibreNMS Iwwerwaachungsinstrument erfuerderlech sinn.

Also, lafen de Kommando:

$ sudo apt install nginx-full curl acl fping graphviz composer git imagemagick mtr-tiny nmap python3-pip python3-memcache python3-mysqldb python3-dotenv python3-pymysql rrdtool snmp snmpd whois python3-redis python3-systemd python3-setuptools python3-systemd

Als nächst, installéiert de MariaDB Datebankserver, PHP, an zousätzlech PHP Extensiounen déi vum LibreNMS Iwwerwaachungsinstrument gebraucht ginn.

$ sudo apt install mariadb-server php php-fpm php-cli php-xml php-common php-gd php-json php-snmp php-pdo php-mysql php-zip php-curl php-mbstring php-pear php-bcmath

Eemol installéiert, gitt sécher datt Dir Nginx, php-fpm, MariaDB, an SNMP Servicer aktivéiert wéi gewisen.

$ sudo systemctl enable --now nginx
$ sudo systemctl enable --now php7.4-fpm
$ sudo systemctl enable --now mariadb
$ sudo systemctl enable --now snmpd.service

Schrëtt 2: TimeZone fir PHP konfiguréieren

De nächste Schrëtt erfuerdert eis d'PHP Zäitzone ze konfiguréieren oder ze setzen. Dëst gëtt an der php.ini Datei gemaach, déi d'Default PHP Konfiguratiounsdatei ass.

Zougang zu de php.ini Konfiguratiounsdateien op de folgende Weeër mat Ärem Liiblingseditor.

$ sudo nano /etc/php/7.4/fpm/php.ini
$ sudo nano /etc/php/7.4/cli/php.ini

Navigéiert op den date.timezone Parameter a setzt se op Är Zäitzone. Fir eng ëmfaassend Lëscht vun all ënnerstëtzten Timezone ze kréien, gitt op den offiziellen PHP Site.

An dësem Beispill setzen mir d'Zäitzone op UTC.

date.timezone = UTC

Da späichert d'Ännerungen a gitt d'Dateien aus.

Schrëtt 3: Erstellt eng Datebank fir LibreNMS

An dësem Schrëtt wäerte mir eng Datebank fir LibreNMS Installatioun erstellen. Awer als éischt, loosst eis d'Datebank sécher sécheren andeems Dir de folgende Skript leeft:

$ sudo mysql_secure_installation

Follegt déi detailléiert Uweisungen, déi Iech guidéieren wéi Dir de MariaDB Root Passwuert erstellt, anonyme Benotzer läschen an d'Datebank testen an endlech Remote Root Login net erlaben.

Als nächst, aloggen an MariaDB:

$ sudo mysql -u root -p

Fuert dann déi folgend Kommandoen fir eng Datebank an Datebank Benotzer ze kreéieren an all Privilegien un den Datebank Benotzer ze ginn.

CREATE DATABASE librenms_db CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'librenms_user'@'localhost' IDENTIFIED BY '[email '; 
GRANT ALL PRIVILEGES ON librenms_db.* TO 'librenms_user'@'localhost';

Da späichert d'Ännerungen a gitt d'MariaDB-Prompt aus.

FLUSH PRIVILEGES;
EXIT;

E puer Datebank Feintuning ass néideg. Also öffnen d'MariaDB Konfiguratiounsdatei gewisen:

$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

Paste dann déi folgend Zeilen vum Code an der 'mysqld' Sektioun.

innodb_file_per_table=1
lower_case_table_names=0

Späichert d'Ännerungen a gitt d'Datei aus. Fir d'Ännerungen z'applizéieren, start den Datebankserver nei.

$ sudo systemctl restart mariadb

Schrëtt 4: Add LibreNMS Benotzer

Dir musst och en neie LibreNMS Benotzer erstellen. Dëst ass de Benotzer ënner deem LibreNMS wäert lafen. An dësem Beispill erstellen mir e Benotzer mam Numm Librenms mat de folgenden Attributer.

$ sudo useradd librenms -d /opt/librenms -M -r -s /bin/bash
$ sudo usermod -aG librenms www-data

  • D'Optioun -d setzt den Heemverzeichnis fir de Librenms Benotzer an den /opt/librenms Verzeichnis.
  • D'Optioun -r konfiguréiert de Librenms Benotzer als System Benotzer.
  • D'Optioun -M spréngt en Heemverzeichnis fir de Benotzer iwwer, well et scho mat der -d Optioun definéiert gouf.
  • D'Optioun -s spezifizéiert den Typ vun der Shell, an dësem Fall, Bash.

Schrëtt 5: Klon LibreNMS Git Repository

Gears wiesselen, mir wäerten elo de LibreNMS Git Repository klone fir se opzestellen.

Fëllt déi folgend Befehle fir de Git Repository ze klonen

$ cd /opt
$ sudo git clone https://github.com/librenms/librenms.git

Schalt dann zréck an den Heemverzeichnis.

$ cd  ~

Als nächst musse mir Verzeechnesbesëtzer an Permissiounen un de Librenms Heemverzeechnes zouginn. Fir dëst z'erreechen, lafen déi folgend Kommandoen:

$ sudo chown -R librenms:librenms /opt/librenms
$ sudo chmod 771 /opt/librenms

Zousätzlech änneren d'Zougangskontrolllëschte fir de Librenms Heemverzeechnes mam Setfacl Kommando. Dëst gëtt dem Librenms Grupp d'Erlaabnis fir an den Ënnerverzeechnes am Heemverzeichnis ze liesen a schreiwen.

$ sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
$ sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/

Schrëtt 6: PHP Ofhängegkeeten installéieren

E puer Ofhängegkeete gi vu PHP erfuerderlech wärend dem Setup vum LibreNMS Iwwerwaachungsinstrument. Fir dëst ze maachen, musst Dir als Librenmsuser ageloggt sinn.

$ sudo su - librenms

Als nächst installéiert all PHP Ofhängegkeeten wéi follegt.

$ ./scripts/composer_wrapper.php install --no-dev

Wann d'Installatioun vun den Ofhängegkeeten fäerdeg ass, gitt de Librenms Benotzer aus.

$ exit

Schrëtt 7: PHP-FPM fir LibreNMS Installatioun konfiguréieren

Fir weider ze goen, musse mir e puer Ännerungen op PHP-FPM maachen fir LibreNMS z'ënnerstëtzen.

Fir dëst z'erreechen. Kopéiert d''www.conf'Datei déi d'Standard Pool Konfiguratiounsdatei ass an d'librenms.conf'Datei wéi follegt.

$ sudo cp /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/librenms.conf

Als nächst ännert d'Datei 'librenms.conf'.

$ sudo nano /etc/php/7.4/fpm/pool.d/librenms.conf

Ännert de Benotzer- a Gruppparameter op Librenms wéi gewisen

user = librenms
group = librenms

Als nächst, ännert d'Listen Attribut op /run/php-fpm-librenms.sock wéi follegt.

listen = /run/php-fpm-librenms.sock

Späichert d'Ännerungen a gitt d'Konfiguratioun aus. Gitt sécher de PHP-FPM Service nei ze starten fir d'Ännerungen ëmzesetzen.

$ sudo systemctl restart php7.4-fpm

Schrëtt 8: Den SNMP Daemon konfiguréieren

Den SNMP Protokoll ass en TCP/IP Protokoll deen Metriken oder Informatioune vu verwalteten Apparater iwwer e Netzwierk sammelt an organiséiert.

Déi meescht Iwwerwaachungsinstrumenter wéi Cacti profitéieren den SNMP Service fir Informatioun vu Fernhoster ze sammelen. An esou mécht LibreNMS.

Fir den SNMP Service ze konfiguréieren, gitt vir a kopéiert d'snmpd.conf.example Datei an d' /etc/snmp/snmpd.conf Datei.

$ sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf

Als nächst, ännert d'snmpd.conf Datei.

$ sudo vim /etc/snmp/snmpd.conf

Situéiert der RANDOMSTRINGGOESHERE String.

com2sec readonly  default         RANDOMSTRINGGOESHERE

Ännert et op Librenms.

com2sec readonly  default		  librenms

Späichert d'Ännerungen a gitt eraus.

Als nächst, luet d'Distro Datei erof, dat ass eng Datei déi automatesch den OS vun de verwalteten Noden erkennt a seng Verdeelung ënnerscheet.

$ sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro

Maacht et ausführbar an nei start den SNMP Service.

$ sudo chmod +x /usr/bin/distro
$ sudo systemctl restart snmpd

Schrëtt 9: Nginx fir LibreNMS konfiguréieren

Mat Nginx als eise léifste Webserver, musse mir en extra Schrëtt goen an et konfiguréieren fir LibreNMS ze serveren.

Als éischt erstelle mir en Nginx Serverblock wéi gewisen.

$ sudo nano /etc/nginx/sites-available/librenms

Paste déi folgend Zeilen vu Coden. Fir den Attribut Server_Name, gitt Ären registréierten Domain Numm oder IP Adress vun Ärem Server.

server {
  listen      80;
  server_name 23.92.30.144;        
  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/php-fpm.sock;
  }
  location ~ /.ht {
   deny all;
  }
 }

Späichert d'Ännerungen a gitt d'Konfiguratiounsdatei aus. Als nächst aktivéiert den Nginx Serverblock andeems Dir e symbolesche Link erstellt wéi gewisen.

$ sudo ln -s /etc/nginx/sites-available/librenms /etc/nginx/sites-enabled/

Da starten Nginx nei fir d'Ännerungen an der Konfiguratioun z'applizéieren.

$ sudo systemctl restart nginx

Zousätzlech kënnt Dir bestätegen datt all d'Nginx Astellungen an der Rei sinn andeems Dir de Kommando ausféiert:

$ sudo nginx -t

Schrëtt 10: Kopéiert d'Logrotate a Cron Configuratioun

Par défaut späichert LibreNMS seng Logbicher am /opt/librenms/logs Verzeichnis. Mat der Zäit kann dëst einfach opfëllen a Plazproblemer presentéieren. Fir dëst ze vermeiden, ass d'Rotatioun vun alen Logdateien recommandéiert.

Dofir kopéiert d'logrotate Datei am LibreNMS Verzeichnis an den /etc/logrotate.d/ Verzeichnis.

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

Gläich wichteg, kopéiert d'Cron Jobdatei wéi follegt fir automatesch Polling & Entdeckung vun neien Apparater z'erméiglechen

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

Schrëtt 11: Fëllt de Setup vu LibreNMS aus engem Browser of

Fir de Setup vun engem Browser ofzeschléissen, gitt op déi folgend URL:

http://server-ip

Dëst féiert Iech op d'Pre-Installatioun Checklëscht gewisen. Wann alles gutt ausgesäit, klickt op d'Ikon Datebank riets.

Gitt sécher all d'Datebankdetailer auszefëllen a klickt op 'Check Umeldungsinformatiounen'.

Wann d'Datebankdetailer validéiert sinn, klickt op 'Datebank bauen'.

Wann Dir laanscht dëse Schrëtt sidd, klickt op déi nächst Ikon fir en Admin Benotzer ze kreéieren. Gitt de Benotzernumm, Passwuert an d'E-Mail vum Admin Benotzer a klickt op Benotzer derbäi.

Endlech, klickt op de leschte Knäppchen fir d'Installatioun ofzeschléissen.

Dir wäert dëse Fehler stoussen an Iech informéieren datt den Installateur 'Failed to write file: /opt/librenms/.env'.

Awer keng Suergen. Einfach manuell d' /opt/librenms/.env Datei nei mat den Datenbankdetailer aktualiséieren. Dës Detailer wäerten an Ärem Fall variéieren.

Also, Zougang zu der Datei.

$ sudo nano /opt/librenms/.env

Läscht all den Inhalt an der Datei a paste d'Detailer hei uewen an d'Datei a späichert d'Ännerungen.

Nächst Kapp zréck a klickt op de 'Retry' Knäppchen. Dëst féiert Iech op d'LibreNMS Login Säit. Gitt d'Login Umeldungsinformatiounen a klickt 'Login'.

Wann Dir ageloggt sidd, kritt Dir esou en Dashboard. Vun hei aus kënnt Dir ufänken Är Hosten derbäi ze ginn a verschidde Metriken iwwerwaachen.

An dat ass et. An dësem Guide hu mir Iech duerch d'Installatioun vum LibreNMS Iwwerwaachungsinstrument op Debian 11/10 gefouert.