في عصر الحوسبة السحابية، أصبحت الأجهزة الافتراضية (VMs) شائعة جدًا، في حين بدأ استخدام الأجهزة المادية في الانخفاض تدريجيًا. في هذا المنشور، سنقدم الأداتين ‘vnStat’ و ‘iftop’ اللتين يمكننا استخدامهما لمراقبة استهلاك البيانات في الأجهزة الافتراضية.
أولاً، أقوم بإنشاء جهاز بالموارد التالية:
معالج 20 جيجاهرتز
ذاكرة رام 16 جيجابايت
قرص SSD بسعة 20 جيجابايت
أقوم بتركيب القرص بصورة Ubuntu 18.04 المتوفرة في مكتبة CloudSigma’s.
Ubuntu 18.04 : مثبت مسبقًا بنواة 64 بت مع برامج تشغيل VirtIO، ومستخدم جذر (superuser)، وPython 2.7.15، وPip 18.0، وOpenSSL 1.1.0i، وCloud-init وآخر التحديثات حتى 2018-09-30.
بعد ذلك، أقوم بتحديث جميع المستودعات والحزم الموجودة على الجهاز.
|
1 2 |
sudo apt update sudo apt upgrade |
الآن بعد أن أصبح نظامنا محدثًا، سأنتقل إلى أدواتنا، ‘vnStat’ و ‘iftop’.
VNSTAT
وفقًا لـ humdi، فإن vnStat هو برنامج مراقبة حركة مرور الشبكة يعتمد على وحدة التحكم لأنظمة Linux و BSD ويحتفظ بسجل لحركة مرور الشبكة للواجهة (الواجهات) المحددة. ويستخدم إحصاءات واجهة الشبكة التي توفرها النواة (kernel) كمصدر للمعلومات. هذا يعني أن vnStat لن يقوم فعليًا بالتنصت على أي حركة مرور ويضمن أيضًا الاستخدام الخفيف لموارد النظام.
بعض ميزات vnStat هي:
- حتى إذا تم إعادة تشغيل النظام، فإن البيانات تظل قائمة.
- يمكنه مراقبة واجهات متعددة في نفس الوقت.
- هناك العديد من خيارات الإخراج، على سبيل المثال، حسب اليوم، وحسب الأسبوع، وما إلى ذلك.
- يمكن للمستخدم تكوين سياسات الاحتفاظ بالبيانات.
- يمكن تكوين الأشهر وفقًا لدورة الفوترة.
- الأداة نفسها خفيفة جدًا واستخدام الموارد ضئيل للغاية.
- سيكون استخدام وحدة المعالجة المركزية (CPU) هو نفسه بغض النظر عن حركة المرور.
التثبيت
استخدم الأمر التالي لتثبيت vnStat:
|
1 |
sudo apt install vnstat |
يجب أن يكتشف واجهة الشبكة تلقائيًا. في حال لم يفعل ذلك، يمكنني التحقق من الواجهة باستخدام الأمر:
|
1 |
ip addr |
في حالتي، يمكنني رؤية واجهتين:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 22:af:d1:32:d2:0b brd ff:ff:ff:ff:ff:ff inet XXX.XXX.XX.XXX/24 brd XXX.XXX.XX.XXX scope global dynamic ens3 valid_lft 1853sec preferred_lft 1853sec inet6 fe80::20af:d1ff:fe32:d20b/64 scope link valid_lft forever preferred_lft forever |
يمكنني تجاهل واجهة loopback. الواجهة التي أريد مراقبتها هي ‘ens3’. يمكنني تحديث هذا في vnStat باستخدام الأمر:
|
1 |
sudo vnstat -u -i ens3 |
دليل الاستخدام
يمكن رؤية دليل الاستخدام باستخدام الأمر: vnStat –help
سيتم وصف الاستخدام على النحو التالي:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
vnStat 1.18 بواسطة Teemu Toivola <tst at iki dot fi> -q, --استعلام استعلام قاعدة البيانات -h, --ساعات عرض ساعات -d, --أيام عرض أيام -m, --أشهر عرض أشهر -w, --أسابيع عرض أسابيع -t, --أفضل 10 عرض أفضل 10 أيام -s, --موجز استخدام موجز مخرجات -u, --تحديث تحديث قاعدة البيانات -i, --الواجهة تحديد الواجهة (الافتراضي: ens3) -?, --مساعدة موجز مساعدة -v, --الإصدار عرض الإصدار -tr, --حركة المرور حساب حركة المرور -ru, --وحدة المعدل تبديل المهيأة المعدل وحدة -l, --مباشر عرض نقل معدل في الوقت الفعلي انظر أيضًا "--longhelp" لـ قائمة الخيارات الكاملة و "man vnstat". |
بمساعدة هذه الأوامر، يمكننا الحصول على مقاييس استخدام البيانات.
لمراقبتها بسهولة وبشكل بديهي، يمكننا تثبيت لوحة تحكم vnStat. فيما يلي خطوات تثبيت لوحة التحكم:
قم بتثبيت التبعيات المطلوبة التالية:
|
1 |
sudo apt install apache2 php wget unzip -y |
بعد تثبيت التبعيات المطلوبة، سنقوم بجلب لوحة التحكم من مستودع github، وفك ضغطها ووضعها في دليل خادم الويب الخاص بنا.
|
1 2 3 |
wget https://github.com/alexandermarston/vnstat-dashboard/archive/master.zip unzip master.zip sudo mv vnstat-dashboard-master/ /var/www/html/vnstat/ |
بعد ذلك، نحتاج إلى تعديل التكوين.
|
1 |
sudo vi /var/www/html/vnstat/config.php |
ستحتاج السطور التالية إلى تغيير. سأقوم بتحديد التغييرات المطلوبة بالخط العريض.
|
1 2 3 4 5 6 7 |
$use_predefined_interfaces = <strong>true</strong>; if ($use_predefined_interfaces == <strong>true</strong>) { $interface_list = <strong>["ens3"]</strong>; $interface_name<strong>['ens3']</strong> = "واجهة الاختبار"; } |
يمكنني تسمية الواجهة لتسهيل مراقبتها. يمكن أن يكون لدى الشخص واجهات متعددة لمراقبتها. يمكننا إضافتها هنا.
بعد إجراء التغييرات، افتح <<IP-ADDRESS>>/vnstat
أنا قادر على رؤية البيانات بطريقة أنيقة الآن.


IFTOP
يستمع iftop إلى حركة مرور الشبكة على واجهة محددة، أو على أول واجهة يمكنه العثور عليها والتي تبدو كواجهة خارجية إذا لم يتم تحديد أي واجهة. ويعرض جدولاً باستهلاك النطاق الترددي الحالي بواسطة أزواج من الأجهزة المضيفة. يجب علينا تشغيل iftop بصلاحيات كافية لمراقبة جميع حركات مرور الشبكة على الواجهة.
التثبيت
يمكننا تثبيت Iftop باستخدام الأمر التالي:
|
1 |
sudo apt install iftop |
دليل الاستخدام
يمكن رؤية دليل الاستخدام باستخدام الأمر: iftop -h
سيتم وصف الاستخدام على النحو التالي:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
iftop: عرض استخدام النطاق الترددي على an واجهة بواسطة المضيف الملخص: iftop -h | [-npblNBP] [-i interface] [-f تصفية رمز] [-F net/mask] [-G net6/mask6] -h عرض هذه الرسالة -n عدم إجراء عمليات البحث عن اسم المضيف -N عدم t تحويل أرقام المنافذ إلى خدمات -p تشغيل في المختلط وضع (إظهار حركة المرور بين أخرى المضيفين على الـ نفس الشبكة قسم) -b لا'تـ عرض مخطط شريطي بياني لـ حركة المرور -B عرض عرض النطاق الترددي بالـ بايت -i واجهة الاستماع على المسماة الواجهة -f فلتر كود استخدام فلتر كود لـ تحديد الحزم لـ عدها (الافتراضي: لا شيء, ولكن فقط IP حزم يتم عدها) -F شبكة/قناع إظهار حركة المرور تدفقات داخل/وخارج من IPv4 شبكة -G net6/mask6 إظهار حركة المرور تدفقات داخل/وخارج من IPv6 شبكة -l عرض و عد رابط-محلي IPv6 حركة المرور (الافتراضي: إيقاف) -P إظهار المنافذ مثل أيضاً مثل المضيفين -m حد يحدد الـ الأقصى الحد لـ الـ عرض النطاق الترددي مقياس -c تكوين ملف يحدد ـ بديل تكوين ملف -t استخدام نصية واجهة بدون ncurses فرز ترتيب: -o 2s فرز حسب الأول العمود (2s حركة المرور متوسط) -o 10s فرز حسب الثاني العمود (10s حركة المرور متوسط) [الافتراضي] -o 40s فرز حسب الثالث العمود (40s حركة المرور متوسط) -o المصدر فرز حسب المصدر عنوان -o الوجهة فرز حسب الوجهة عنوان الـ التالية الخيارات تكون فقط متاحة في الاقتران مع -t -s num طباعة واحد واحد نصي مخرج بعد num ثوانٍ, ثم الخروج -L num عدد من الأسطر لـ طباعتها iftop, إصدار 1.0pre4 حقوق الطبع والنشر (c) 2002 Paul Warren <pdw@ex-parrot.com> و المساهمين |
يتطلب الأمر صلاحيات root للعمل. أنا ببساطة أستخدم sudo لأن المستخدم الخاص بي cloudsigma هو مستخدم sudoer. يمكنني أيضاً استخدام الأمر ‘sudo su’ ثم تشغيل جميع الأوامر كمستخدم root.
الأمر التالي سيعرض لي جميع الاتصالات على الواجهة ‘ens3’ ومعاملات البيانات:
|
1 2 |
sudo su iftop |
طريقة أبسط إذا كان المطلوب هو التقاط حركة مرور البيانات لفترة زمنية معينة:
|
1 |
iftop -t -s 30 |
سيلخص الأمر أعلاه معاملات حركة مرور البيانات للـ 30 ثانية القادمة، وبعد انتهاء الوقت، سيعطي جدولاً يسرد جميع استخدامات البيانات ومعدلات النقل.
على الرغم من أن iftop يعطي معدلات نقل مباشرة، إلا أنه لا يخزن البيانات أو يحتوي على لوحة تحكم تتيح لنا تصور الأنماط ورؤيتها بشكل بديهي. لذلك، إذا أردنا رؤية معدلات نقل البيانات المباشرة، فإننا نوصي بـ iftop. لمراقبة حركة مرور البيانات على مدى فترة أطول، نوصي بـ vnStat.
نأمل أن تتمكن من استخدام هذا الدليل لصالحك وتطبيق أساسيات كيفية استخدام vnStat و iftop لمراقبة استهلاك البيانات داخل VM.
التعليقات
لا توجد تعليقات بعد. كن أول من يعلق.