في هذه المقالة، ستتعلم كيفية مراقبة حمولة وطلبات خادم الويب Apache باستخدام وحدة mod_status في توزيعات Linux الخاصة بك مثل CentOS، RHEL، و Fedora.
ما هو mod_status؟
mod_status هو وحدة Apache تساعد في مراقبة حمولة خادم الويب واتصالات httpd الحالية بواجهة HTML يمكن الوصول إليها عبر متصفح الويب.
تعرض mod_status لـ Apache صفحة HTML عادية تحتوي على معلومات حول الإحصائيات الحالية لخادم الويب بما في ذلك:
- العدد الإجمالي للطلبات الواردة
- العدد الإجمالي للبايتات وعدادات الخادم
- استخدام وحدة المعالجة المركزية لخادم الويب
- حمولة الخادم
- وقت تشغيل الخادم
- المرور الإجمالي
- العدد الإجمالي للعمال الخاليين
- PIDs مع العملاء المعنيين والمزيد.
قام مشروع Apache الافتراضي بتمكين صفحة إحصائيات خادمهم للجمهور العام. للحصول على عرض توضيحي لصفحة حالة موقع الويب المزدحم، قم بزيارة:
بيئة الاختبار
لقد استخدمنا البيئة التالية للاختبار في هذه المقالة لاستكشاف المزيد حول mod_status مع بعض الأمثلة العملية ولقطات الشاشة.
- نظام التشغيل – CentOS 8/7
- التطبيق – خادم الويب Apache
- عنوان IP – 5.175.142.66
- مجلد المستندات الجذري – /var/www/html
- ملف تكوين Apache – /etc/httpd/conf/httpd.conf
- منفذ HTTP الافتراضي – 80 TCP
- اختبار إعدادات التكوين – httpd -t
الشروط الأساسية لهذا البرنامج التعليمي هي أن يكون لديك بالفعل معرفة حول كيفية تثبيت وتكوين خادم Apache الأساسي. إذا كنت لا تعرف كيفية إعداد Apache، اقرأ المقال التالي الذي قد يساعدك في إعداد خادم الويب Apache الخاص بك.
كيفية تمكين mod_status في Apache
يأتي التثبيت الافتراضي لـ Apache مع mod_status ممكّن. إذا لم يكن كذلك، تأكد من تمكينه في ملف تكوين Apache.
[root@tecmint ~]# vi /etc/httpd/conf/httpd.conf
ابحث عن كلمة “mod_status” أو استمر في التمرير حتى تجد سطرًا يحتوي عليها.
#LoadModule status_module modules/mod_status.so
إذا رأيت حرف “#” في بداية “LoadModule”، فهذا يعني أن mod_status معطل. احذف “#” لتمكين mod_status.
LoadModule status_module modules/mod_status.so
تكوين mod_status
الآن ابحث مرة أخرى عن كلمة “الموقع” أو انتقل إلى الأسفل حتى تجد قسمًا لـ mod_status الذي يجب أن يبدو كما يلي.
# Allow server status reports generated by mod_status, # with the URL of http://servername/server-status # Change the ".example.com" to match your domain to enable. # #<Location /server-status> # SetHandler server-status # Order deny,allow # Deny from all # Allow from .example.com #</Location>
في الجزء العلوي، قم بإلغاء تعليق الأسطر لـتوجيه الموقع، مجموعة المعالج، و قيود الدليل حسب احتياجاتك. على سبيل المثال، سأبقيها بسيطة مع ترتيب السماح، الرفض وهو مسموح به للجميع.
<Location /server-status> SetHandler server-status Order allow,deny Deny from all Allow from all </Location>
ملاحظة: التكوين المذكور أعلاه هو التكوين الافتراضي لموقع ويب Apache الافتراضي (موقع واحد). إذا كنت قد أنشأت أحد أو أكثر مضيفي Apache الافتراضيين، فلن يعمل التكوين المذكور أعلاه.
لذلك، بشكل أساسي، تحتاج إلى تعريف التكوين نفسه لكل مضيف افتراضي لأي نطاقات قمت بتكوينها في Apache. على سبيل المثال، سيبدو التكوين المضيف الافتراضي لـ mod_status بهذا الشكل.
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/html/example.com ServerName example.com ErrorLog logs/example.com-error_log CustomLog logs/example.com-access_log common <Location /server-status> SetHandler server-status Order allow,deny Deny from all Allow from example.com </Location> </VirtualHost>
تمكين ExtendedStatus
تضيف إعدادات “ExtendedStatus” مزيدًا من المعلومات إلى صفحة الإحصاءات مثل استخدام وحدة المعالجة المركزية، طلب في الثانية، المرور الكلي، إلخ. لتمكينها، قم بتحرير نفس ملف httpd.conf وابحث عن كلمة “موسع” وقم بإلغاء تعليق السطر وضبط الحالة “تشغيل” لتوجيه ExtendedStatus.
# ExtendedStatus controls whether Apache will generate "full" status # information (ExtendedStatus On) or just basic information (ExtendedStatus # Off) when the "server-status" handler is called. The default is Off. # ExtendedStatus On
أعد تشغيل Apache
تأكد الآن أنك قمت بتمكين وتكوين صفحة حالة خادم Apache بشكل صحيح. يمكنك أيضًا التحقق من الأخطاء في تكوين httpd.conf باستخدام الأمر التالي.
[root@tecmint ~]# httpd -t Syntax OK
مرة واحدة، بمجرد أن تحصل على الصيغة موافق، يمكنك إعادة تشغيل خدمة httpd.
[root@tecmint ~]# service httpd restart OR [root@tecmint ~]# systemctl restart httpd Stopping httpd: [ OK ] Starting httpd: [ OK ]
الوصول إلى صفحة mod_status
سيكون بإمكانك الوصول إلى صفحة الحالة لـ Apache عبر اسم النطاق الخاص بك مع “/server-status” في عنوان URL التالية.
http://serveripaddress/server-status OR http://serev-hostname/server-status
سوف ترى شيئًا مشابهًا للصفحة التالية مع ExtendedStatus ممكّن.

في اللقطة أعلاه، يمكنك رؤية واجهة HTML، التي تظهر جميع المعلومات حول وقت تشغيل الخادم، معرف العملية مع العميل المقابل، والصفحة التي يحاولون الوصول إليها.
كما يظهر أيضًا معنى واستخدام جميع الاختصارات المستخدمة لعرض الحالة مما يساعدنا على فهم الوضع بشكل أفضل.
يمكنك أيضًا تحديث الصفحة في كل ثوانٍ (مثل 5 ثوانٍ) لرؤية الإحصاءات المحدثة. لتعيين التحديث التلقائي، يرجى إضافة “?refresh=N” في نهاية عنوان URL. حيث يمكن استبدال N بعدد الثواني التي ترغب في تحديث صفحتك.
http://serveripaddress/server-status/?refresh=5

عرض صفحة الحالة عبر سطر الأوامر
يمكنك أيضًا عرض صفحة الحالة لـ Apache من واجهة سطر الأوامر باستخدام متصفحات الأوامر الخاصة المسماة links أو lynx. يمكنك تثبيتها باستخدام أداة إدارة الحزم الافتراضية المسماة yum كما هو موضح أدناه.
# yum install links OR # yum install lynx
بمجرد أن تقوم بتثبيت ذلك، يمكنك الحصول على نفس الإحصاءات على الطرفية الخاصة بك باستخدام الأمر التالي.
[root@tecmint ~]# links http://serveripaddress/server-status OR [root@tecmint ~]# lynx http://serveripaddress/server-status OR [root@tecmint ~]# /etc/init.d/httpd fullstatus
Apache Server Status for localhost Server Version: Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 Server Built: Aug 13 2013 17:29:28 -------------------------------------------------------------------------- Current Time: Tuesday, 14-Jan-2014 04:34:13 EST Restart Time: Tuesday, 14-Jan-2014 00:33:05 EST Parent Server Generation: 0 Server uptime: 4 hours 1 minute 7 seconds Total accesses: 2748 - Total Traffic: 9.6 MB CPU Usage: u.9 s1.06 cu0 cs0 - .0135% CPU load .19 requests/sec - 695 B/second - 3658 B/request 1 requests currently being processed, 4 idle workers .__.__W... Scoreboard Key: "_" Waiting for Connection, "S" Starting up, "R" Reading Request, "W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup, "C" Closing connection, "L" Logging, "G" Gracefully finishing, "I" Idle cleanup of a worker, "." Open slot with no current process Srv PID Acc M CPU SS Req Conn Child Slot Client VHost Request 0-0 - 0/0/428 . 0.30 5572 0 0.0 0.00 1.34 127.0.0.1 5.175.142.66 OPTIONS * HTTP/1.0 GET 1-0 5606 0/639/639 _ 0.46 4 0 0.0 2.18 2.18 115.113.134.14 5.175.142.66 /server-status?refresh=5 HTTP/1.1 GET 2-0 5607 0/603/603 _ 0.43 0 0 0.0 2.09 2.09 115.113.134.14 5.175.142.66 /server-status?refresh=5 HTTP/1.1 3-0 - 0/0/337 . 0.23 5573 0 0.0 0.00 1.09 127.0.0.1 5.175.142.66 OPTIONS * HTTP/1.0 GET 4-0 5701 0/317/317 _ 0.23 9 0 0.0 1.21 1.21 115.113.134.14 5.175.142.66 /server-status?refresh=5 HTTP/1.1 GET 5-0 5708 0/212/213 _ 0.15 6 0 0.0 0.85 0.85 115.113.134.14 5.175.142.66 /server-status?refresh=5 HTTP/1.1 6-0 5709 0/210/210 W 0.16 0 0 0.0 0.84 0.84 127.0.0.1 5.175.142.66 GET /server-status HTTP/1.1 7-0 - 0/0/1 . 0.00 5574 0 0.0 0.00 0.00 127.0.0.1 5.175.142.66 OPTIONS * HTTP/1.0 -------------------------------------------------------------------------- Srv Child Server number - generation PID OS process ID Acc Number of accesses this connection / this child / this slot M Mode of operation CPU CPU usage, number of seconds SS Seconds since the beginning of the most recent request Req Milliseconds required to process most recent request Conn Kilobytes transferred this connection Child Megabytes transferred this child Slot Total megabytes transferred this slot -------------------------------------------------------------------------- Apache/2.2.15 (CentOS) Server at localhost Port 80
الاستنتاج
يعتبر وحدة mod_status في Apache أداة مراقبة مفيدة جدًا لمراقبة أداء نشاط خادم الويب وقادرة على تسليط الضوء على المشاكل بنفسها. لمزيد من المعلومات، يرجى قراءة صفحة الحالة التي يمكن أن تساعدك على أن تصبح مسؤول خادم ويب ناجحًا أكثر.
هذا كل شيء بالنسبة لـ mod_status حتى الآن، سنقدم بعض النصائح والحيل الإضافية حول Apache في الدروس المستقبلية. حتى ذلك الحين، تابع التحديثات وابق على اتصال بـ Tecmint.com ولا تنسى إضافة تعليقاتك القيمة.
Source:
https://www.tecmint.com/monitor-apache-web-server-load-and-page-statistics/