درحال مشاهده اسناد Apigee Edge هستید.
به
اسناد Apigee X بروید. اطلاعات
نشانه
دادههای Analytics در «رابط کاربری New Edge» وجود ندارد چون سرور Qpidd پیامهای Analytics را به PostgreSQL منتقل نمیکند. در Edge، edge-qpid-server
عنصر با سرور Qpidd مطابقت دارد.
Qpidd دو صف برای هر گروه تجزیهوتحلیل حفظ میکند:
ax-q-axgroup001-consumer-group-001
این صف پیامهای تجزیهوتحلیل را که از «پردازشگرهای پیام» و «مسیریابها» ارسال شدهاند نگه میدارد. پیامها از اینجا توسط
edge-qpid-serverکه پیامها را تجزیه میکند و آنها را در PostgreSQL درج میکند، کشیده میشوند. وقتی پیامها با موفقیت پردازش شوند، از صف برداشته میشوند.ax-q-axgroup001-consumer-group-001-dl
این صف، صف پیامهای ناموفق است. این صف بهعنوان مقصد پیامهایی عمل میکند که
edge-qpid-serverنتوانسته است پردازش کند و بنابراین دیگر نمیخواهد آنها را دریافت کند. این معمولاً زمانی پر میشود که از حداکثر تعداد تحویل فراتر رفته باشد یا اگر PostgreSQL درج دادههای جدید را بهدلیل خطاهای زمان اجرا رد کرده باشد.
پیام خطا
علت ریشهای میتواند بهدلیل خطاهای زمان اجرای مختلف از مؤلفه edge-qpid-server باشد. معمولاً اگر edge-qpid-server خطای زمان اجرا از PostgreSQL دریافت کند، صف پیامهای ناموفق را درصورت عدم وجود ایجاد میکند و سپس پیام زیر را به آنجا ارسال میکند:
yyyy-MM-dd HH:mm:ss,SSS ax-q-axgroup001-consumer-group-001-persistpool-thread-6 WARN c.a.a.m.MessageConsumer - MessageConsumer.process() : Sending message batch to the DLQ.
علل احتمالی
| علت | شرح | دستورالعملهای عیبیابی قابلاجرا برای |
|---|---|---|
| پیامها در صف پیامهای ناموفق qpidd گیر کردهاند | edge-qpid-server نتوانست پیامهایی را که از کارگزار Qpidd خوانده بود درک کند یا نتوانست پیامها را در PostgreSQL حفظ کند.
|
کاربران Edge Private Cloud |
مراحل عیبیابی رایج
فرمان زیر را در گره Qpid اجرا کنید تا آمار صف Qpidd را مشاهده کنید:
/opt/apigee/apigee-qpidd/bin/qpid-stat -q
خروجی مجموعه صفهای ثبتشده نزد کارگزار را برمیگرداند. اگر صف با نامی که به -dl ختم میشود پیامهایی داشته باشد (Q-Depth(Messages) در Edge برای Private Cloud نسخه ۴.۵۳.۰۰ و جدیدتر، یا msg در Edge برای Private Cloud نسخه ۴.۵۲.x و قدیمیتر)، پیامها در صف پیامهای ناموفق گیر کردهاند.
نمونه برونداد در Edge for Private Cloud نسخه ۴.۵۳.۰۰ و جدیدتر (ازجمله ۴.۵۴.۰۰، Apache Qpid Broker-J):
+---------------------------------------+-------------------+-------------------+-------------------+-------------------+-----------+----------+-------------------+------------+ | Queue Name | Messages Enqueued | Total Enqueued(B) | Messages Dequeued | Total Dequeued(B) | Consumers | Bindings | Q-Depth(Messages) | Q-Depth(B) | +---------------------------------------+-------------------+-------------------+-------------------+-------------------+-----------+----------+-------------------+------------+ | ax-q-axgroup001-consumer-group-001 | 185 | 13800000 | 185 | 13800000 | 6 | 1 | 0 | 0 | +---------------------------------------+-------------------+-------------------+-------------------+-------------------+-----------+----------+-------------------+------------+ | ax-q-axgroup001-consumer-group-001-dl | 70 | 3900000 | 0 | 0 | 0 | 1 | 70 | 3900000 | +---------------------------------------+-------------------+-------------------+-------------------+-------------------+-----------+----------+-------------------+------------+
نمونه خروجی در Edge for Private Cloud نسخه 4.52.x و قدیمیتر (کارگزار
qpidd C++ قدیمی):
Queues queue dur autoDel excl msg msgIn msgOut bytes bytesIn bytesOut cons bind ======================================================================================================================== ax-q-axgroup-001-consumer-group-001 Y 0 185 185 0 13.8m 13.8m 6 2 ax-q-axgroup-001-consumer-group-001-dl Y 0 70 70 0 3.9m 3.9m 0 2
علت: پیامها در صف پیامهای غیرقابلتحویل qpidd گیر کردهاند
تشخیص
این وضعیت میتواند در سناریوهای زیر رخ دهد:
- در گذشته ارتقایی انجام شده است که درطول آن PostgreSQL غیرفعال بوده است.
- قطعی موقت PostgreSQL بهدلیل مشکلات شبکه.
-
edge-qpid-serverتلاش کرد پیامی به PostgreSQL ارسال کند اما PostgreSQL خطای زمان اجرایی برگرداند.
وضوح
مراحل مربوط به نسخه Edge for Private Cloud خود را دنبال کنید تا پیامهای گیرکرده را از صف پیامهای ناموفق به صف اصلی Analytics برگردانید.
Edge for Private Cloud نسخه ۴.۵۳.۰۰ و جدیدتر (ازجمله ۴.۵۴.۰۰)
Edge for Private Cloud نسخه 4.53.00 و نسخههای جدیدتر (ازجمله 4.54.00) از Apache Qpid
Broker-J (10.0.1 در 4.54.00 و 8.0.6 در 4.53.x) استفاده میکند. CLI qpid-tool قدیمی
در Edge for Private Cloud نسخه 4.53.00 و نسخههای جدیدتر برداشته شده است و نمیتوان از آن استفاده کرد.
بهجای آن، از Apache Qpid Broker-J HTTP Management REST API (moveMessages)
یا Qpid Web Management Console برای انتقال پیامها از صف نامه مرده
به صف اصلی تجزیهوتحلیل استفاده کنید:
نام دقیق صف اصلی و صف نامه مرده را از خروجی مراحل تشخیص رایج یادداشت کنید (برای مثال،
ax-q-axgroup001-consumer-group-001وax-q-axgroup001-consumer-group-001-dl، یاax-q-axgroup-001-consumer-group-001وax-q-axgroup-001-consumer-group-001-dl).در گره Qpid، فرمان
curlزیر را اجرا کنید تاmoveMessagesعملیات در صف پیامهای ناموفق ازطریق Qpid Broker-J HTTP Management API (درگاه8090بهطور پیشفرض) فراخوانی شود:curl -u QPID_USER:QPID_PASSWORD -X POST \ -H "Content-Type: application/json" \ -d '{"destination": "ax-q-axgroup001-consumer-group-001"}' \ http://127.0.0.1:8090/api/latest/queue/default/default/ax-q-axgroup001-consumer-group-001-dl/moveMessagesمکان:
-
QPID_USERوQPID_PASSWORDاطلاعات اعتباری مدیریت Qpid پیکربندیشده در/opt/apigee/customer/application/qpidd.propertiesیا/opt/apigee/token/application/qpidd.propertiesاست (پیشفرضguest:guestاست). - اگر نامهای صف تجزیهوتحلیل شما در
qpid-stat -qمتفاوت است،ax-q-axgroup001-consumer-group-001وax-q-axgroup001-consumer-group-001-dlرا جایگزین کنید. - برای انتقال پیامها بهصورت دستهای،
"limit"را در متن درخواست JSON بگنجانید (برای نمونه،"limit": 100000). - اگر SSL/TLS در Qpid Management API فعال باشد
(
conf_qpidd_qpid_management.https.enabled=true)، ازhttps://استفاده کنید و--cacert(یا-k) را بهcurlارسال کنید.
-
برونداد فرمان را درستیسنجی کنید. تماس موفق آرایه JSON از شناسههای پیام داخلی منتقلشده را برمیگرداند:
[ 3, 4, 5 ]
اگر آرایه برگشتی خالی باشد (
[])، پیامی در صف نامه مرده برای انتقال وجود ندارد.۵ دقیقه صبر کنید و سپس
/opt/apigee/apigee-qpidd/bin/qpid-stat -qرا از مراحل تشخیص خرابی رایج اجرا کنید. بررسی کنید که پیامهای صف اصلی (ax-q-axgroup001-consumer-group-001) درحال پردازش باشند وQ-Depth(Messages)در صف پیامهای ناموفق (ax-q-axgroup001-consumer-group-001-dl) روی0باقی بماند.
Edge for Private Cloud نسخه ۴.۵۲.x و قدیمیتر
نام صفها را از مراحل تشخیص خرابی رایج یادداشت کنید. برای مثال:
ax-q-axgroup-001-consumer-group-001ax-q-axgroup-001-consumer-group-001-dl
فرمان
qpid-toolرا اجرا کنید تا پیامواره تعاملیqpidرا وارد کنید:qpid-tool
این فرمان موارد زیر را برمیگرداند:
Management Tool for QPID qpid:
برای دریافت فهرست کارگزاران فعال،
list brokerرا اجرا کنید:list broker
این فرمان موارد زیر را برمیگرداند:
Object Summary: ID Created Destroyed Index ======================================= 125 21:00:00 - amqp-broker
در جایی که ستون
IDشناسه کارگزار را مشخص میکند.شناسه کارگزار را یادداشت کنید. در این مثال،
125است.فرمان زیر را اجرا کنید تا پیامها از صف پیامهای ناموفق به صف اصلی برگردانده شوند:
call 125 queueMoveMessages ax-q-axgroup-001-consumer-group-001-dl ax-q-axgroup-001-consumer-group-001 100000 {}این فرمان موارد زیر را برمیگرداند:
OK (0) - {}اگر خروجیای وجود ندارد، پس کاری برای انجام دادن وجود نداشته است، یعنی پیامی برای انتقال وجود ندارد. اگر
OK (0)را نمیبینید، باید با پشتیبانی Apigee Edge تماس بگیرید.از پایانه
qpid-toolخارج شوید:quit
۵ دقیقه صبر کنید و سپس مراحل تشخیص را دوباره از مراحل تشخیص رایج اجرا کنید. بررسی کنید که پیامهای صف واقعی پردازش میشوند و مطمئن شوید که تعداد پیامهای ناموفق
msgروی0باقی میماند.
اگر مشکل همچنان برطرف نشد، به بخش بعدی بروید.
باید اطلاعات تشخیص خرابی را جمعآوری کند
اگر مشکل پساز دنبال کردن دستورالعملهای قبلی همچنان ادامه داشت، اطلاعات عیبیابی زیر را جمعآوری کنید و آن را با پشتیبانی Apigee Edge همرسانی کنید:
- گزارشهای Qpidd:
/opt/apigee/var/log/apigee-qpidd/qpidd.log(Edge for Private Cloud نسخه ۴.۵۳.۰۰ و جدیدتر) و/opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log - گزارشهای PostgreSQL:
/opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log - گزارشهای سرور Edge-qpid:
/opt/apigee/var/log/edge-qpid-server/logs/system.log - گزارشهای سرور Edge-postgres:
/opt/apigee/var/log/edge-postgres-server/logs/system.log آمار صف Qpidd:
/opt/apigee/apigee-qpidd/bin/qpid-stat -q
گروه Analytics برگشتدادهشده توسط فرمان curl زیر:
curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax