نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
LibreNMS هو نظام مراقبة شبكة مفتوح المصدر كامل المواصفات. يستخدم SNMP
للحصول على البيانات من أجهزة مختلفة. يتم دعم مجموعة متنوعة من الأجهزة في LibreNMS مثل Cisco و Linux و FreeBSD و Juniper و Brocade و Foundry و HP وغيرها الكثير. وهو يدعم العديد من آليات المصادقة ويدعم المصادقة الثنائية. لديها نظام تنبيه قابل للتخصيص يمكنه تنبيه مدير الشبكة عبر البريد الإلكتروني أو IRC أو slack.
في هذا البرنامج التعليمي ، سنستخدم nms.example.com
كاسم المجال الموجه نحو مثيل Vultr. يرجى التأكد من استبدال جميع حالات اسم النطاق المثال بالاسم الفعلي.
قم بتحديث نظامك الأساسي باستخدام الدليل كيفية تحديث Ubuntu 16.04 . بمجرد تحديث النظام الخاص بك ، انتقل إلى تثبيت التبعيات.
تمت كتابة الواجهة الأمامية لـ 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 هو شوكة مفتوحة المصدر لـ 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 إلى عدد قليل من التبعيات.
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
لا يتم تأمين تسجيلات الدخول والمعلومات الأخرى المرسلة من خلال واجهة الويب الخاصة بـ 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
لإنهاء التثبيت ، افتح https://nms.example.com
المتصفح المفضل لديك. سترى تلبية المتطلبات. قدم تفاصيل قاعدة البيانات الخاصة بك وإنشاء حساب إداري جديد. بمجرد التثبيت ، ستحصل على رسالة للتحقق من التثبيت. انقر فوق الارتباط وقم بتسجيل الدخول باستخدام حساب المسؤول. يجب أن ترى أن كل شيء ما عدا الحالة " Poller
" له حالة " Ok
".
الآن ، انقر على الرابط لإضافة جهاز. على Add Device
واجهة " " ، قدم اسم المضيف مثل المضيف المحلي واترك كل شيء كما هو. قدم سلسلة المجتمع الخاص بك في مجال المجتمع. يجب أن تكون نفس السلسلة التي قدمتها بالضبط snmpd.conf
أثناء تكوين SNMP.
بمجرد إضافة الجهاز ، يمكنك رؤية التفاصيل بالانتقال إلى Devices
علامة التبويب "". وبالمثل ، يمكنك إضافة المزيد من الأجهزة إلى تطبيق LibreNMS لرصد "على مدار الساعة".
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".
هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.
اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.
اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.
لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟
مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.
ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!
ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.
أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد