أدوات التشخيص والسجلّات

أنت تعرض مستندات Apigee Edge.
انتقل إلى مستندات Apigee X.
معلومات

يتناول هذا الموضوع أدوات الشبكة وأدوات JVM وسجلات التشخيص التي يمكنك استخدامها تحديد المشاكل المتعلقة بالشبكة وJVM على Apigee Edge وحلّها.

أداة التقاط حزم بروتوكول TCP/IP (tcpdump)

الأداة tcpdump هي أداة التقاط حزم سطر الأوامر، وتتيح لك التقاط أو تصفية حزم TCP/IP التي يتم استلامها أو نقلها عبر الشبكة. متوفّر على أنظمة التشغيل التي تعمل بنظام التشغيل Linux/Unix. يمكنك تثبيت هذه الأداة باستخدام yum التالي:

yum install tcpdump

تُعد أداة tcpdump مفيدة في تحديد المشاكل المتعلقة بالشبكة أو طبقة المقابس الآمنة وحلّها. بالنسبة مثال:

  • 502 أخطاء بوابة غير صالحة (سبب ذلك بسبب استثناء EOF)
  • أخطاء 503: عدم توفر الخدمة
  • تعذّر تأكيد اتصال طبقة المقابس الآمنة (SSL)

لتحري أي من هذه المشكلات وإصلاحها، يجب عليك أولاً تحديد زوج المكونات بين الذي حدث الخطأ. في حالة Edge، يمكن أن يكون أحد الأزواج التالية:

  • تطبيق العميل وجهاز التوجيه
  • جهاز التوجيه ومعالج الرسائل
  • معالج الرسائل وخادم الخلفية

بمجرد تحديد زوج المكونات المزعج، يمكنك التقاط حزم الشبكة باستخدام tcpdump على أحد هذين المكوّنين أو كليهما.

التقاط حزم البيانات المُرسلة إلى/المستلمة من مضيف معيّن باستخدام tcpdump

استخدم الأمر tcpdump التالي لالتقاط كافة الحِزم المرسلة إلى أو المستلمة من المضيف المحدد (عنوان IP) وحفظ المعلومات في الملف المحدد:

tcpdump -i any -s 0 host <IP address> -w <File name>

المكان:

المعلَمة الوصف
-i (واجهة) تحدد الواجهة التي يجب التقاط الحزم منها. استخدام تتيح القيمة "any" التقاط الحزم من جميع الواجهات.
-ثانية يحدد (snarf/snaplen) مقدار كل حزمة المطلوب التقاطها. باستخدام القيمة 0 (صفر) يتيح لك التقاط الحزمة بأكملها.
عنوان IP هو عنوان IP للمضيف الذي نريد التقاط حزم البيانات له
اسم الملف هو اسم الملف الذي يجب كتابة tcpdump عليه

مثال

لنفترض أنك تريد التقاط الحزم بين معالج الرسائل والخلفية الخادم:

  1. سجّل الدخول إلى جهاز معالجة الرسائل.
  2. تحديد عنوان IP لخادم الخلفية (لنفترض أنه 22.22.22.22) الذي نريده لالتقاط الحزم.

استخدم الأمر التالي لالتقاط حزم الشبكة لمضيف باستخدام عنوان IP محدد العنوان:

tcpdump -i any -s 0 host 22.22.22.22 -w rmp-123.pcap

إذا نجح خادم الخلفية في حل مشكلة عناوين IP متعددة، استخدِم اسم المضيف للخلفية. في الأمر tcpdump كما هو موضح أدناه:

tcpdump -i any -s 0 host <Hostname> -w rmp-123.pcap

إذا كانت هناك خوادم خلفية متعددة بعناوين IP مختلفة (22.22.22.22، 33.33.33.33 و44.44.44.44)، ثم استخدم الأمر tcpdump أدناه:

tcpdump -i any -s 0 host 22.22.22.22 or host 33.33.33.33 or host 44.44.44.44 -w rmp-123.pcap

تحليل tcpdump

يمكنك عرض tcpdump أو تحليلها باستخدام الأمر tcpdump أو أداة Wireshark المستندة إلى واجهة المستخدم الرسومية.

المراجع

تسجيل لقطات لأجزاء من الذاكرة

ولقطات لأجزاء من الذاكرة هي لقطة من ذاكرة عملية Java. تحتوي على معلومات حول كائنات وفئات Java في كومة الذاكرة المؤقتة جمعها. عادةً ما تكون كبيرة جدًا في الحجم ويتراوح بين القليل من 100 ميغابايت إلى القليل غيغابايت.

يكون تسجيل لأجزاء من الذاكرة مفيدًا للغاية عندما تعرض عملية Java مثل معالج الرسائل ما يلي:

  • استخدام مرتفع للذاكرة
  • OutofMemoryError

إنشاء لقطة لأجزاء من الذاكرة لعملية Java

توفر Java أداة تسمى Jmap تسمح لك بإنشاء الذاكرة إحصائيات أو نسخ لأجزاء من عملية JavaScript قيد التشغيل.

استخدم أمر jmap التالي لإنشاء لقطة لأجزاء من عملية Java:

sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=<filename> <pid>

المكان:

المعلَمة الوصف
JAVA_HOME هل دليل تثبيت Java
filename هل اسم الملف الذي ستتم كتابة نَسْخ الذاكرة فيه
pid هل معرّف عملية تطبيق Java الذي يجب تسجيل تفريغ الرأس الخاص به

مثال

لنفترض أن معالج الرسائل mp-east يستخدم الذاكرة كثيرًا أو يطرح حدثت أخطاء بسبب نفاد الذاكرة. تحديد معرّف عملية معالج الرسائل باستخدام الأمر ps على نظام التشغيل Unix. لنفترض أنها 24569.

يمكنك تشغيل الأداة المساعدة jmap على النحو التالي لإنشاء لقطة لأجزاء من الذاكرة:

sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=mp-east-heapdump.bin 24569

تحليل لقطات لأجزاء من الذاكرة

يمكن تحليل لقطات لأجزاء من الذاكرة باستخدام Eclipse MAT (أداة تحليل الذاكرة) لتحديد تسرب الذاكرة المحتملة أو أي كائنات Java التي تؤدي إلى استخدام الذاكرة بشكل كبير.

المراجع

كيفية جمع لقطة لأجزاء من الذاكرة

أداة Jmap

صفحة تطبيق Jmap

أداة تحليل الذاكرة (MAT)


عمليات تفريغ سلاسل المحادثات

يمثل تفريغ سلسلة التعليمات لقطة من حالة جميع سلاسل التعليمات في عملية Java قيد التشغيل. تشير رسالة الأشكال البيانية حالة كل سلسلة محادثات مع محتوى حِزمتها، ويُشار إليها باسم "تتبُّع تسلسل استدعاء الدوال البرمجية". وستكون بعض سلاسل التعليمات جزءًا من تطبيق Java قيد التشغيل، بينما ستكون بعض سلاسل التعليمات الأخرى هي سلاسل محادثات JVM الداخلية

يكشف تفريغ سلاسل المحادثات عن معلومات حول أنشطة سلاسل المحادثات في التطبيق. قد تكون هذه المعلومات مفيدة جدًا لإجراء ما يلي:

  • تشخيص المشاكل مثل حالات الارتفاع في وحدة المعالجة المركزية (CPU) أو بطء الاستجابة أو عدم استجابة ملفات Java التطبيقات
  • تحسين أداء التطبيق وJVM

جارٍ إنشاء عمليات تفريغ سلاسل المحادثات

يمكن إنشاء تفريغ سلسلة التعليمات لعملية Java باستخدام الأداة المساعدة jstack كما هو موضّح أدناه:

sudo -u apigee <JAVA_HOME>/bin/jstack -l <pid> > <filename>

المكان:

المعلَمة الوصف
JAVA_HOME هو دليل تثبيت Java.
pid معرّف العملية لتطبيق Java الذي تريد التقاط تفريغ السلسلة الخاص به.
filename هو اسم الملف الذي ستتم كتابة ملف تفريغ سلسلة المحادثات إليه.

مثال

لإنشاء تفريغ سلسلة محادثات لمعرّف العملية 37320 في معالج الرسائل mp-east، استخدِم الأمر التالي:

sudo -u apigee <JAVA_HOME>/bin/jstack -l 37320 > /opt/apigee/edge-message-processor/mp-east-threadDump.txt

وفقًا للمثال أعلاه، سيتم حفظ مقتطف العملية في سلسلة التعليمات /opt/apigee/edge-message-processor/mp-east-threadDump.txt

تحليل عمليات تفريغ سلاسل المحادثات

يمكنك عرض عمليات تفريغ سلاسل المحادثات في أي محرر نصوص، مثل vi (Linux) أو Notepad (نظام التشغيل Windows). راجع تفريغ سلاسل المحادثات للاطّلاع على تفاصيل حول الأقسام المختلفة من تفريغ سلسلة المحادثات وكيفية تفسير المعلومات.

المراجع