Előfeltételek
Telepítse az Nginxet és a PHP-t
Telepítse a MariaDB-t
Telepítse a LibreNMS-t
SSL és Nginx VHost konfigurációk
Telepítés WebUI használatával
A LibreNMS egy teljes értékű nyílt forráskódú hálózatfigyelő rendszer. Az SNMPadatok beszerzésére szolgál különböző eszközökről. A LibreNMS számos eszközt támogat, például Cisco, Linux, FreeBSD, Juniper, Brocade, Foundry, HP és még sok más. Több hitelesítési mechanizmust támogat, és támogatja a kéttényezős hitelesítést. Testreszabható riasztási rendszerrel rendelkezik, amely e-mailen, IRC-n vagy lazán riaszthatja a hálózati rendszergazdát.
Előfeltételek
Ebben az oktatóanyagban nms.example.coma Vultr példányra mutató tartománynévként fogjuk használni . Kérjük, ügyeljen arra, hogy a példa domain név minden előfordulását lecserélje a tényleges névre.
Frissítse alaprendszerét a CentOS 7 frissítése útmutató segítségével . A rendszer frissítése után folytassa a függőségek telepítésével.
Telepítse az Nginxet és a PHP-t
A LibreNMS előlapja alapvetően PHP-ben van írva, ezért telepítenünk kell egy webszervert és egy PHP-t. Ebben az oktatóanyagban az Nginxet a PHP 7.2-vel együtt telepítjük a maximális biztonság és teljesítmény elérése érdekében.
Telepítse az Nginx-et.
sudo yum -y install nginx
Indítsa el az Nginx-et, és engedélyezze az automatikus indulást a rendszerindításkor.
sudo systemctl start nginx
sudo systemctl enable nginx
Adja hozzá és engedélyezze a Remi lerakat, mivel az alapértelmezett YUM lerakat a PHP régebbi verzióját tartalmazza.
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
Telepítse a PHP 7.2-es verzióját a LibreNMS által igényelt modulokkal együtt.
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
Nyissa meg a betöltött konfigurációs fájlt PHP-vel egy szerkesztőben.
sudo nano /etc/php.ini
Keresse meg a következő sorokat, törölje a megjegyzéseket, és változtassa meg az értéküket a képen látható módon.
;cgi.fix_pathinfo=1
memory_limit = 128M
;date.timezone =
Ehelyett használja ezeket az értékeket, cserélje Asia/Kolkatale a helyi időzónára.
cgi.fix_pathinfo=0
memory_limit = -1
date.timezone = Asia/Kolkata
A rendszer időzónáját is meg kell változtatnia a következő parancs futtatásával.
sudo ln -sf /usr/share/zoneinfo/Asia/Kolkata /etc/localtime
Most nyissa meg a PHP-FPM konfigurációs fájlt.
sudo nano /etc/php-fpm.d/www.conf
Keresse meg a következő sort.
listen = 127.0.0.1:9000
Cserélje ki a következő sorral.
listen = /var/run/php-fpm/php-fpm.sock
Alapértelmezés szerint a PHP-FPM az Apache webszerver felhasználójához van beállítva. Módosítsa a felhasználót erre: nginx.
user = nginx
group = nginx
Továbbá törölje a megjegyzéseket a következő sorokról.
listen.owner = nobody
listen.group = nobody
Mentse el a fájlt, és lépjen ki a szerkesztőből. Indítsa újra a PHP-FPM-et, és engedélyezze az indulást a rendszerindításkor.
sudo systemctl restart php-fpm
sudo systemctl enable php-fpm
Állítsa be a megfelelő tulajdonjogot a socket fájlhoz.
sudo chown nginx:nginx /var/run/php-fpm/php-fpm.sock
Telepítse a MariaDB-t
A MariaDB a MySQL elágazása. Adja hozzá a MariaDB adattárat a rendszeréhez. Az alapértelmezett yumadattár a MariaDB régebbi verzióját tartalmazza.
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
Telepítse a MariaDB-t.
sudo yum -y install mariadb mariadb-server
Most nyissa meg a MySQL konfigurációs fájlt.
sudo nano /etc/my.cnf
Adja hozzá a következő sorokat a blokk végéhez.
[mysqld]
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0
Indítsa újra a MariaDB-t, és engedélyezze, hogy rendszerindításkor automatikusan elinduljon.
sudo systemctl restart mariadb
sudo systemctl enable mariadb
Az adatbázis konfigurálása előtt először biztonságossá kell tennie a MariaDB-t.
sudo mysql_secure_installation
Meg kell adnia a jelenlegi MariaDB root jelszót. Alapértelmezés szerint nincs root jelszó egy friss MariaDB telepítésben. Nyomja meg a " Enter" gombot a folytatáshoz. Állítson be erős jelszót roota MariaDB-kiszolgáló felhasználója számára, és válaszoljon Yaz összes többi kérdésre. A feltett kérdések magától értetődőek.
Jelentkezzen be a MySQL shellbe root felhasználóként.
mysql -u root -p
Adja meg a MariaDB root felhasználó jelszavát a bejelentkezéshez.
Futtassa a következő lekérdezéseket egy adatbázis és egy adatbázis-felhasználó létrehozásához a LibreNMS telepítéséhez.
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;
Az adatbázisnevet librenmsés a felhasználónevet librenmstetszés szerint lecserélheti . Kérjük, győződjön meg róla, StrongPasswordhogy nagyon erős jelszóra vált.
Telepítse a LibreNMS-t
A fenti függőségeken kívül a LibreNMS-nek még néhány függőségre van szüksége. Telepítse őket futtatással.
sudo yum -y install cronie fping git ImageMagick jwhois mtr MySQL-python net-snmp net-snmp-utils nmap python-memcached rrdtool
Adjon hozzá egy új, nem jogosult felhasználót a LibreNMS alkalmazáshoz.
sudo useradd librenms -d /opt/librenms -M -r
sudo usermod -a -G librenms nginx
A LibreNMS közvetlenül telepíthető a Github-tárház klónozásával.
cd /opt
sudo git clone https://github.com/librenms/librenms.git librenms
Javítsa ki a tulajdonjogot.
sudo chown librenms:librenms -R /opt/librenms
A LibreNMS számos feladathoz támaszkodik az SNMP-re. Mivel már telepítettük az SNMP-t, másolja a példa konfigurációs fájlt a helyére.
sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
Nyissa meg a konfigurációs fájlt a szerkesztőben.
sudo nano /etc/snmp/snmpd.conf
Keresse meg ezt a sort.
com2sec readonly default RANDOMSTRINGGOESHERE
Szerkessze a szöveget, RANDOMSTRINGGOESHEREés cserélje ki a közösségi karakterláncot tetszőleges karakterláncra. Például.
com2sec readonly default my-org
Ne felejtse el a karakterláncot, mert később szükség lesz rá, amikor hozzáadjuk az első SNMP-eszközt.
Az SNMP-nek a terjesztési verzióról is információra van szüksége. Töltse le és telepítse a szkriptet a terjesztési verzió megkereséséhez.
sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
sudo chmod +x /usr/bin/distro
Indítsa el az SNMP démon szolgáltatást, és engedélyezze, hogy rendszerindításkor automatikusan elinduljon.
sudo systemctl enable snmpd
sudo systemctl restart snmpd
Now you will need to add some crontab entries to run the scheduled tasks. Create a new cron job file.
sudo nano /etc/cron.d/librenms
Populate the file with the following text.
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
Restart the cron daemon service.
sudo systemctl restart crond
Setup logrotate so that the log files are automatically refreshed over time.
sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
Finally, set the appropriate ownership and permissions.
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
SSL and Nginx VHost configurations
Logins and other information sent through the web interface of LibreNMS are not secured if the connection is not encrypted with SSL. We will configure Nginx to use SSL generated with Let's Encrypt free SSL.
Install Certbot, which is the client application for Let's Encrypt CA.
sudo yum -y install certbot
Before you can request the certificates, you will need to allow port 80 and 443, or standard HTTP and HTTPS services through the firewall.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
Megjegyzés : A Let's Encrypt CA-tól tanúsítványok beszerzéséhez a tartományt, amelyhez a tanúsítványokat elő kell állítani, a szerver felé kell mutatni. Ha nem, hajtsa végre a szükséges módosításokat a tartomány DNS-rekordjain, és várja meg, amíg a DNS továbbterjed, mielőtt ismét kérelmet küldene. A Certbot a tanúsítványok kiadása előtt ellenőrzi a tartományi hatóságot.
Az SSL-tanúsítványok létrehozása:
sudo certbot certonly --webroot -w /usr/share/nginx/html -d nms.example.com
A generált tanúsítványok valószínűleg a /etc/letsencrypt/live/nms.example.com/könyvtárban lesznek tárolva . Az SSL-tanúsítvány a következőként fullchain.pem, a magánkulcs pedig néven lesz tárolva privkey.pem.
Az Encrypt tanúsítványok 90 napon belül lejárnak, ezért ajánlott a tanúsítványok automatikus megújítását beállítani egy cron feladat segítségével.
Nyissa meg a cron feladatfájlt.
sudo crontab -e
Adja hozzá a következő sort a fájl végéhez.
30 5 * * 1 /usr/bin/certbot renew --quiet
A fenti cron feladat helyi idő szerint minden hétfőn 5:30-kor fut. Ha a tanúsítvány lejár, az automatikusan megújul.
Hozzon létre egy új virtuális gazdagépet.
sudo nano /etc/nginx/conf.d/nms.example.com.conf
Töltse fel a fájlt.
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;
}
}
Cserélje nms.example.comki a tényleges domainjére a fenti konfigurációban.
Indítsa újra az Nginxet.
sudo chown nginx:nginx /var/lib/php/session
sudo systemctl restart nginx
Telepítés WebUI használatával
A telepítés befejezéséhez nyissa https://nms.example.commeg kedvenc böngészőjében. Látni fogja, hogy a követelmények teljesülnek. Adja meg az adatbázis adatait, és hozzon létre egy új rendszergazdai fiókot. A telepítés után üzenetet kap a telepítés érvényesítéséről. Kattintson a linkre, és jelentkezzen be a rendszergazdai fiókkal. Látni fogja, hogy a " Poller" kivételével mindennek " Ok" állapota van.

Most kattintson a hivatkozásra egy eszköz hozzáadásához. A " Add Device" felületen adja meg a hostnevet localhostként, és hagyjon mindent úgy, ahogy van. Adja meg közösségi karakterláncát a közösségi mezőben. Pontosan ugyanannak a karakterláncnak kell lennie, amelyet snmpd.confaz SNMP konfigurálása során megadott .
![Figyelje eszközeit a LibreNMS segítségével a CentOS 7 rendszeren Figyelje eszközeit a LibreNMS segítségével a CentOS 7 rendszeren]()
Az eszköz hozzáadása után a részleteket megtekintheti a " Devices" lapon.
![Figyelje eszközeit a LibreNMS segítségével a CentOS 7 rendszeren Figyelje eszközeit a LibreNMS segítségével a CentOS 7 rendszeren]()
Hasonló módon további eszközöket is hozzáadhat a LibreNMS alkalmazáshoz az éjjel-nappali felügyelethez.