LibreNMS - Linux üçin doly aýratynlykly tor gözegçilik guraly


LibreNMS, SNMP protokolyny ulanýan açyk çeşme, güýçli we aýratynlyklara baý PHP esasly tor gözegçilik ulgamy. Linux, FreeBSD, şeýle hem Cisco, Juniper, Brocade, Foundry, HP we başga-da köp sanly operasiýa ulgamyny goldaýar.

  1. Bu protokollary ulanyp, tutuş bir ulgamy awtomatiki usulda açýar: CDP, FDP, LLDP, OSPF, BGP, SNMP we ARP.
  2. Düzülip bilinýän dolandyryş panelleri bilen ykjam dostlukly UI bar.
  3. Unix agentini goldaýar.
  4. Toruňyz bilen giňelmek üçin keseligine ulalmagy goldaýar.
  5. Örän çeýe we düzülip bilinýän duýduryş ulgamyny goldaýar; e-poçta, irc, slack we başgalar arkaly habar iberýär.
  6. Ulgamyňyzdan maglumatlary dolandyrmak, çyzmak we almak üçin API goldaýar.
  7. Trafik töleg ulgamyny hödürleýär.
  8. Şeýle hem, esasy funksiýalary hödürleýän Android we iOS programmalaryny goldaýar.
  9. NfSen, collectd, SmokePing, RANCID we Oxidized bilen integrasiýany goldaýar.
  10. MySQL, HTTP, LDAP, Radius we Active Directory ýaly birnäçe tanamak usullaryny goldaýar.
  11. Awto täzelenmäge we başga-da köp aýratynlyklara rugsat berýär.

Linux ulgamlaryna LibreNMS gurmazdan ozal synap görmek üçin onlaýn demo bar.

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

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

Bu gollanmada täze gurlan Ubuntu ýa-da CentOS Linux-da LibreNMS Network Monitoring Tool-y nädip gurmalydygyny öwreneris (şol bir görkezmeler Debian we RHEL esasly paýlamalarda hem işleýär).

BELLIK: Bu makaladaky bu görkezmeleriň hemmesi kök ulanyjy hökmünde işlemeli, eger ýok bolsaňyz, kök ulanyjy hukuklaryny gazanmak üçin sudo buýrugyny ulanyň.

1-nji ädim: Gerekli paketleri guruň

1. Ilki bilen görkezilişi ýaly deslapky paket dolandyryjysyny ulanyp, ähli zerur paketleri gurup başlaň.

$ 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
# 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. packhli paketler gurlansoň, nginx, php-fpm, mariadb we snmp hyzmatlary başlar we ýüklenen wagty awtomatiki başlamaga mümkinçilik berler (adatça Ubuntu bilen şeýle bolýar), ýogsam aşakdaky buýruklary ýerine ýetirip bilersiňiz başla we işlet.

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

2-nji ädim: LibreNMS gözegçilik guralyny guruň

3. Ondan soň, useradd buýrugy bilen librenms atly ulgam ulanyjysyny dörediň; bu ýerde -M baýdagy ulanyjynyň öý katalogyny döretmegi ýapýar we -r ulgam hasaby döretmäge mümkinçilik berýär. Soňra librenms ulanyjysyny aşakdaky ýaly www-data (Ubuntu-da) ýa-da nginx (CentOS-da) toparyna goşuň.

------------ 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. Soňra görkezilişi ýaly kompozitor buýrugy arkaly LibreNMS guruň.

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

3-nji ädim: LibreNMS maglumat bazasyny dörediň

5. MariaDB serwerini ulanyp başlamazdan ozal, gurnamagyňyzy üpjün etmeli, ikilik paketinde berlen howpsuzlyk skriptini işletmeli. Kök parolyny bellemegiňizi, näbelli ulanyjylary aýyrmagyňyzy, kök girişini uzakdan öçürmegiňizi we synag bazasyny aýyrmagyňyzy sorar.

Aşakdaky buýrugy berip, skripti açyp bilersiňiz we ähli soraglara hawa/y bilen jogap berip bilersiňiz.

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

6. Soňra LibreNMS üçin maglumat bazasyny döretmek üçin MariaDB maglumatlar bazasyna giriň (önümçilik gurşawynda güýçli/ygtybarly parol ulanmagy ýatdan çykarmaň).

$ 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 '[email !#@%$libre';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

7. Ondan soň MySQL berk re modeimini öçüriň (MySQL berk re modeimine laýyklyk entek goşulmaly däl).

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

[mysqld] bölüminde goşuň.

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

Soňra üýtgeşmeleri amala aşyrmak üçin maglumat bazasynyň serwerini täzeden açyň.

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

4-nji ädim: PHP-FPM-i sazlaň we başlaň

8. Ondan soň, indiki wagt zolagyna, mysal üçin\Afrika/Kampala, php.ini senesini.timezone belläň.

------------ 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. Ondan soň Ubuntu-da mcrypt PHP modulyny işlediň we görkezilişi ýaly php-fpm-i täzeden açyň.

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

10. CentOS/RHEL-de php-fpm konfigurasiýa faýlynda aşakdaky üýtgeşmeler girizmeli.

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

Aşakdaky üýtgeşmeler giriziň.

;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. Görkezilişi ýaly php-fpm hyzmatyny täzeden açyň.

# systemctl restart php-fpm

5-nji ädim: LibreNMS üçin Nginx-i sazlaň

12. Bu ädimde, web UI-e girmek üçin kitaphanalar üçin Nginx serwer blokyny düzmeli. Görkezilişi ýaly .conf faýly dörediň.

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

Aşakdaky konfigurasiýany goşuň, talap edilişi ýaly server_name redaktirläň.

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. Soňra faýly ýazdyryň we çykyň. Şeýle hem, deslapky serwer blok konfigurasiýasyny aýyryň we Nginx serwerini täzeden açyň.

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

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

ÜNS BERI Cent: CentOS/RHEL-de, bu ýerleşdirýän ýeke-täk sahypaňyz bolsa, deslapky sahypa bölümini öçürmeli bolarsyňyz. Serwer bölümini /etc/nginx/nginx.conf faýlyndan pozuň.

14. Şeýle hem CentOS/RHEL-de SELinux üçin syýasat guralyny gurmaly we LibreNMS-iň aşakdaky buýruklary ulanyp zerur şertlerini sazlamaly.

------------ 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. Aşakdaky mazmun bilen http_fping.tt faýly döredip fping-e rugsat beriň.

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. Soňra bu buýruklary işlediň.

------------ 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. CentOS/RHEL-de Firewall ulanýan bolsaňyz, diwar diwary arkaly HTTP/HTTPS girişini açyň.

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

6-njy ädim: LibreNMS üçin SNMPD sazlaň

18. Indi konfigurasiýa faýlyňyzy döretmek we redaktirlemek üçin açmak üçin snmp konfigurasiýa nusgasyny ulanyň.

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

RANDOMSTRINGGOESHERE setirini tapyň we skrinshotda görkezilişi ýaly öz jemagat setiriňize üýtgediň.

19. Ondan soň, haýsy OS-y anyklamaga kömek edýän we Linux bolsa, haýsy Linux paýlanyşyny kesgitlän ulgamyňyza gabyk skriptini göçürip alyň:

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

7-nji ädim: Kron dörediň we Logrotate sazlaň

20. Indi LibreNMS üçin kron işini gurmak üçin aşakdaky buýrugy işlediň.

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

21. Ondan soň, ähli LibreNMS surnallary/opt/librenms/surnallarda ýazylýar, bu ýazgylary şuňa meňzeş logrotate konfigurasiýa faýly ulanyp, awtomatiki aýlanmak üçin sazlap bilersiňiz.

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

Soňra LibreNMS gurnama kök katalogyna we gündelik faýllaryna degişli rugsatlary belläň.

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

8-nji ädim: LibreNMS web gurnaýjysyna giriň

22. Ondan soň, web gurnaýjysyna girmek we ekrandaky görkezmelere eýermek üçin aşakdaky URL-den peýdalanyň.

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

Bu salgynyň ýerli enjamda işlemegi üçin, ýerli domen çözgüdi ýa-da göni ýaýlymda synag maksady bilen, host faýlyny (/etc/host ) ulanyp, ýerli DNS gurmaly.

192.168.43.31 tecmint.lan
192.168.43.31 librenms.tecmint.lan

23. Aşakdaky skrinshotda görkezilişi ýaly gurnama garşylaýyş sahypasyny görersiňiz, dowam etmek üçin Indiki tapgyra basyň.

24. Soňra LibreNMS maglumat bazasy üçin sazlamalary (maglumat bazasynyň eýesi, port, ulanyjy ady we ulanyjy paroly) giriziň we dowam etmek üçin Indiki tapgyra basyň.

25. Web gurnaýjy indi MySQL maglumat bazasyny import edip başlar, bu birneme wagt alar. Amalyň belli nokatlarda durmaga synanyşjakdygyny, import etmegini dowam etdirmek üçin gaýtadan synanyşyň.

26. Maglumatlar bazasynyň importy tamamlanandan soň, aşakdaky skrinshotda görkezilişi ýaly\Maglumat bazasy iň täze! Habaryny görmeli. Dowam etmek üçin Goto Add User-a basyň.

27. Ondan soň, LibreNMS ulanyjysyny goşuň, ulanyjy adyny, paroly we e-poçta görkeziň, soňra üýtgeşmeleri amala aşyrmak üçin Ulanyjy goşmak düwmesine basyň.

28. Indi “Config Generate” düwmesine basyp, ulgamyňyz üçin LibreNMS konfigurasiýasyny döretmäge basyň.

29. Öňki skrinhotda görkezilişi ýaly konfigurasiýa döredilenden soň, ony göçüriň we gurnamagyňyzyň kök katalogynda /opt/librenms/config.php atly faýlda saklaň.

# 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'] = '[email !#@%$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. Faýly ýazdyryň we ýapyň. Soňra gurnama işini dowam etdirmek üçin web gurmakçysyna gaýdyp, “Finish Install” düwmesine basyň.

31. Indi LibreNMS gurnamagyňyz tamamlandy,\gurnamagyňyzy tassyklaň we islendik meseläni düzedip bilersiňiz -e basyp bilersiňiz, giriş sahypasy peýda bolmaly.

32. Ondan soň, tassyklama sahypasyna girmek üçin ulanyjy şahsyýet maglumatlaryňyzy giriziň.

33. Gurmak tassyklamasyndan LibreNMS iki meseläni ýüze çykardy, biri enjamlaryň goşulmadygy (bu häzirlikçe duýduryş), ikinjiden, konfigurasiýa faýlynda (/ opt/librenms) degişli rugsady goýmadyk /config.php) aşakdaky ekranda görkezilişi ýaly el bilen goşulan.

Indi konfigurasiýa faýlynda dogry rugsady bellemek üçin aşakdaky buýrugy işlediň.

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

34. Enjamlary goşmak üçin şu ýere gidiň: http://librenms.tecmint.lan/addhost. Enjamlary goşanyňyzdan soň, baş sahypa girip, dürli dolandyryş panellerini goşup bilersiňiz.

Bu! Has köp maglumatlary, şol sanda https://docs.librenms.org/ salgysynda LibreNMS Resminamalarynda gurnamak we gurnamak ýaly maglumatlary tapyp bilersiňiz.

LibreNMS, dürli ulgam enjamlaryny goldaýan doly aýratynlykly tor gözegçilik ulgamy. Bu düşnükli gurnama gollanmasydy diýip umyt edýäris, soraglaryňyz bar bolsa aşakdaky seslenme formasy arkaly bize ýüz tutuň.