LibreNMS - Ngwa Nleba anya netwọkụ egosipụtara nke ọma maka Linux


LibreNMS bụ isi mmalite mepere emepe, dị ike yana njiri mara akpaaka na-achọpụta usoro nlekota netwọkụ dabere na PHP nke na-eji usoro SNMP. Ọ na-akwado ọtụtụ sistemụ arụmọrụ gụnyere Linux, FreeBSD, yana ngwaọrụ netwọk gụnyere Cisco, Juniper, Brocade, Foundry, HP na ọtụtụ ndị ọzọ.

  1. Ọ na-achọpụta netwọkụ n'onwe ya site na iji ụkpụrụ ndị a: CDP, FDP, LLDP, OSPF, BGP, SNMP na ARP.
  2. O nwere UI web enyi na enyi, nwere dashboard nwere ike ịhazi ya.
  3. Na-akwado onye nnọchi anya Unix.
  4. Na-akwado ntule kwụ ọtọ ka iji netwọk gị gbasaa.
  5. Na-akwado usoro ịdọ aka na ntị nke ukwuu na-agbanwe agbanwe; na-eziga ọkwa site na email, irc, slack na ndị ọzọ.
  6. Na-akwado API maka ijikwa, eserese na iweghachite data na sistemụ gị.
  7. Na-enye usoro ịgba ụgwọ okporo ụzọ.
  8. Na-akwadokwa ngwa gam akporo na iOS nke na-enye ọrụ ndị bụ isi.
  9. Na-akwado mwekota na NfSen, anakọtara, SmokePing, RANCID na Oxidized.
  10. Na-akwado ọtụtụ ụzọ nyocha dị ka MySQL, HTTP, LDAP, Radius na Active Directory.
  11. Na-enye ohere maka mmelite akpaaka yana ọtụtụ atụmatụ ndị ọzọ.

Ihe ngosi ntanetị dị maka ịnwale tupu ịwụnye LibreNMS na sistemụ Linux.

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

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

N'ime nkuzi a anyị ga-amụta ka esi etinye LibreNMS Network Monitoring Tool na Ubuntu ma ọ bụ CentOS Linux arụnyere ọhụrụ (otu ntuziaka na-arụkwa ọrụ na nkesa Debian na RHEL).

IHE: Ntuziaka ndị a niile dị n'isiokwu a ga-agba ọsọ dị ka onye ọrụ mgbọrọgwụ, ọ bụrụ na ị bụghị, jiri iwu sudo iji nweta ohere ọrụ mgbọrọgwụ.

Kwụpụ 1: Wụnye ngwugwu achọrọ

1. Mbụ malite site na ịwụnye ngwugwu niile achọrọ site na iji njikwa ngwugwu ndabara dị ka egosiri.

$ 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. Ozugbo arụnyere ngwugwu niile, nginx, php-fpm, mariadb na snmp ọrụ ga-amalite ma mee ka ọ malite ịmalite n'oge buut (nke a na-emekarị na Ubuntu), ma ọ bụghị ya, ị nwere ike ịme iwu ndị dị n'okpuru ebe a ka ọ bụrụ na ị na-eme ya. malite ma mee ka ha nwee ike.

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

Nzọụkwụ 2: Wụnye LibreNMS Monitoring Tool

3. Ọzọ, mepụta onye ọrụ usoro a na-akpọ librenms, na iwu useradd; ebe ọkọlọtọ -M na-egbochi imepụta ndekọ ụlọ onye ọrụ, yana -r na-enyere aka ịmepụta akaụntụ sistemụ. Wee tinye onye ọrụ librenms na otu www-data (na Ubuntu) ma ọ bụ nginx (na CentOS) dị ka ndị a.

------------ 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. Wee tinye LibreNMS site na iwu onye na-ede egwú dị ka egosiri.

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

Kwụpụ 3: Mepụta ọdụ data LibreNMS

5. Tupu ịmalite iji ihe nkesa MariaDB, ịkwesịrị ijide n'aka na nrụnye gị, na-agba ọsọ ederede nchekwa nke enyere na ngwugwu ọnụọgụ abụọ. Ọ ga-ajụ gị ka ịtọọ paswọọdụ mgbọrọgwụ, wepụ ndị ọrụ na-amaghị aha, gbanyụọ nbanye mgbọrọgwụ ma wepụ nchekwa data ule.

Ị nwere ike ịmalite edemede ahụ site n'inye iwu dị n'okpuru wee zaa ajụjụ niile na ee/y.

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

6. Mgbe ahụ banye na nchekwa data MariaDB iji mepụta nchekwa data maka LibreNMS (cheta na iji paswọọdụ siri ike/echekwara na mpaghara mmepụta).

$ 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. E mesịa, gbanyụọ MySQL strict mode maka ugbu a (ndakọrịta na MySQL strict mode bụ ka a ga-atụkwasịkwara).

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

N'ime ngalaba [mysqld] biko tinye.

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

Mgbe ahụ malitegharịa ihe nkesa nchekwa data iji mee mgbanwe ndị ahụ.

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

Kwụpụ 4: Hazie wee malite PHP-FPM

8. Ọzọ, debe ụbọchị gị.timezone na php.ini na mpaghara oge gị ugbu a, dịka ọmụmaatụ \Africa/Kampala, dị ka egosiri na nseta ihuenyo na-esonụ.

------------ 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. Na-esote mee ka modul PHP mcrypt dị na Ubuntu ma malitegharịa php-fpm dị ka egosiri.

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

10. Na CentOS/RHEL ịkwesịrị ime mgbanwe ndị a na faịlụ nhazi php-fpm.

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

Mee mgbanwe ndị a.

;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. Malitegharịa ekwentị php-fpm dị ka egosiri.

# systemctl restart php-fpm

Kwụpụ 5: Hazie Nginx maka LibreNMS

12. N'ime usoro a, ịkwesịrị ịhazi ngọngọ ihe nkesa Nginx maka librenms iji nweta UI weebụ. Mepụta faịlụ .conf maka ya dịka egosiri.

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

Tinye nhazi ndị a, dezie aha nkesa dị ka achọrọ.

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. Mgbe ahụ chekwaa ma pụọ na faịlụ ahụ. Wepụkwa nhazi ngọngọ nkesa ndabara wee malitegharịa ihe nkesa Nginx.

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

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

IHE: Na CentOS/RHEL, ị ga-achọ gbanyụọ ngalaba saịtị ndabara, ma ọ bụrụ na nke a bụ naanị saịtị ị na-anabata. Hichapụ ngalaba nkesa site na faịlụ /etc/nginx/nginx.conf.

14. Nakwa na CentOS/RHEL, ịkwesịrị ịwụnye ngwá ọrụ iwu maka SELinux ma hazie ọnọdụ ndị LibreNMS chọrọ site na iji iwu ndị a.

------------ 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. Kwe ka fping site na ịmepụta faịlụ http_fping.tt yana ọdịnaya ndị a.

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. Mgbe ahụ mee iwu ndị a.

------------ 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. Ọ bụrụ na ị na-eji Firewall na CentOS/RHEL, mee ka HTTP/HTTPS nweta site na firewall.

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

Kwụpụ 6: Hazie SNMPD maka LibreNMS

18. Ugbu a, jiri sample snmp nhazi iji mepụta faịlụ nhazi gị wee mepee ya maka edezi, dị ka ndị a.

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

Chọta eriri RANDOMSTRINGGOESHERE wee gbanwee ya ka ọ bụrụ eriri obodo gị dịka egosiri na nseta ihuenyo.

19. Ọzọ, budata script shei na sistemụ gị, nke na-enyere aka ịchọpụta OS ma ọ bụrụ na ọ bụ Linux mgbe ahụ ọ ga-achọpụta nkesa Linux, ị na-eji:

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

Kwụpụ 7: Mepụta Cron wee hazie Logrotate

20. Ugbu a gbaa iwu dị n'okpuru ka ịtọlite ọrụ cron maka LibreNMS.

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

21. Na-esote, a na-edekọ ndekọ LibreNMS niile na /opt/librenms/logs, ị nwere ike ịhazi ndekọ ndị a ka ha na-emegharị onwe ha, na-eji faịlụ logrotate config nyere, dị ka nke a.

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

Mgbe ahụ tọọ ikike kwesịrị ekwesị na ndekọ ndekọ mgbọrọgwụ nwụnye LibreNMS na faịlụ ndekọ.

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

Kwụpụ 8: Nweta LibreNMS Web Installer

22. Na-esote, jiri URL na-esonụ iji nweta web installer ma soro ntuziaka na ihuenyo.

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

Maka adreesị a ka ọ rụọ ọrụ na igwe mpaghara, ịkwesịrị ịtọlite DNS mpaghara site na iji faịlụ ndị ọbịa (/etc/hosts), maka mkpebi ngalaba mpaghara ma ọ bụ ebumnuche nnwale tupu ị gaa ndụ.

192.168.43.31 tecmint.lan
192.168.43.31 librenms.tecmint.lan

23. Ị ga-ahụ echichi welcome page dị ka e gosiri na-esonụ nseta ihuenyo, pịa Ọzọ ogbo ka ịga n'ihu.

24. Mgbe ahụ, tinye ntọala (database host, port, username and user password) maka nchekwa data LibreNMS wee pịa Next Stage ka ịga n'ihu.

25. Onye nrụnye weebụ ga-amalite ugbu a ibubata nchekwa data MySQL, nke a ga-ewe oge. Rịba ama na usoro a ga-anwa ịkwụsịtụ n'oge ụfọdụ, dị mfe pịa Tinyegharịa ka ịga n'ihu na usoro mbubata.

26. Ozugbo mbubata nchekwa data zuru ezu, ị ga-ahụ ozi \Database adịla ugbu a!, dị ka egosiri na nseta ihuenyo dị n'okpuru. wee pịa Goto Add User ka ịga n'ihu.

27. Ọzọ, tinye onye ọrụ LibreNMS, ezipụta aha njirimara, paswọọdụ na email, wee pịa Tinye onye ọrụ iji mee mgbanwe ndị ahụ.

28. Ugbu a pịa mepụta nhazi LibreNMS maka sistemụ gị, site na ịpị Generate Config.

29. Ozugbo emepụtara nhazi ahụ, dị ka egosiri na nseta ihuenyo gara aga, detuo ya ma chekwaa ya na ndekọ mgbọrọgwụ nke ntinye gị, na faịlụ a na-akpọ /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'] = '[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. Chekwa ma mechie faịlụ. Mgbe ahụ laghachi na web installer ka ịga n'ihu na usoro nrụnye, site na ịpị Finish Install.

31. Ugbu a echichi LibreNMS gị ezuola, ị nwere ike pịa \validate your install and fix any issues, ebe nbanye ga-apụta.

32. Ọzọ, tinye nzere njirimara gị iji nweta ibe nkwado.

33. Site na ntinye nkwenye nwụnye, LibreNMS achọpụtala okwu abụọ, otu bụ na etinyeghị ngwaọrụ (nke a bụ ịdọ aka ná ntị ugbu a), na nke abụọ, anyị edobeghị ikike kwesịrị ekwesị na faịlụ nhazi (/opt/librenms). /config.php) nke ejiri aka tinye ya, dị ka egosiri na nseta ihuenyo dị n'okpuru.

Ugbu a, gbaa iwu a ka ịtọọ ikike ziri ezi na faịlụ config.

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

34. Iji tinye ngwaọrụ, gaa na: http://librenms.tecmint.lan/addhost. Mgbe ịgbakwunye ngwaọrụ, ị nwere ike ịga na home page na tinye dị iche iche dashboards.

Ọ bụ ya! Ị nwere ike ịchọta ozi ndị ọzọ, gụnyere ntinye na nhazi na akwụkwọ LibreNMS na https://docs.librenms.org/.

LibreNMS bụ sistemụ nleba anya netwọkụ zuru oke nke na-akwado ngwaike netwọkụ dị iche iche. Anyị nwere olile anya na nke a bụ ntuziaka nwụnye lucid, ọ bụrụ na ị nwere ajụjụ ọ bụla, kpọtụrụ anyị site na mpempe nzaghachi n'okpuru.