LibreNMS نظام مراقبة الشبكات المبني على PHP ، وهو مفتوح المصدر، قوي، وغني بالميزات، يستخدم بروتوكول SNMP لاكتشاف الشبكات تلقائيًا. يدعم مجموعة واسعة من أنظمة التشغيل بما في ذلك Linux، FreeBSD، وأجهزة الشبكات مثل Cisco، Juniper، Brocade، Foundry، HP وغيرها الكثير.
ميزات LibreNMS:
- يكتشف الشبكة بأكملها تلقائيًا باستخدام هذه البروتوكولات: CDP، FDP، LLDP، OSPF، BGP، SNMP، و ARP.
- يحتوي على واجهة مستخدم ويب ودية للهواتف المحمولة، مع لوحات تحكم قابلة للتخصيص.
- يدعم وكيل Unix.
- يدعم التوسع الأفقي للتوسع مع شبكتك.
- يدعم نظام تنبيه مرن وقابل للتخصيص بشكل كبير؛ ويُرسل الإشعارات عبر البريد الإلكتروني، و IRC، و Slack، والمزيد.
- يدعم واجهة برمجة التطبيقات لإدارة ورسم البيانات واسترجاعها من نظامك.
- يقدم نظام فوترة حركة المرور.
- يدعم أيضًا تطبيقات Android و iOS التي تقدم وظائف أساسية.
- يدعم التكامل مع NfSen، collectd، SmokePing، RANCID و Oxidized.
- يدعم طرق متعددة للمصادقة مثل MySQL، HTTP، LDAP، Radius، و Active Directory.
- يتيح التحديث التلقائي والعديد من الميزات الأخرى.
يتوفر عرض توضيحي عبر الإنترنت لتجربة قبل تثبيت LibreNMS على أنظمة Linux.
Demo URL: https://demo.librenms.org/ Username: demo Password: demo
بيئة الاختبار:
في هذا البرنامج التعليمي سوف نتعلم كيفية تثبيت أداة مراقبة الشبكة LibreNMS على نظام Linux مثبت حديثًا بنسخة أوبونتو أو سنت أو إس (تعمل التعليمات نفسها أيضًا على ديبيان و التوزيعات المعتمدة على RHEL).
ملاحظة: يجب تشغيل جميع هذه التعليمات في هذه المقالة كمستخدم الجذر. إذا لم تكن كذلك، استخدم أمر sudo للحصول على امتيازات مستخدم الجذر.
الخطوة 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 و snmp للبدء التلقائي في وقت التمهيد (وهذا هو الحال عادة مع أوبونتو)، وإلا، يمكنك تشغيل الأوامر أدناه لبدء وتمكينها.
------------ 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 (على أوبونتو) أو 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 عبر أمر 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، تحتاج إلى تأمين تثبيتك، قم بتشغيل النص الأمني المقدم في حزمة البرنامج الثنائي. سيطلب منك تعيين كلمة مرور الجذر، إزالة المستخدمين المجهولين، تعطيل تسجيل الدخول الجذر عن بُعد وإزالة قاعدة بيانات الاختبار.
يمكنك تشغيل النص بإصدار الأمر أدناه والرد على جميع الأسئلة بـ نعم/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 من أجل الوصول إلى واجهة المستخدم عبر الويب. أنشئ ملف .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
ملاحظة: في CentOS/RHEL، ستحتاج إلى تعطيل قسم default site إذا كان هذا هو الموقع الوحيد الذي تستضيفه. احذف قسم الخادم من ملف /etc/nginx/nginx.conf.
14. أيضًا في CentOS/RHEL، ستحتاج إلى تثبيت أداة policy tool لـ SELinux وتكوين contexts المطلوبة بواسطة 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
١٥. السماح 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 };
١٦. ثم قم بتشغيل هذه الأوامر.
------------ 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
١٧. إذا كنت تستخدم جدار الحماية على 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
الخطوة ٦: تكوين SNMPD لـ LibreNMS
١٨. الآن استخدم تكوين 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
وقم بتغييرها إلى سلسلة المجتمع الخاصة بك كما هو موضح في اللقطة.

١٩. بعد ذلك، قم بتنزيل سكريبت للقشرة على نظامك، والذي يساعد في اكتشاف نظام التشغيل وإذا كان 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
الخطوة ٧: إنشاء Cron وتكوين Logrotate
٢٠. الآن قم بتشغيل الأمر أدناه لإعداد وظيفة cron لـ LibreNMS.
# cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
٢١. بعد ذلك، يتم تسجيل جميع سجلات 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
الخطوة ٨: الوصول إلى مثبت الويب LibreNMS
٢٢. بعد ذلك، استخدم عنوان الويب التالي للوصول إلى مثبت الويب واتبع التعليمات التي تظهر على الشاشة.
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 قضيتين، الأول أن لم يتم إضافة الأجهزة (هذه تحذير للآن)، والثاني أنه لم يتم 设置 تصحيح ال permisos في ملف ال config (/opt/librenms/config.php) التي تم إضافته يدويًا، كما يظهر في الصورة التالية.

الآن قم بتنفيذ الأمر التالي لتحديد ال permisos الصحيح على ملف ال config.
$ sudo chown -R librenms:librenms /opt/librenms/config.php
34. لإضافة الأجهزة، أذهب إلى: http://librenms.tecmint.lan/addhost. بعد إضافة الأجهزة، يمكنك الذهاب إلى الصفحة الرئيسية وإضافة أنواع مختلفة من الأرشيفات.

هذا كل شيء! يمكنك الحصول على معلومات أكثر بما فيها التثبيت والإعداد في المساعدة التقنية ل LibreNMS على https://docs.librenms.org/.
LibreNMS نظام مراقبة الشبكات المكتمل تدعم مجموعة واسعة من الأجهزة الشبكية. نأمل أن هذا كان درسًا توصيفيًا واضحًا، إذا كان لد
Source:
https://www.tecmint.com/install-librenms-monitoring-on-ubuntu-centos/