Requisits previs
Instal·leu Nginx i PHP
Instal·leu MariaDB
Instal·leu LibreNMS
Configuracions SSL i Nginx VHost
Instal·lació mitjançant WebUI
LibreNMS és un sistema de control de xarxa de codi obert amb totes les funcions. S'utilitza SNMPper obtenir les dades de diferents dispositius. LibreNMS admet una varietat de dispositius com ara Cisco, Linux, FreeBSD, Juniper, Brocade, Foundry, HP i molts més. Admet múltiples mecanismes d'autenticació i admet l'autenticació de dos factors. Té un sistema d'alertes personalitzable que pot alertar l'administrador de la xarxa per correu electrònic, IRC o slack.
Requisits previs
Per a aquest tutorial, utilitzarem nms.example.comcom a nom de domini apuntat cap a la instància Vultr. Assegureu-vos de substituir totes les ocurrències del nom de domini d'exemple per l'actual.
Actualitzeu el vostre sistema base mitjançant la guia Com actualitzar CentOS 7 . Un cop actualitzat el sistema, procediu a instal·lar les dependències.
Instal·leu Nginx i PHP
El front end de LibreNMS està escrit bàsicament en PHP, per tant haurem d'instal·lar un servidor web i PHP. En aquest tutorial, instal·larem Nginx juntament amb PHP 7.2 per obtenir la màxima seguretat i rendiment.
Instal·leu Nginx.
sudo yum -y install nginx
Inicieu Nginx i activeu-lo perquè s'iniciï automàticament a l'arrencada.
sudo systemctl start nginx
sudo systemctl enable nginx
Afegiu i activeu el dipòsit Remi, ja que el dipòsit YUM predeterminat conté una versió anterior de PHP.
sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install yum-utils
sudo yum-config-manager --enable remi-php72
Instal·leu PHP versió 7.2 juntament amb els mòduls requerits per LibreNMS.
sudo yum -y install php php-cli php-common php-curl php-fpm php-gd php-mcrypt php-mysql php-process php-snmp php-xml php-zip
Obriu el fitxer de configuració carregat per PHP en un editor.
sudo nano /etc/php.ini
Cerqueu les línies següents, elimineu els comentaris i canvieu-ne el valor tal com es mostra.
;cgi.fix_pathinfo=1
memory_limit = 128M
;date.timezone =
Utilitzeu aquests valors, substituïu-los Asia/Kolkataper la vostra zona horària local.
cgi.fix_pathinfo=0
memory_limit = -1
date.timezone = Asia/Kolkata
També haureu de canviar la zona horària del sistema executant l'ordre següent.
sudo ln -sf /usr/share/zoneinfo/Asia/Kolkata /etc/localtime
Ara obriu el fitxer de configuració PHP-FPM.
sudo nano /etc/php-fpm.d/www.conf
Busca la línia següent.
listen = 127.0.0.1:9000
Substituïu-lo per la línia següent.
listen = /var/run/php-fpm/php-fpm.sock
Per defecte, PHP-FPM està configurat per a l'usuari del servidor web Apache. Canvia l'usuari a nginx.
user = nginx
group = nginx
A més, descomenta les línies següents.
listen.owner = nobody
listen.group = nobody
Deseu el fitxer i sortiu de l'editor. Reinicieu PHP-FPM i activeu-lo per iniciar-lo en el moment de l'arrencada.
sudo systemctl restart php-fpm
sudo systemctl enable php-fpm
Establiu la propietat adequada al fitxer socket.
sudo chown nginx:nginx /var/run/php-fpm/php-fpm.sock
Instal·leu MariaDB
MariaDB és una bifurcació de MySQL. Afegiu el repositori MariaDB al vostre sistema. El yumrepositori predeterminat conté una versió anterior de MariaDB.
echo "[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1" | sudo tee /etc/yum.repos.d/mariadb.repo
Instal·leu MariaDB.
sudo yum -y install mariadb mariadb-server
Ara, obriu el fitxer de configuració de MySQL.
sudo nano /etc/my.cnf
Afegiu les línies següents al final del bloc.
[mysqld]
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0
Reinicieu MariaDB i activeu-lo perquè s'iniciï automàticament en el moment de l'arrencada.
sudo systemctl restart mariadb
sudo systemctl enable mariadb
Abans de configurar la base de dades, primer haureu de protegir MariaDB.
sudo mysql_secure_installation
Se us demanarà la contrasenya d'arrel actual de MariaDB. De manera predeterminada, no hi ha cap contrasenya d'arrel en una nova instal·lació de MariaDB. Premeu la Entertecla " " per continuar. Estableix una contrasenya rootsegura per a l' usuari del teu servidor MariaDB i respon " Y" a totes les altres preguntes que es facin. Les preguntes que es fan són autoexplicatives.
Inicieu sessió al shell de MySQL com a root.
mysql -u root -p
Proporcioneu la contrasenya perquè l'usuari root de MariaDB iniciï sessió.
Executeu les consultes següents per crear una base de dades i un usuari de base de dades per a la instal·lació de LibreNMS.
CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Podeu substituir el nom de la base de dades librenmsi el nom d'usuari librenmssegons la vostra elecció. Assegureu-vos de canviar StrongPassworda una contrasenya molt segura .
Instal·leu LibreNMS
A part de les dependències anteriors, LibreNMS necessita poques dependències més. Instal·leu-los executant-los.
sudo yum -y install cronie fping git ImageMagick jwhois mtr MySQL-python net-snmp net-snmp-utils nmap python-memcached rrdtool
Afegiu un nou usuari sense privilegis per a l'aplicació LibreNMS.
sudo useradd librenms -d /opt/librenms -M -r
sudo usermod -a -G librenms nginx
LibreNMS es pot instal·lar directament clonant el seu dipòsit Github.
cd /opt
sudo git clone https://github.com/librenms/librenms.git librenms
Arreglar la propietat.
sudo chown librenms:librenms -R /opt/librenms
LibreNMS es basa en SNMP per a moltes tasques. Com que ja hem instal·lat SNMP, copieu el fitxer de configuració d'exemple a la seva ubicació.
sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
Obriu el fitxer de configuració a l'editor.
sudo nano /etc/snmp/snmpd.conf
Troba aquesta línia.
com2sec readonly default RANDOMSTRINGGOESHERE
Editeu el text RANDOMSTRINGGOESHEREi substituïu la cadena de comunitat per qualsevol cadena que vulgueu. Per exemple.
com2sec readonly default my-org
Recordeu la cadena ja que serà necessària més endavant quan afegim el primer dispositiu SNMP.
SNMP també necessita informació sobre la versió de distribució. Baixeu i instal·leu l'script per trobar la versió de distribució.
sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
sudo chmod +x /usr/bin/distro
Inicieu el servei de dimoni SNMP i activeu-lo perquè s'iniciï automàticament en el moment de l'arrencada.
sudo systemctl enable snmpd
sudo systemctl restart snmpd
Ara haureu d'afegir algunes entrades de crontab per executar les tasques programades. Creeu un fitxer de treball cron nou.
sudo nano /etc/cron.d/librenms
Omple el fitxer amb el text següent.
33 */6 * * * librenms /opt/librenms/cronic /opt/librenms/discovery-wrapper.py 1
*/5 * * * * librenms /opt/librenms/discovery.php -h new >> /dev/null 2>&1
*/5 * * * * librenms /opt/librenms/cronic /opt/librenms/poller-wrapper.py 16
15 0 * * * librenms /opt/librenms/daily.sh >> /dev/null 2>&1
* * * * * librenms /opt/librenms/alerts.php >> /dev/null 2>&1
*/5 * * * * librenms /opt/librenms/poll-billing.php >> /dev/null 2>&1
01 * * * * librenms /opt/librenms/billing-calculate.php >> /dev/null 2>&1
*/5 * * * * librenms /opt/librenms/check-services.php >> /dev/null 2>&1
Reinicieu el servei del dimoni cron.
sudo systemctl restart crond
Configuració logrotateperquè els fitxers de registre s'actualitzin automàticament amb el temps.
sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
Finalment, establiu la propietat i els permisos adequats.
sudo chown -R librenms:nginx /opt/librenms
sudo chmod g+w -R /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
Configuracions SSL i Nginx VHost
Els inicis de sessió i altra informació enviada a través de la interfície web de LibreNMS no estan assegurades si la connexió no està xifrada amb SSL. Configurarem Nginx perquè utilitzi SSL generat amb Let's Encrypt SSL gratuït.
Instal·leu Certbot, que és l'aplicació client de Let's Encrypt CA.
sudo yum -y install certbot
Abans de poder sol·licitar els certificats, haureu de permetre port 80i 443, o estàndard HTTPi HTTPSserveis a través del tallafoc.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
Nota : per obtenir certificats de Let's Encrypt CA, el domini per al qual s'han de generar els certificats s'ha d'apuntar cap al servidor. Si no, feu els canvis necessaris als registres DNS del domini i espereu que el DNS es propagui abans de tornar a fer la sol·licitud de certificat. Certbot verifica l'autoritat del domini abans de proporcionar els certificats.
Genereu els certificats SSL:
sudo certbot certonly --webroot -w /usr/share/nginx/html -d nms.example.com
És probable que els certificats generats s'emmagatzemin al /etc/letsencrypt/live/nms.example.com/directori. El certificat SSL s'emmagatzemarà com a fullchain.pemi la clau privada com a privkey.pem.
Els certificats de Let's Encrypt caduquen en 90 dies, per tant, es recomana configurar la renovació automàtica dels certificats mitjançant un treball cron.
Obriu el fitxer de treball cron.
sudo crontab -e
Afegiu la línia següent al final del fitxer.
30 5 * * 1 /usr/bin/certbot renew --quiet
El treball cron anterior s'executarà tots els dilluns a les 5:30 a.m. hora local. Si el certificat ha de caducar, es renovarà automàticament.
Creeu un nou host virtual.
sudo nano /etc/nginx/conf.d/nms.example.com.conf
Omple el fitxer.
server {
listen 80;
server_name nms.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name nms.example.com;
ssl_certificate /etc/letsencrypt/live/nms.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/nms.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /opt/librenms/logs/librenms.nginx.access.log;
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-fpm/php-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Substituïu-lo nms.example.compel vostre domini real a la configuració anterior.
Reinicieu Nginx.
sudo chown nginx:nginx /var/lib/php/session
sudo systemctl restart nginx
Instal·lació mitjançant WebUI
Per finalitzar la instal·lació, obriu https://nms.example.comal vostre navegador preferit. Veureu que es compleixen els requisits. Proporcioneu els detalls de la vostra base de dades i creeu un nou compte d'administrador. Un cop instal·lat, rebràs un missatge per validar la instal·lació. Feu clic a l'enllaç i inicieu sessió amb el compte d'administrador. Veureu que tot excepte el " Poller" té un Okestat " ".

Ara, feu clic a l'enllaç per afegir un dispositiu. A la " Add Device" interfície, proporcioneu el nom d'amfitrió com a host local i deixeu-ho tot tal qual. Proporcioneu la vostra cadena de comunitat al camp de la comunitat. Ha de ser exactament la mateixa cadena que heu proporcionat snmpd.confdurant la configuració de SNMP.
![Superviseu els vostres dispositius mitjançant LibreNMS a CentOS 7 Superviseu els vostres dispositius mitjançant LibreNMS a CentOS 7]()
Un cop s'ha afegit el dispositiu, podeu veure'n els detalls si aneu a la Devicespestanya " ".
![Superviseu els vostres dispositius mitjançant LibreNMS a CentOS 7 Superviseu els vostres dispositius mitjançant LibreNMS a CentOS 7]()
De la mateixa manera, podeu afegir més dispositius a l'aplicació LibreNMS per al seguiment "tot el dia".