LibreNMS - Kayan aikin Kulawa da Cikakkun Yanar Gizo don Linux


LibreNMS buɗaɗɗen tushe ne, mai ƙarfi kuma mai wadataccen fasali mai gano tsarin sa ido na tushen hanyar sadarwa na PHP wanda ke amfani da ka'idar SNMP. Yana goyan bayan tsarin aiki da yawa ciki har da Linux, FreeBSD, da na'urorin cibiyar sadarwa ciki har da Cisco, Juniper, Brocade, Foundry, HP da ƙari masu yawa.

  1. Yana gano hanyar sadarwa ta atomatik ta amfani da waɗannan ka'idoji: CDP, FDP, LLDP, OSPF, BGP, SNMP da ARP.
  2. Yana da UI mai sada zumunci ta wayar hannu, tare da allunan dash.
  3. Taimakawa wakilin Unix.
  4. Yana goyan bayan sikeli a kwance don faɗaɗa tare da hanyar sadarwar ku.
  5. Yana goyan bayan tsarin faɗakarwa mai sassauƙa da daidaitacce; yana aika sanarwa ta imel, irc, slack da ƙari.
  6. Yana goyan bayan API don sarrafa, zana da kuma dawo da bayanai daga tsarin ku.
  7. Yana ba da tsarin lissafin zirga-zirga.
  8. Hakanan yana goyan bayan aikace-aikacen Android da iOS waɗanda ke ba da manyan ayyuka.
  9. Yana goyan bayan haɗin kai tare da NfSen, tattarawa, SmokePing, RANCID da Oxidized.
  10. Yana goyan bayan hanyoyin tantancewa da yawa kamar MySQL, HTTP, LDAP, Radius da Active Directory.
  11. Yana ba da izinin haɓakawa ta atomatik da sauran abubuwa da yawa.

Akwai demo na kan layi don gwadawa kafin shigar da LibreNMS akan tsarin Linux.

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

  1. Ubuntu 16.04 tare da Tarin LEMP
  2. CentOS 7 tare da Tarin LEMP

A cikin wannan koyawa za mu koyi yadda ake shigar LibreNMS Network Monitoring Tool akan sabon shigar Ubuntu ko CentOS Linux ( umarni iri ɗaya kuma yana aiki akan rarrabawar Debian da RHEL).

NOTE: Duk waɗannan umarnin a cikin wannan labarin yakamata a gudanar dasu azaman tushen mai amfani, idan ba haka bane, yi amfani da umarnin sudo don samun gata mai amfani.

Mataki 1: Sanya Fakitin da ake buƙata

1. Da farko farawa ta hanyar shigar da duk fakitin da ake buƙata ta amfani da mai sarrafa fakitin tsoho kamar yadda aka nuna.

$ 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. Da zarar an shigar da duk fakitin, nginx, php-fpm, mariadb da snmp sabis za a fara kuma a kunna su ta atomatik a lokacin boot (wannan shine al'amarin Ubuntu), in ba haka ba, zaku iya aiwatar da umarnin da ke ƙasa. fara da kunna su.

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

Mataki 2: Shigar da Kayan Kulawa na LibreNMS

3. Na gaba, ƙirƙirar mai amfani da tsarin da ake kira librenms, tare da umarnin useradd; inda tutar -M ke hana ƙirƙirar kundin adireshin gida na mai amfani, kuma -r yana ba da damar ƙirƙirar asusun tsarin. Sannan ƙara mai amfani da librenms zuwa rukunin www-data (akan Ubuntu) ko nginx (akan CentOS) kamar haka.

------------ 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. Sannan shigar da LibreNMS ta hanyar umarnin mawaki kamar yadda aka nuna.

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

Mataki 3: Ƙirƙiri Database na LibreNMS

5. Kafin ka fara amfani da uwar garken MariaDB, kana buƙatar tabbatar da shigarwarka, gudanar da rubutun tsaro da aka bayar a cikin kunshin binary. Zai tambaye ka saita tushen kalmar sirri, cire masu amfani da ba a san su ba, kashe tushen shiga daga nesa kuma cire bayanan gwaji.

Kuna iya ƙaddamar da rubutun ta hanyar ba da umarnin da ke ƙasa kuma ku amsa duk tambayoyin da ye/y.

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

6. Sa'an nan kuma shiga cikin MariaDB database don ƙirƙirar bayanan bayanai don LibreNMS (tuna don amfani da kalmar sirri mai ƙarfi/amintaccen a cikin yanayin samarwa).

$ 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. Bayan haka, kashe MySQL m yanayin a yanzu (daidaituwa da MySQL tsananin yanayin har yanzu ba a ƙara).

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

A cikin sashen [mysqld] da fatan za a ƙara.

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

Sa'an nan kuma sake kunna uwar garken bayanai don aiwatar da canje-canje.

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

Mataki 4: Sanya kuma Fara PHP-FPM

8. Na gaba, saita kwanan lokaci.timezone a cikin php.ini zuwa yankin lokaci na yanzu, misali \Afirka/Kampala, kamar yadda aka nuna a cikin hoton da ke gaba.

------------ 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 gaba kunna mcrypt PHP module a Ubuntu kuma sake kunna php-fpm kamar yadda aka nuna.

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

10. A kan CentOS/RHEL kuna buƙatar yin canje-canje masu zuwa a cikin fayil ɗin sanyi na php-fpm.

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

Yi canje-canje masu zuwa.

;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. Sake kunna sabis na php-fpm kamar yadda aka nuna.

# systemctl restart php-fpm

Mataki 5: Sanya Nginx don LibreNMS

12. A cikin wannan mataki, kuna buƙatar saita shingen uwar garken Nginx don librenms don samun dama ga UI na yanar gizo. Ƙirƙiri fayil ɗin .conf don shi kamar yadda aka nuna.

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

Ƙara saitin mai zuwa, gyara server_name kamar yadda ake buƙata.

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. Sa'an nan ajiye kuma fita fayil. Hakanan cire saitunan toshe uwar garken tsoho kuma sake kunna sabar Nginx.

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

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

NOTE: A kan CentOS/RHEL, kuna buƙatar musaki sashin rukunin yanar gizon, idan wannan shine kawai rukunin yanar gizon da kuke ɗauka. Share sashin uwar garken daga fayil /etc/nginx/nginx.conf.

14. Hakanan akan CentOS/RHEL, kuna buƙatar shigar da kayan aikin manufofin don SELinux kuma Sanya abubuwan da LibreNMS ke buƙata ta amfani da bin umarni.

------------ 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. Bada izinin fping ta hanyar ƙirƙirar fayil ɗin http_fping.tt tare da abubuwan ciki masu zuwa.

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. Sa'an nan kuma gudanar da waɗannan umarni.

------------ 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. Idan kana amfani da Firewall akan CentOS/RHEL, kunna HTTP/HTTPS ta hanyar Tacewar zaɓi.

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

Mataki 6: Sanya SNMPD don LibreNMS

18. Yanzu yi amfani da samfurin snmp don ƙirƙirar fayil ɗin daidaitawa kuma buɗe shi don gyarawa, kamar haka.

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

Nemo kirtani RANDOMSTRINGGOESHERE kuma canza shi zuwa igiyar al'umma kamar yadda aka nuna a hoton allo.

19. Bayan haka, zazzage rubutun harsashi a kan tsarin ku, wanda ke taimakawa wajen gano OS kuma idan Linux ne to zai gano wane Linux rarraba, kuna amfani da:

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

Mataki 7: Ƙirƙiri Cron kuma Sanya Logrotate

20. Yanzu gudanar da umarnin da ke ƙasa don saita aikin cron don LibreNMS.

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

21. Na gaba, duk LibreNMS logs ana yin rikodin su a /opt/librenms/logs, kuna iya buƙatar saita waɗannan log ɗin don juyawa ta atomatik, ta amfani da fayil ɗin logrotate config ɗin da aka bayar, kamar wannan.

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

Sannan saita izini masu dacewa akan tushen tushen shigarwa na LibreNMS da fayilolin log.

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

Mataki 8: Shiga LibreNMS Web Installer

22. Na gaba, yi amfani da URL mai zuwa don samun dama ga mai saka gidan yanar gizo kuma bi umarnin kan allo.

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

Don wannan adireshin ya yi aiki akan na'ura na gida, kuna buƙatar saita DNS na gida ta amfani da fayil ɗin runduna (/etc/hosts), don ƙudurin yanki na gida ko dalilai gwaji kafin tafiya rayuwa.

192.168.43.31 tecmint.lan
192.168.43.31 librenms.tecmint.lan

23. Za ku ga shigarwa maraba shafi kamar yadda aka nuna a cikin wadannan screenshot, danna Next Stage don ci gaba.

24. Sa'an nan shigar da settings (database host, port, username and user password) na LibreNMS database kuma danna Next Stage don ci gaba.

25. Mai saka gidan yanar gizon yanzu zai fara shigo da bayanan MySQL, wannan zai ɗauki ɗan lokaci. Lura cewa tsarin zai yi ƙoƙarin tsayawa a wasu wurare, danna sauƙaƙa kan Sake gwadawa don ci gaba da tsarin shigo da kaya.

26. Da zarar an gama shigo da ma’adanar bayanai, sai a ga sakon \Database is up to date!, kamar yadda aka nuna a hoton da ke kasa. Sannan danna Goto Add User don ci gaba.

27. Na gaba, ƙara mai amfani da LibreNMS, saka sunan mai amfani, kalmar sirri da imel, sannan danna Ƙara User don aiwatar da canje-canje.

28. Yanzu danna ƙirƙirar tsarin LibreNMS don tsarin ku, ta danna Generate Config.

29. Da zarar an samar da config, kamar yadda aka nuna a cikin hoton da ya gabata, kwafi shi kuma ajiye shi a cikin tushen directory na shigarwa, a cikin fayil mai suna /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. Ajiye kuma rufe fayil ɗin. Sannan komawa kan mai saka gidan yanar gizo don ci gaba da aikin shigarwa, ta danna Gama Shigar.

31. Yanzu shigarwar LibreNMS ɗinku ya cika, zaku iya danna kan \validate your install and fix any issues”, shafin shiga yakamata ya bayyana.

32. Na gaba, shigar da bayanan mai amfani don samun damar shafin tabbatarwa.

33. Daga tsarin tabbatar da shigarwa, LibreNMS ya gano batutuwa guda biyu, ɗaya shine cewa ba a ƙara na'urori ba (wannan gargadi ne a yanzu), kuma na biyu, ba mu saita izinin da ya dace akan fayil ɗin daidaitawa ba (/opt/librenms). /config.php) wanda aka ƙara da hannu, kamar yadda aka nuna a hoton da ke ƙasa.

Yanzu gudanar da umarni mai zuwa don saita madaidaicin izini akan fayil ɗin daidaitawa.

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

34. Don ƙara na'urori, je zuwa: http://librenms.tecmint.lan/addhost. Bayan ƙara na'urori, zaku iya zuwa shafin gida kuma ku ƙara dashboards daban-daban.

Shi ke nan! Kuna iya samun ƙarin bayani, gami da shigarwa da saiti akan Takardun LibreNMS a https://docs.librenms.org/.

LibreNMS cikakken tsarin sa ido na cibiyar sadarwa ne wanda ke goyan bayan kayan aikin cibiyar sadarwa iri-iri. Muna fatan wannan jagorar shigarwa ce mai haske, idan kuna da wasu tambayoyi, ku same mu ta hanyar amsawar da ke ƙasa.