लिब्रेएनएमएस - लिनक्स के लिए पूरी तरह से प्रदर्शित नेटवर्क निगरानी उपकरण


लिबरएनएमएस एक खुला स्रोत है, शक्तिशाली और सुविधा संपन्न ऑटो-खोज PHP आधारित नेटवर्क निगरानी प्रणाली है जो SNMP प्रोटोकॉल का उपयोग करता है। यह लिनक्स, FreeBSD, साथ ही सिस्को, जुनिपर, ब्रोकेड, फाउंड्री, एचपी और कई और अधिक सहित नेटवर्क उपकरणों सहित ऑपरेटिंग सिस्टम की एक विस्तृत श्रृंखला का समर्थन करता है।

  1. It auto-discovers a whole network using these protocols: CDP, FDP, LLDP, OSPF, BGP, SNMP and ARP.
  2. It has a mobile friendly Web UI, with customizable dashboards.
  3. Supports a Unix agent.
  4. Supports horizontal scaling to expand with your network.
  5. Supports a highly flexible and customizable alerting system; sends notifications through email, irc, slack and more.
  6. Supports an API for managing, graphing and retrieving data from your system.
  7. Offers a traffic billing system.
  8. Also supports an Android and iOS apps which offer core functionalities.
  9. Supports integration with NfSen, collectd, SmokePing, RANCID and Oxidized.
  10. Supports multiple authentication methods such as MySQL, HTTP, LDAP, Radius and Active Directory.
  11. Allows for auto updating and many other features.

लिनक्स सिस्टम पर LibreNMS स्थापित करने से पहले प्रयास करने के लिए एक ऑनलाइन डेमो उपलब्ध है।

Demo URL: https://demo.librenms.org/
Username: demo
Password: demo
  1. Ubuntu 16.04 with LEMP Stack
  2. CentOS 7 with LEMP Stack

इस ट्यूटोरियल में हम जानेंगे कि ताज़े स्थापित Ubuntu या CentOS लिनक्स पर LibreNMS नेटवर्क मॉनिटरिंग टूल कैसे स्थापित किया जाता है (समान निर्देश भी पर काम करता है) > डेबियन और RHEL आधारित वितरण)।

लाल

चरण 1: आवश्यक पैकेज स्थापित करें

1। पहले दिखाया गया डिफ़ॉल्ट पैकेज मैनेजर का उपयोग करके सभी आवश्यक पैकेजों को स्थापित करके शुरू करें।

$ 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। एक बार सभी पैकेज स्थापित हो जाने के बाद, nginx , php-fpm , mariadb और snir सेवाओं को बूट समय पर शुरू और ऑटो-स्टार्ट करने में सक्षम किया जाएगा (यह आमतौर पर Ubuntu के साथ मामला है), अन्यथा, आप उन्हें शुरू करने और सक्षम करने के लिए नीचे दिए गए आदेश चला सकते हैं।

------------ 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: लिबरएनएमएस मॉनिटरिंग टूल इंस्टॉल करें

3। अगला, उपयोगकर्ता नाम कमांड के साथ librenms नामक एक सिस्टम उपयोगकर्ता बनाएं; जहां -M ध्वज उपयोगकर्ता के होम डायरेक्टरी के निर्माण को अक्षम करता है, और -r सिस्टम खाता बनाने में सक्षम बनाता है। फिर librenms उपयोगकर्ता को समूह में जोड़ें www-data ( Ubuntu पर) या nginx ( पर) सेंटोस ) निम्नानुसार है।

------------ 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। फिर संगीतकार के माध्यम से LibreNMS स्थापित करें जैसा कि दिखाया गया है।

------------ 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: लिब्रेएनएमएस डेटाबेस बनाएं

5। इससे पहले कि आप मारबाडी सर्वर का उपयोग शुरू कर सकें, आपको अपनी स्थापना को सुरक्षित करने की आवश्यकता है, बाइनरी पैकेज में प्रदान की गई सुरक्षा स्क्रिप्ट चलाएं। यह आपको रूट पासवर्ड सेट करने, अनाम उपयोगकर्ताओं को हटाने, रूट लॉगिन को दूरस्थ रूप से अक्षम करने और परीक्षण डेटाबेस को हटाने के लिए कहेगा।

आप नीचे दिए गए आदेश को जारी करके स्क्रिप्ट लॉन्च कर सकते हैं और सभी सवालों के जवाब हां/y के साथ दे सकते हैं।

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

6। तब LibreNMS के लिए एक डेटाबेस बनाने के लिए MariaDB डेटाबेस में प्रवेश करें (उत्पादन वातावरण में एक मजबूत/सुरक्षित पासवर्ड का उपयोग करने के लिए याद रखें)।

$ 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। बाद में, अब के लिए MySQL सख्त मोड अक्षम करें (MySQL सख्त मोड के साथ संगतता अभी तक जोड़ी जानी बाकी है)।

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

[mysqld] अनुभाग के भीतर कृपया जोड़ें।

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

फिर परिवर्तनों को प्रभावी करने के लिए डेटाबेस सर्वर को पुनरारंभ करें।

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

चरण 4: कॉन्फ़िगर करें और PHP-FPM शुरू करें

8। अगला, अपने date.timezone को php.ini में अपने वर्तमान समय क्षेत्र में सेट करें, उदाहरण के लिए "अफ्रीका/कंपाला" “ , जैसा कि निम्नलिखित स्क्रीनशॉट में दिखाया गया है।

------------ 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। अगला Ubuntu में mcrypt PHP मॉड्यूल सक्षम करें और दिखाए गए अनुसार php-fpm को पुनरारंभ करें।

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

10। पर CentOS/RHEL आपको php-fpm कॉन्फ़िगरेशन फ़ाइल में निम्नलिखित परिवर्तन करने की आवश्यकता है।

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

निम्नलिखित परिवर्तन करें।

;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। दिखाए गए अनुसार php-fpm सेवा पुनः आरंभ करें।

# systemctl restart php-fpm

चरण 5: लिब्रेएनएमएस के लिए Nginx कॉन्फ़िगर करें

12। इस चरण में, आपको वेब UI का उपयोग करने के लिए librenms के लिए Nginx सर्वर ब्लॉक को कॉन्फ़िगर करने की आवश्यकता है। दिखाए गए अनुसार एक .conf फ़ाइल बनाएं।

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

निम्न कॉन्फ़िगरेशन जोड़ें, आवश्यकतानुसार server_name संपादित करें।

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। फिर फ़ाइल सहेजें और बाहर निकलें। डिफ़ॉल्ट सर्वर ब्लॉक कॉन्फ़िगरेशन को भी हटा दें और Nginx सर्वर को पुनरारंभ करें।

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

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

लाल

14। इसके अलावा CentOS/RHEL पर, आपको SELinux के लिए नीति टूल इंस्टॉल करना होगा और कॉन्फ़िगर करना होगा > संदर्भ लिब्रेएनएमएस द्वारा निम्नलिखित आदेशों का उपयोग करने की आवश्यकता है।

------------ 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। फ़ाइल को बनाकर fping की अनुमति दें http_fping.tt निम्न सामग्री के साथ।

CentOS/RHEL पर

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। फिर इन कमांड को चलाएं।

------------ 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 पर फ़ायरवॉल का उपयोग कर रहे हैं, तो HTTP/HTTPS को फ़ायरवॉल के माध्यम से एक्सेस करें।

------------ 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: लिबरएनएमएस के लिए SNMPD कॉन्फ़िगर करें

18। अब अपनी कॉन्फ़िगरेशन फ़ाइल बनाने के लिए सैंपल स्नैंप कॉन्फ़िगरेशन का उपयोग करें और इसे निम्नानुसार संपादन के लिए खोलें।

------------ 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 ढूंढें और स्क्रीनशॉट में दिखाए अनुसार इसे अपने समुदाय स्ट्रिंग में बदलें।

19। अगला, अपने सिस्टम पर एक शेल स्क्रिप्ट डाउनलोड करें, जो यह पता लगाने में मदद करता है कि कौन सा ओएस है और यदि यह लिनक्स है तो यह पता लगाएगा कि कौन सा लिनक्स वितरण, आप उपयोग कर रहे हैं:

------------ 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: क्रोन बनाएं और लॉगरोट को कॉन्फ़िगर करें

20। अब LibreNMS के लिए क्रॉन जॉब सेटअप करने के लिए नीचे कमांड चलाएँ।

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

21। अगला, सभी LibreNMS लॉग /opt/librenms/लॉग में दर्ज किए जाते हैं, आपको ऑटो-घुमाए जाने के लिए इन लॉग को कॉन्फ़िगर करने की आवश्यकता हो सकती है , इस तरह से प्रदान की गई लॉगट्रॉफ़ कॉन्फ़िगर फ़ाइल का उपयोग कर।

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

फिर LibreNMS स्थापना रूट निर्देशिका और लॉग फ़ाइलों पर उपयुक्त अनुमतियाँ सेट करें।

------------ 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: LibreNMS वेब इंस्टॉलर तक पहुँचें

22। इसके बाद, वेब इंस्टॉलर तक पहुँचने के लिए और ऑन-स्क्रीन निर्देशों का पालन करने के लिए निम्न URL का उपयोग करें।

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

इस पते के लिए एक स्थानीय मशीन पर काम करने के लिए, आपको स्थानीय डोमेन रिज़ॉल्यूशन या परीक्षण उद्देश्यों के लिए होस्ट फ़ाइल (<कोड>/etc/होस्ट ) का उपयोग करके एक स्थानीय DNS सेटअप करना होगा, जो लाइव होने से पहले।

192.168.43.31 tecmint.lan
192.168.43.31 librenms.tecmint.lan

23। आपको इंस्टॉलेशन स्वागत पृष्ठ दिखाई देगा जैसा कि निम्नलिखित स्क्रीनशॉट में दिखाया गया है, जारी रखने के लिए अगला चरण क्लिक करें।

24। फिर LibreNMS डेटाबेस के लिए सेटिंग्स (डेटाबेस होस्ट, पोर्ट, उपयोगकर्ता नाम और उपयोगकर्ता पासवर्ड) दर्ज करें और आगे बढ़ने के लिए अगला चरण क्लिक करें।

25। वेब इंस्टॉलर अब MySQL डेटाबेस का आयात करना शुरू कर देगा, इसमें कुछ समय लगेगा। ध्यान दें कि प्रक्रिया कुछ बिंदुओं पर विराम देने का प्रयास करेगी, आयात प्रक्रिया जारी रखने के लिए पुन: प्रयास करें पर क्लिक करें।

26। डेटाबेस आयात पूरा होने के बाद, आपको संदेश " डेटाबेस अप-टू-डेट! " देखना चाहिए, जैसा कि नीचे स्क्रीनशॉट में दिखाया गया है! फिर आगे बढ़ने के लिए गोटो जोड़ें उपयोगकर्ता पर क्लिक करें।

27। अगला, LibreNMS उपयोगकर्ता जोड़ें, उपयोगकर्ता नाम, पासवर्ड और ईमेल निर्दिष्ट करें, फिर परिवर्तनों को प्रभावित करने के लिए उपयोगकर्ता जोड़ें पर क्लिक करें।

28। अब जनरेट कॉन्फ़िगरेशन क्लिक करके अपने सिस्टम के लिए LibreNMS कॉन्फ़िगरेशन पर क्लिक करें।

29। एक बार कॉन्फ़िगरेशन उत्पन्न होने के बाद, जैसा कि पिछले स्क्रीनशॉट में दिखाया गया है, इसे कॉपी करें और इसे अपने इंस्टॉलेशन के रूट डायरेक्टरी में सेव करें, /opt/librenms/config.php नामक फ़ाइल में

# vi /opt/librenms/config.php

LibreNMS कॉन्फ़िगरेशन

<?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। फ़ाइल सहेजें और बंद करें। फिर स्थापना प्रक्रिया के साथ जारी रखने के लिए, समाप्त स्थापित करें पर क्लिक करके वेब इंस्टॉलर पर लौटें।

31। अब आपका LibreNMS इंस्टॉलेशन पूरा हो गया है, आप " अपने इंस्टॉल को मान्य करें और किसी भी मुद्दे को ठीक करें " पर क्लिक कर सकते हैं, लॉगिन पेज दिखाई देना चाहिए।

32। अगला, सत्यापन पृष्ठ तक पहुंचने के लिए अपने उपयोगकर्ता क्रेडेंशियल्स दर्ज करें।

33। स्थापना सत्यापन प्रक्रिया से, LibreNMS ने दो मुद्दों की खोज की है, एक यह है कि उपकरणों को जोड़ा नहीं गया है (यह अभी के लिए एक चेतावनी है), और दूसरी बात, हमारे पास है कॉन्फ़िगर फ़ाइल पर उपयुक्त अनुमति नहीं सेट करें ( /opt/librenms/config.php ) जो मैन्युअल रूप से जोड़ा गया था, जैसा कि नीचे स्क्रीन शॉट में दिखाया गया है।

अब कॉन्फ़िगर फ़ाइल पर सही अनुमति सेट करने के लिए निम्न कमांड चलाएँ।

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

34। उपकरणों को जोड़ने के लिए: http: //librenms.tecmint.lan/addhost पर जाएं। उपकरणों को जोड़ने के बाद, आप होम पेज पर जा सकते हैं और विभिन्न डैशबोर्ड जोड़ सकते हैं।

बस! आप अधिक जानकारी प्राप्त कर सकते हैं, जिसमें स्थापना और स्थापना के लिए LibreNMS दस्तावेज़ीकरण https://docs.librenms.org/ पर शामिल हैं।

लिबरएनएमएस एक पूरी तरह से चित्रित नेटवर्क निगरानी प्रणाली है जो विभिन्न प्रकार के नेटवर्क हार्डवेयर का समर्थन करती है। हमें उम्मीद है कि यह एक स्पष्ट स्थापना मार्गदर्शिका थी, यदि आपके कोई प्रश्न हैं, तो नीचे दिए गए फीडबैक फॉर्म के माध्यम से हम तक पहुंचें।