كيفية استخدام أدوات مثل Top، Netstat، Du، وغيرها لمراقبة موارد الخادم

المقدمة

يستفيد كل نظام كمبيوتر من إدارة ورصد صحيحين. يساعدك الانتباه إلى كيفية تشغيل نظامك على اكتشاف المشاكل وحلها بسرعة.

هناك العديد من أدوات سطر الأوامر التي تم إنشاؤها لهذا الغرض. ستقدم لك هذه الدليل مقدمة إلى بعض التطبيقات الأكثر فائدة لديك في صندوق أدواتك.

المتطلبات المسبقة

لمتابعة هذا الدليل، ستحتاج إلى الوصول إلى كمبيوتر يعمل بنظام تشغيل مبني على Linux. يمكن أن يكون هذا إما خادم افتراضي خاص قمت بالاتصال به باستخدام SSH أو جهازك المحلي. يرجى ملاحظة أن هذا البرنامج التعليمي تم التحقق منه باستخدام خادم Linux يعمل بنظام Ubuntu 20.04، ولكن الأمثلة المقدمة يجب أن تعمل على جهاز يعمل بأي إصدار من أي توزيعة Linux.

إذا كنت تخطط لاستخدام خادم عن بعد لمتابعة هذا الدليل، فإننا نشجعك على إكمال دليل إعداد الخادم الأولي الخاص بنا أولاً. سيضعك ذلك في بيئة خادم آمنة – بما في ذلك مستخدم غير root بامتيازات sudo وجدار حماية مكون بـ UFW – يمكنك استخدامها لبناء مهاراتك في Linux.

الخطوة 1 – كيفية عرض العمليات الجارية في لينكس

يمكنك رؤية جميع العمليات الجارية على خادمك باستخدام الأمر top:

  1. top
Output
top - 15:14:40 up 46 min, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 56 total, 1 running, 55 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1019600k total, 316576k used, 703024k free, 7652k buffers Swap: 0k total, 0k used, 0k free, 258976k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 24188 2120 1300 S 0.0 0.2 0:00.56 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.07 ksoftirqd/0 6 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 7 root RT 0 0 0 0 S 0.0 0.0 0:00.03 watchdog/0 8 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 cpuset 9 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper 10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs

تقدم العدة الأولى من الناتج إحصاءات النظام، مثل حمل المعالج/الذاكرة والعدد الإجمالي للمهام الجارية.

يمكنك رؤية أن هناك عملية واحدة تعمل، و 55 عملية تعتبر نائمة لأنها لا تستخدم دورة معالج المركزية بنشاط.

يعرض بقية الناتج المعروض العمليات الجارية وإحصاءات استخدامها. بشكل افتراضي، يقوم top بفرز هذه تلقائيًا حسب استخدام وحدة المعالجة المركزية، حتى تتمكن من رؤية العمليات الأكثر انشغالًا أولاً. سيستمر top في العمل في الشاشة الخاصة بك حتى تتوقف عنه باستخدام مفتاح التركيبة القياسي Ctrl+C للخروج من عملية تعمل. يرسل هذا إشارة kill، معلمًا العملية بالتوقف برفق إذا كان بإمكانها ذلك.

نسخة محسنة من top، تُسمى htop، متاحة في معظم مستودعات الحزم. على Ubuntu 20.04، يمكنك تثبيتها باستخدام apt:

  1. sudo apt install htop

بعد ذلك، سيكون الأمر htop متاحًا:

  1. htop
Output
Mem[||||||||||| 49/995MB] Load average: 0.00 0.03 0.05 CPU[ 0.0%] Tasks: 21, 3 thr; 1 running Swp[ 0/0MB] Uptime: 00:58:11 PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command 1259 root 20 0 25660 1880 1368 R 0.0 0.2 0:00.06 htop 1 root 20 0 24188 2120 1300 S 0.0 0.2 0:00.56 /sbin/init 311 root 20 0 17224 636 440 S 0.0 0.1 0:00.07 upstart-udev-brid 314 root 20 0 21592 1280 760 S 0.0 0.1 0:00.06 /sbin/udevd --dae 389 messagebu 20 0 23808 688 444 S 0.0 0.1 0:00.01 dbus-daemon --sys 407 syslog 20 0 243M 1404 1080 S 0.0 0.1 0:00.02 rsyslogd -c5 408 syslog 20 0 243M 1404 1080 S 0.0 0.1 0:00.00 rsyslogd -c5 409 syslog 20 0 243M 1404 1080 S 0.0 0.1 0:00.00 rsyslogd -c5 406 syslog 20 0 243M 1404 1080 S 0.0 0.1 0:00.04 rsyslogd -c5 553 root 20 0 15180 400 204 S 0.0 0.0 0:00.01 upstart-socket-br

htop يوفر تصورًا أفضل لمواضيع وحدة المعالجة المركزية المتعددة ، ووعيًا أفضل بدعم الألوان في الطرفيات الحديثة ، وخيارات ترتيب أكثر ، بين ميزات أخرى. على عكس top، فإنه ليس مثبتًا دائمًا بشكل افتراضي ، ولكن يمكن اعتباره بديلًا فوريًا. يمكنك الخروج من htop عن طريق الضغط على Ctrl+C كما هو الحال مع top.

وإليك بعض اختصارات لوحة المفاتيح التي ستساعدك في استخدام htop بشكل أكثر فعالية:

  • M: Sort processes by memory usage
  • P: Sort processes by processor usage
  • ?: الوصول إلى المساعدة
  • k: Kill current/tagged process
  • F2: تكوين htop. يمكنك اختيار خيارات العرض هنا.
  • /:: البحث في العمليات

هناك العديد من الخيارات الأخرى التي يمكنك الوصول إليها من خلال المساعدة أو الإعداد. يجب أن تكون هذه محطاتك الأولى في استكشاف وظائف htop. في الخطوة التالية ، ستتعلم كيفية مراقبة عرض النطاق الترددي لشبكتك.

الخطوة 2 – كيفية مراقبة عرض النطاق الترددي لشبكتك

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

على أوبونتو ، يمكنك تثبيت nethogs باستخدام الأمر التالي:

  1. sudo apt install nethogs

بعد ذلك ، سيكون الأمر nethogs متاحًا:

  1. nethogs
Output
NetHogs version 0.8.0 PID USER PROGRAM DEV SENT RECEIVED 3379 root /usr/sbin/sshd eth0 0.485 0.182 KB/sec 820 root sshd: root@pts/0 eth0 0.427 0.052 KB/sec ? root unknown TCP 0.000 0.000 KB/sec TOTAL 0.912 0.233 KB/sec

nethogs يقوم بربط كل تطبيق بحركة مروره عبر الشبكة.

هناك فقط عدد قليل من الأوامر التي يمكنك استخدامها للتحكم في nethogs:

  • M: Change displays between “kb/s”, “kb”, “b”, and “mb”.
  • R: Sort by traffic received.
  • S: Sort by traffic sent.
  • Q: quit

iptraf-ng هي طريقة أخرى لمراقبة حركة الشبكة. يوفر واجهات مراقبة تفاعلية مختلفة.

ملاحظة: يتطلب IPTraf حجم شاشة يبلغ على الأقل 80 عمودًا و 24 سطرًا.

على أوبونتو، يمكنك تثبيت iptraf-ng باستخدام الأمر التالي:

  1. sudo apt install iptraf-ng

يجب تشغيل iptraf-ng بصلاحيات root، لذا يجب أن تسبقه بـ sudo:

  1. sudo iptraf-ng

ستظهر لك قائمة تستخدم إطار واجهة سطر الأوامر الشهيرة المسماة ncurses.

مع هذه القائمة، يمكنك تحديد أي واجهة تريد الوصول إليها.

على سبيل المثال، للحصول على نظرة عامة على كل حركة الشبكة، يمكنك تحديد القائمة الأولى ثم “جميع الواجهات”. ستعرض لك شاشة تبدو مثل هذا:

هنا، يمكنك مشاهدة عناوين IP التي تتواصل عليها على جميع واجهات الشبكة الخاصة بك.

إذا كنت ترغب في تحويل هذه العناوين IP إلى نطاقات، يمكنك تمكين البحث العكسي عن DNS بالخروج من شاشة المرور، واختيار تكوين ثم تبديل البحث العكسي عن DNS.

يمكنك أيضًا تمكين أسماء خدمات TCP/UDP لرؤية أسماء الخدمات التي يتم تشغيلها بدلاً من أرقام المنافذ.

مع تمكين كلتا هذه الخيارات، قد تبدو الشاشة بهذا الشكل:

أمر netstat هو أداة متعددة الاستخدامات أخرى لجمع معلومات الشبكة.

netstat مثبت افتراضيًا على معظم الأنظمة الحديثة، ولكن يمكنك تثبيته بنفسك عن طريق تنزيله من مستودعات الحزم الافتراضية لخادمك. في معظم أنظمة Linux، بما في ذلك Ubuntu، يكون الحزمة التي تحتوي على netstat هي net-tools:

  1. sudo apt install net-tools

افتراضيًا، تطبع الأمر netstat بمفرده قائمة بالمقابس المفتوحة:

  1. netstat
Output
Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 192.241.187.204:ssh ip223.hichina.com:50324 ESTABLISHED tcp 0 0 192.241.187.204:ssh rrcs-72-43-115-18:50615 ESTABLISHED Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path unix 5 [ ] DGRAM 6559 /dev/log unix 3 [ ] STREAM CONNECTED 9386 unix 3 [ ] STREAM CONNECTED 9385 . . .

إذا أضفت خيار -a، فسيقوم بإدراج جميع المنافذ، سواء كانت مستمعة أم غير مستمعة:

  1. netstat -a
Output
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:ssh *:* LISTEN tcp 0 0 192.241.187.204:ssh rrcs-72-43-115-18:50615 ESTABLISHED tcp6 0 0 [::]:ssh [::]:* LISTEN Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 6195 @/com/ubuntu/upstart unix 2 [ ACC ] STREAM LISTENING 7762 /var/run/acpid.socket unix 2 [ ACC ] STREAM LISTENING 6503 /var/run/dbus/system_bus_socket . . .

إذا كنت ترغب في تصفية الاطلاع لرؤية اتصالات TCP أو UDP فقط، استخدم الأعلام -t أو -u على التوالي:

  1. netstat -at
Output
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:ssh *:* LISTEN tcp 0 0 192.241.187.204:ssh rrcs-72-43-115-18:50615 ESTABLISHED tcp6 0 0 [::]:ssh [::]:* LISTEN

انظر إلى الإحصائيات عن طريق تمرير العلم “-s”:

  1. netstat -s
Output
Ip: 13500 total packets received 0 forwarded 0 incoming packets discarded 13500 incoming packets delivered 3078 requests sent out 16 dropped because of missing route Icmp: 41 ICMP messages received 0 input ICMP message failed. ICMP input histogram: echo requests: 1 echo replies: 40 . . .

إذا كنت ترغب في تحديث الإخراج بشكل مستمر، يمكنك استخدام العلم -c. هناك العديد من الخيارات الأخرى المتاحة لـ netstat والتي يمكنك معرفتها من خلال استعراض صفحة الدليل الخاصة به.

في الخطوة التالية، ستتعلم بعض الطرق المفيدة لمراقبة استخدامك للقرص.

الخطوة 3 – كيفية مراقبة استخدام القرص الخاص بك

للحصول على نظرة سريعة على كمية المساحة المتبقية على الأقراص المتصلة بك، يمكنك استخدام برنامج df.

بدون أي خيارات، يبدو الإخراج كما يلي:

  1. df
Output
Filesystem 1K-blocks Used Available Use% Mounted on /dev/vda 31383196 1228936 28581396 5% / udev 505152 4 505148 1% /dev tmpfs 203920 204 203716 1% /run none 5120 0 5120 0% /run/lock none 509800 0 509800 0% /run/shm

يقوم هذا بإخراج استخدام القرص بالبايت، والأمر قد يكون صعبًا قليلاً للقراءة.

لحل هذه المشكلة، يمكنك تحديد الإخراج بتنسيق قابل للقراءة من البشر:

  1. df -h
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda 30G 1.2G 28G 5% / udev 494M 4.0K 494M 1% /dev tmpfs 200M 204K 199M 1% /run none 5.0M 0 5.0M 0% /run/lock none 498M 0 498M 0% /run/shm

إذا كنت ترغب في رؤية المساحة الكلية المتاحة على جميع أنظمة الملفات، يمكنك تمرير الخيار --total. سيقوم هذا بإضافة صف في الأسفل يحتوي على معلومات ملخصة:

  1. df -h --total
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda 30G 1.2G 28G 5% / udev 494M 4.0K 494M 1% /dev tmpfs 200M 204K 199M 1% /run none 5.0M 0 5.0M 0% /run/lock none 498M 0 498M 0% /run/shm total 32G 1.2G 29G 4%

df يمكن أن يوفر لمحة مفيدة. يقدم أمر آخر، du تقسيمًا حسب الدليل.

du سيحلل الاستخدام للدليل الحالي وأي دلائل فرعية. المخرج الافتراضي لتشغيل du في دليل المستخدم الرئيسي الذي يكاد يكون فارغًا يبدو كما يلي:

  1. du
Output
4 ./.cache 8 ./.ssh 28 .

مرة أخرى، يمكنك تحديد الإخراج القابل للقراءة للبشر بتمرير -h:

  1. du -h
Output
4.0K ./.cache 8.0K ./.ssh 28K .

لرؤية أحجام الملفات بالإضافة إلى الدلائل، اكتب ما يلي:

  1. du -a
Output
0 ./.cache/motd.legal-displayed 4 ./.cache 4 ./.ssh/authorized_keys 8 ./.ssh 4 ./.profile 4 ./.bashrc 4 ./.bash_history 28 .

للحصول على إجمالي في الأسفل، يمكنك إضافة الخيار -c:

  1. du -c
Output
4 ./.cache 8 ./.ssh 28 . 28 total

إذا كنت مهتمًا بالإجمالي فقط وليس بالتفاصيل، يمكنك إصدار:

  1. du -s
Output
28 .

هناك أيضًا واجهة مستخدم رسومية لـ du، تسمى بالشكل الصحيح ncdu، التي يمكنك تثبيتها:

  1. sudo apt install ncdu

سيمثل هذا استخدام القرص الخاص بك بشكل رسومي:

  1. ncdu
Output
--- /root ---------------------------------------------------------------------- 8.0KiB [##########] /.ssh 4.0KiB [##### ] /.cache 4.0KiB [##### ] .bashrc 4.0KiB [##### ] .profile 4.0KiB [##### ] .bash_history

يمكنك التنقل في نظام الملفات باستخدام الأسهم للأعلى والأسفل والضغط على Enter في أي مدخل دليل.

في القسم الأخير، ستتعلم كيفية مراقبة استخدام الذاكرة الخاصة بك.

الخطوة 4 – كيفية مراقبة استخدام الذاكرة الخاصة بك

يمكنك التحقق من استخدام الذاكرة الحالي على نظامك باستخدام الأمر free.

عند استخدامه بدون خيارات، يبدو الإخراج على هذا النحو:

  1. free
Output
total used free shared buff/cache available Mem: 1004896 390988 123484 3124 490424 313744 Swap: 0 0 0

لعرضه بتنسيق أكثر قراءة، يمكنك تمرير الخيار -m لعرض الإخراج بالميغابايت:

  1. free -m
Output
total used free shared buff/cache available Mem: 981 382 120 3 478 306 Swap: 0 0 0

تتضمن السطر Mem الذاكرة المستخدمة للتخزين المؤقت والتخزين المؤقت، والتي يتم حررها فور الحاجة لأغراض أخرى. Swap هي الذاكرة التي تمت كتابتها إلى ملف تبديل swapfile على القرص لتوفير الذاكرة النشطة.

أخيرًا، يمكن لأمر vmstat إخراج معلومات مختلفة حول نظامك، بما في ذلك الذاكرة وتبديل الذاكرة وإدخال/إخراج القرص ومعلومات وحدة المعالجة المركزية.

يمكنك استخدام الأمر للحصول على رؤية أخرى لاستخدام الذاكرة:

  1. vmstat
Output
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 0 99340 123712 248296 0 0 0 1 9 3 0 0 100 0

يمكنك رؤية هذا بالميغابايت عن طريق تحديد الوحدات باستخدام العلم -S:

  1. vmstat -S M
Output
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 0 96 120 242 0 0 0 1 9 3 0 0 100 0

للحصول على بعض الإحصائيات العامة حول استخدام الذاكرة، اكتب:

  1. vmstat -s -S M
Output
495 M total memory 398 M used memory 252 M active memory 119 M inactive memory 96 M free memory 120 M buffer memory 242 M swap cache 0 M total swap 0 M used swap 0 M free swap . . .

للحصول على معلومات حول استخدام ذاكرة التخزين المؤقت لعمليات النظام الفردية، اكتب:

  1. vmstat -m -S M
Output
Cache Num Total Size Pages ext4_groupinfo_4k 195 195 104 39 UDPLITEv6 0 0 768 10 UDPv6 10 10 768 10 tw_sock_TCPv6 0 0 256 16 TCPv6 11 11 1408 11 kcopyd_job 0 0 2344 13 dm_uevent 0 0 2464 13 bsg_cmd 0 0 288 14 . . .

سيعطيك ذلك تفاصيل حول نوع المعلومات المخزنة في التخزين المؤقت.

الاستنتاج

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

ثم قد ترغب في التعرف على إدارة العمليات في لينكس باستخدام ps، kill، وnice.

Source:
https://www.digitalocean.com/community/tutorials/how-to-use-top-netstat-du-other-tools-to-monitor-server-resources