راقب أجهزتك باستخدام LibreNMS على Ubuntu 16.04

LibreNMS هو نظام مراقبة شبكة مفتوح المصدر كامل المواصفات. يستخدم SNMP للحصول على البيانات من أجهزة مختلفة. يتم دعم مجموعة متنوعة من الأجهزة في LibreNMS مثل Cisco و Linux و FreeBSD و Juniper و Brocade و Foundry و HP وغيرها الكثير. وهو يدعم العديد من آليات المصادقة ويدعم المصادقة الثنائية. لديها نظام تنبيه قابل للتخصيص يمكنه تنبيه مدير الشبكة عبر البريد الإلكتروني أو IRC أو slack.

المتطلبات الأساسية

في هذا البرنامج التعليمي ، سنستخدم nms.example.com كاسم المجال الموجه نحو مثيل Vultr. يرجى التأكد من استبدال جميع حالات اسم النطاق المثال بالاسم الفعلي.

قم بتحديث نظامك الأساسي باستخدام الدليل كيفية تحديث Ubuntu 16.04 . بمجرد تحديث النظام الخاص بك ، انتقل إلى تثبيت التبعيات.

قم بتثبيت Nginx و PHP

تمت كتابة الواجهة الأمامية لـ LibreNMS بـ PHP ، وبالتالي سنحتاج إلى تثبيت خادم ويب و PHP. في هذا البرنامج التعليمي ، سنقوم بتثبيت Nginx مع PHP 7.2 للحصول على أقصى قدر من الأمان والأداء.

قم بتثبيت Nginx.

sudo apt -y install nginx

قم بتشغيل Nginx وتمكينه من بدء التشغيل تلقائيًا.

sudo systemctl start nginx
sudo systemctl enable nginx

قم بإضافة مستودع Remi وتمكينه ، حيث يحتوي مستودع apt الافتراضي على إصدار قديم من PHP.

sudo add-apt-repository --yes ppa:ondrej/php
sudo apt update

قم بتثبيت PHP الإصدار 7.2 مع الوحدات المطلوبة من قبل LibreNMS.

sudo apt -y install php7.2 php7.2-cli php7.2-common php7.2-curl php7.2-fpm php7.2-gd php7.2-mysql php7.2-snmp php7.2-mbstring php7.2-xml php7.2-zip zip unzip

افتح ملف التهيئة المحمل في محرر.

sudo nano /etc/php/7.2/fpm/php.ini

ابحث عن الخطوط التالية.

;cgi.fix_pathinfo=1
;date.timezone =

قم بإلغاء التعليق واستخدام هذه القيم بدلاً من ذلك ، Asia/Kolkata استبدل بمنطقتك الزمنية المحلية.

cgi.fix_pathinfo=0
date.timezone = Asia/Kolkata

ستحتاج أيضًا إلى تغيير المنطقة الزمنية للنظام عن طريق تشغيل الأمر التالي.

sudo ln -sf /usr/share/zoneinfo/Asia/Kolkata /etc/localtime

أعد تشغيل PHP-FPM.

sudo systemctl restart php7.2-fpm

قم بتثبيت MariaDB

MariaDB هو شوكة مفتوحة المصدر لـ MySQL. أضف مستودع MariaDB إلى نظامك ، حيث يحتوي مستودع Ubuntu الافتراضي على إصدار أقدم من MariaDB.

sudo apt-key adv --yes --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mariadb.biz.net.id/repo/10.2/ubuntu xenial main'
sudo apt update

قم بتثبيت MariaDB. أثناء التثبيت ، سيطلب المثبت كلمة مرور rootمستخدم MySQL . أدخل كلمة مرور قوية.

sudo apt -y install mariadb-server

قبل أن نبدأ في استخدام MariaDB ، سنحتاج إلى تعديل التكوين قليلاً. افتح ملف التكوين.

sudo nano /etc/mysql/conf.d/mariadb.cnf 

أضف التعليمات البرمجية التالية إلى نهاية الملف.

[mysqld]
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0

أعد تشغيل MariaDB وتمكينه من البدء تلقائيًا في وقت التمهيد.

sudo systemctl restart mariadb.service 
sudo systemctl enable mariadb.service

قبل تكوين قاعدة البيانات ، ستحتاج إلى تأمين مثيل MariaDB.

sudo mysql_secure_installation

ستتم مطالبتك بكلمة مرور الجذر MariaDB الحالية ، وبعد ذلك ستتم مطالبتك بتغيير rootكلمة المرور. نظرًا لأننا قمنا بالفعل بتعيين كلمة مرور قوية rootللمستخدم أثناء التثبيت ، تجاوزها عن طريق الإجابة " N". لجميع الأسئلة الأخرى ، أجب " Y". الأسئلة المطروحة ذاتيّة.

قم بتسجيل الدخول إلى هيكل MySQL كجذر.

mysql -u root -p

قم بتوفير كلمة المرور لمستخدم الجذر MariaDB لتسجيل الدخول. قم بتشغيل الاستعلامات التالية لإنشاء قاعدة بيانات ومستخدم قاعدة بيانات لتثبيت LibreNMS.

CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
EXIT;

يمكنك استبدال اسم قاعدة البيانات واسم librenms المستخدم librenms وفقًا لاختيارك. يرجى التأكد من التغيير StrongPassword إلى كلمة مرور قوية للغاية.

قم بتثبيت LibreNMS

بصرف النظر عن التبعيات أعلاه ، يحتاج LibreNMS إلى عدد قليل من التبعيات.

sudo apt -y install fping git imagemagick jwhois mtr graphviz nmap python-memcache python-mysqldb rrdtool snmp snmpd whois composer

إضافة مستخدم جديد غير مميز لتطبيق LibreNMS.

sudo useradd librenms -d /opt/librenms -M -r
sudo usermod -aG www-data librenms

يمكن تثبيت LibreNMS مباشرة عن طريق استنساخ مستودع Github.

cd /opt
sudo git clone https://github.com/librenms/librenms.git librenms

قم بتغيير الملكية.

sudo chown librenms:librenms -R /opt/librenms

قم بتثبيت تبعيات PHP.

cd /opt/librenms
sudo su librenms -c "composer install"

يعتمد LibreNMS على SNMP في العديد من المهام. نظرًا لأننا قمنا بالفعل بتثبيت SNMP ، انسخ مثال ملف التكوين إلى موقعه.

sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf

افتح ملف التكوين في المحرر.

sudo nano /etc/snmp/snmpd.conf

ابحث عن هذا الخط.

com2sec readonly  default         RANDOMSTRINGGOESHERE

قم بتحرير النص RANDOMSTRINGGOESHERE واستبدال سلسلة المجتمع بأي سلسلة من اختيارك. فمثلا.

com2sec readonly  default         my-org

تذكر السلسلة لأنها ستكون مطلوبة لاحقًا عندما نضيف أول جهاز SNMP.

يحتاج SNMP أيضًا إلى معلومات حول إصدار التوزيع. قم بتنزيل وتثبيت البرنامج النصي للعثور على إصدار التوزيع.

sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
sudo chmod +x /usr/bin/distro

ابدأ تشغيل خدمة SNMP daemon وتمكينها من البدء تلقائيًا في وقت التمهيد.

sudo systemctl enable snmpd
sudo systemctl restart snmpd

ستحتاج الآن إلى إضافة بعض إدخالات crontab لتشغيل المهام المجدولة. قم بإنشاء ملف مهمة cron جديد.

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

أعد تشغيل خدمة cron daemon.

sudo systemctl restart cron

قم بالإعداد logrotate بحيث يتم تحديث ملفات السجل تلقائيًا بمرور الوقت.

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

أخيرًا ، قم بتعيين الملكية والأذونات المناسبة.

sudo chown -R librenms:www-data /opt/librenms
sudo chmod g+w -R /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

تكوينات SSL و Nginx VHost

لا يتم تأمين تسجيلات الدخول والمعلومات الأخرى المرسلة من خلال واجهة الويب الخاصة بـ LibreNMS إذا لم يتم تشفير الاتصال باستخدام SSL. سنقوم بتهيئة Nginx لاستخدام SSL الذي تم إنشاؤه باستخدام Let's Encrypt free SSL.

أضف مستودع Certbot.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

قم بتثبيت Certbot ، وهو تطبيق العميل لـ Let's Encrypt CA.

sudo apt -y install certbot

ملاحظة : للحصول على شهادات من Let's Encrypt CA ، يجب توجيه النطاق الذي سيتم إنشاء الشهادات من أجله إلى الخادم. إذا لم يكن الأمر كذلك ، قم بإجراء التغييرات اللازمة على سجلات DNS للمجال وانتظر DNS للنشر قبل إجراء طلب الشهادة مرة أخرى. يتحقق Certbot من سلطة المجال قبل تقديم الشهادات.

إنشاء شهادات SSL.

sudo certbot certonly --webroot -w /var/www/html -d nms.example.com

من المرجح أن يتم تخزين الشهادات التي تم إنشاؤها في /etc/letsencrypt/live/nms.example.com/الدليل. سيتم تخزين شهادة SSL كـ وسيتم تخزين fullchain.pem المفتاح الخاص كـ privkey.pem.

تنتهي صلاحية شهادات التشفير في غضون 90 يومًا ، وبالتالي يوصى بإعداد التجديد التلقائي للشهادات باستخدام وظيفة cron.

افتح ملف مهمة كرون.

sudo crontab -e

أضف السطر التالي في نهاية الملف.

30 5 * * 1 /usr/bin/certbot renew --quiet

سيتم تشغيل وظيفة cron المذكورة أعلاه كل يوم إثنين الساعة 5:30 صباحًا بالتوقيت المحلي. إذا كانت الشهادة ستنتهي صلاحيتها ، فسيتم تجديدها تلقائيًا.

إنشاء مضيف افتراضي جديد.

sudo nano /etc/nginx/sites-available/librenms

تعبئة الملف.

server {
    listen 80;
    server_name nms.example.com;
    return 301 https://$host$request_uri;
}
server {

    listen 443;
    server_name nms.example.com;

    ssl_certificate           /etc/letsencrypt/live/nms.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/nms.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log    /opt/librenms/logs/librenms.nginx.access.log;
    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:/run/php/php7.2-fpm.sock;
    }
    location ~ /\.ht {
        deny all;
    }
 }

استبدل nms.example.com بنطاقك الفعلي في التكوين أعلاه.

تنشيط التكوين الذي تم إنشاؤه حديثًا.

sudo ln -s /etc/nginx/sites-available/librenms /etc/nginx/sites-enabled/librenms

أعد تشغيل Nginx.

sudo systemctl restart nginx

التثبيت باستخدام WebUI

لإنهاء التثبيت ، افتح https://nms.example.com المتصفح المفضل لديك. سترى تلبية المتطلبات. قدم تفاصيل قاعدة البيانات الخاصة بك وإنشاء حساب إداري جديد. بمجرد التثبيت ، ستحصل على رسالة للتحقق من التثبيت. انقر فوق الارتباط وقم بتسجيل الدخول باستخدام حساب المسؤول. يجب أن ترى أن كل شيء ما عدا الحالة " Poller" له حالة " Ok".

راقب أجهزتك باستخدام LibreNMS على Ubuntu 16.04

الآن ، انقر على الرابط لإضافة جهاز. على Add Deviceواجهة " " ، قدم اسم المضيف مثل المضيف المحلي واترك كل شيء كما هو. قدم سلسلة المجتمع الخاص بك في مجال المجتمع. يجب أن تكون نفس السلسلة التي قدمتها بالضبط snmpd.confأثناء تكوين SNMP.

راقب أجهزتك باستخدام LibreNMS على Ubuntu 16.04

بمجرد إضافة الجهاز ، يمكنك رؤية التفاصيل بالانتقال إلى Devicesعلامة التبويب "". وبالمثل ، يمكنك إضافة المزيد من الأجهزة إلى تطبيق LibreNMS لرصد "على مدار الساعة".



Leave a Comment

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

6 أشياء شديدة الجنون حول نينتندو سويتش

6 أشياء شديدة الجنون حول نينتندو سويتش

يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.

وظائف طبقات معمارية مرجعية للبيانات الضخمة

وظائف طبقات معمارية مرجعية للبيانات الضخمة

اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد