ค้นหาเว็บไซต์

LibreNMS - เครื่องมือตรวจสอบเครือข่ายที่โดดเด่นเต็มรูปแบบสำหรับ Linux


LibreNMS เป็นระบบตรวจสอบเครือข่ายที่ใช้ PHP แบบโอเพ่นซอร์ส ทรงพลังและมีฟีเจอร์มากมาย ซึ่งใช้โปรโตคอล SNMP รองรับระบบปฏิบัติการที่หลากหลาย รวมถึง Linux, FreeBSD รวมถึงอุปกรณ์เครือข่าย เช่น Cisco, Juniper, Brocade, Foundry, HP และอื่นๆ อีกมากมาย

คุณสมบัติ LibreNMS:

  1. โดยจะค้นหาเครือข่ายทั้งหมดโดยอัตโนมัติโดยใช้โปรโตคอลเหล่านี้: CDP, FDP, LLDP, OSPF, BGP, SNMP และ ARP
  2. มี Web UI ที่เหมาะกับมือถือพร้อมแดชบอร์ดที่ปรับแต่งได้
  3. รองรับตัวแทน Unix
  4. รองรับการปรับขนาดแนวนอนเพื่อขยายตามเครือข่ายของคุณ
  5. รองรับระบบแจ้งเตือนที่มีความยืดหยุ่นสูงและปรับแต่งได้ ส่งการแจ้งเตือนทางอีเมล, irc, slack และอื่นๆ
  6. รองรับ API สำหรับการจัดการ สร้างกราฟ และการดึงข้อมูลจากระบบของคุณ
  7. เสนอระบบการเรียกเก็บเงินค่าจราจร
  8. ยังรองรับแอป Android และ iOS ซึ่งมีฟังก์ชันการทำงานหลักอีกด้วย
  9. รองรับการทำงานร่วมกับ NfSen, Collected, SmokePing, RANCID และ Oxidized
  10. รองรับวิธีการรับรองความถูกต้องหลายวิธี เช่น MySQL, HTTP, LDAP, Radius และ Active Directory
  11. ช่วยให้สามารถอัปเดตอัตโนมัติและคุณสมบัติอื่น ๆ อีกมากมาย

มีการสาธิตออนไลน์ให้คุณลองก่อนติดตั้ง LibreNMS บนระบบ Linux

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

สภาพแวดล้อมการทดสอบ:

  1. Ubuntu 16.04 พร้อม LEMP Stack
  2. CentOS 7 พร้อม LEMP Stack

ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีการติดตั้ง LibreNMS Network Monitoring Tool บน Ubuntu หรือ CentOS Linux ที่เพิ่งติดตั้งใหม่ (คำแนะนำเดียวกันนี้ยังใช้ได้กับ เดเบียน และ RHEL)

หมายเหตุ: คำแนะนำทั้งหมดในบทความนี้ควรทำงานในฐานะผู้ใช้ root หากคุณไม่ได้ใช้ ให้ใช้คำสั่ง sudo เพื่อทำการรูท สิทธิพิเศษของผู้ใช้

ขั้นตอนที่ 1: ติดตั้งแพ็คเกจที่จำเป็น

1. ขั้นแรกให้เริ่มต้นด้วยการติดตั้งแพ็คเกจที่จำเป็นทั้งหมดโดยใช้ตัวจัดการแพ็คเกจเริ่มต้นตามที่แสดง

บน Ubuntu/Debian

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

บน CentOS/RHEL

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 และ snmp< บริการจะเริ่มต้นและเปิดใช้งานเพื่อเริ่มอัตโนมัติในเวลาบูต (โดยปกติจะเป็นกรณีของ 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: ติดตั้งเครื่องมือตรวจสอบ LibreNMS

3. จากนั้น สร้างผู้ใช้ระบบชื่อ librenms โดยใช้คำสั่ง useradd โดยที่แฟล็ก -M ปิดใช้งานการสร้างโฮมไดเร็กตอรี่ของผู้ใช้ และ -r เปิดใช้งานการสร้างบัญชีระบบ จากนั้นเพิ่มผู้ใช้ librenms ในกลุ่ม www-data (บน Ubuntu) หรือ nginx (บน CentOS) ดังนี้

------------ 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 ผ่านคำสั่ง composer ตามที่แสดง

------------ 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: สร้างฐานข้อมูล LibreNMS

5. ก่อนที่คุณจะสามารถเริ่มใช้เซิร์ฟเวอร์ MariaDB ได้ คุณจะต้องรักษาความปลอดภัยการติดตั้งของคุณ และเรียกใช้สคริปต์ความปลอดภัยที่ให้มาในแพ็คเกจไบนารี ระบบจะขอให้คุณตั้งรหัสผ่านรูท ลบผู้ใช้ที่ไม่ระบุชื่อ ปิดการใช้งานการเข้าสู่ระบบรูทจากระยะไกล และลบฐานข้อมูลทดสอบ

คุณสามารถเปิดสคริปต์ได้โดยออกคำสั่งด้านล่างและตอบคำถามทั้งหมดด้วย yes/y

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

6. จากนั้นเข้าสู่ระบบฐานข้อมูล MariaDB เพื่อสร้างฐานข้อมูลสำหรับ LibreNMS (อย่าลืมใช้รหัสผ่านที่รัดกุม/ปลอดภัยในสภาพแวดล้อมการใช้งานจริง)

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 '=@!#@%$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 เป็นโซนเวลาปัจจุบันของคุณ เช่น “Africa/Kampala ” ดังที่แสดงในภาพหน้าจอต่อไปนี้

------------ 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. จากนั้นให้เปิดใช้งานโมดูล mcrypt PHP ใน Ubuntu และรีสตาร์ท 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 สำหรับ LibreNMS

12. ในขั้นตอนนี้ คุณต้องกำหนดค่าบล็อกเซิร์ฟเวอร์ Nginx สำหรับ librenms เพื่อเข้าถึง UI ของเว็บ สร้างไฟล์ .conf ตามที่แสดง

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

เพิ่ม config ต่อไปนี้ แก้ไข 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

หมายเหตุ: ใน CentOS/RHEL คุณจะต้องปิดการใช้งานส่วน ไซต์เริ่มต้น หากนี่คือ เฉพาะไซต์ที่คุณโฮสต์เท่านั้น ลบส่วนเซิร์ฟเวอร์ออกจากไฟล์ /etc/nginx/nginx.conf

14. นอกจากนี้บน CentOS/RHEL คุณต้องติดตั้งเครื่องมือนโยบายสำหรับ SELinux และกำหนดค่า >บริบทที่จำเป็นโดย LibreNMS โดยใช้คำสั่งต่อไปนี้

------------ 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 โดยมีเนื้อหาดังต่อไปนี้

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 สำหรับ LibreNMS

18. ตอนนี้ใช้การกำหนดค่า snmp ตัวอย่างเพื่อสร้างไฟล์การกำหนดค่าของคุณและเปิดเพื่อแก้ไขดังต่อไปนี้

------------ 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. ถัดไป ดาวน์โหลดเชลล์สคริปต์บนระบบของคุณ ซึ่งจะช่วยตรวจสอบว่าระบบปฏิบัติการใดและหากเป็น Linux ก็จะตรวจพบการกระจาย Linux ใดที่คุณกำลังใช้:

------------ 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: สร้าง Cron และกำหนดค่า Logrotate

20. ตอนนี้ให้รันคำสั่งด้านล่างเพื่อตั้งค่างาน cron สำหรับ LibreNMS

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

21. ถัดไป บันทึก LibreNMS ทั้งหมดจะถูกบันทึกไว้ใน /opt/librenms/logs คุณสามารถกำหนดค่าบันทึกเหล่านี้ให้หมุนอัตโนมัติได้ โดยใช้ไฟล์ปรับแต่ง logrotate ที่ให้มาเช่นนี้

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

เพื่อให้ที่อยู่นี้ทำงานบนเครื่องท้องถิ่นได้ คุณต้องตั้งค่า DNS ภายในโดยใช้ไฟล์โฮสต์ (/etc/hosts) เพื่อวัตถุประสงค์ในการแก้ปัญหาโดเมนในเครื่องหรือการทดสอบก่อนที่จะเผยแพร่

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
<?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'] = '=@!#@%$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/

LibreNMS เป็นระบบตรวจสอบเครือข่ายที่มีคุณลักษณะครบถ้วนซึ่งสนับสนุนฮาร์ดแวร์เครือข่ายที่หลากหลาย เราหวังว่านี่จะเป็นคู่มือการติดตั้งที่ชัดเจน หากคุณมีคำถามใดๆ โปรดติดต่อเราผ่านแบบฟอร์มคำติชมด้านล่าง