درحال مشاهده اسناد Apigee Edge هستید.
به
اسناد Apigee X بروید. اطلاعات
چه
یکی از بهترین راهها برای ردیابی مشکلات در محیط زمان اجرای API، ثبت پیامها است. میتوانید خطمشی MessageLogging را به API خود پیوست و پیکربندی کنید تا پیامهای سفارشی را در دیسک محلی (فقط Edge for Private Cloud) یا در syslog ثبت کند.
نمونهها
Syslog
<MessageLogging name="LogToSyslog">
<Syslog>
<Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
<Host>logs-01.loggly.com</Host>
<Port>514</Port>
<Protocol>TCP</Protocol>
<FormatMessage>true</FormatMessage>
<DateFormat>yyyy-MM-dd'T'HH:mm:ss.SSSZ</DateFormat>
</Syslog>
<logLevel>ALERT</logLevel>
</MessageLogging>یکی از کاربردهای رایج نوع خطمشی MessageLogging، ثبت گزارش در حساب syslog است. وقتی برای syslog پیکربندی شود، کارگزار نیابتی API پیامهای گزارش را از Apigee Edge به سرور syslog راهدور ارسال میکند. باید ازقبل سرور syslog دردسترس داشته باشید. درغیراینصورت، خدمات مدیریت گزارش عمومی، مانند Splunk، Sumo Logic، و Loggly دردسترس هستند. پیکربندی خدمات مدیریت گزارش طرف سوم را ببینید.
برای مثال، تصور کنید که باید اطلاعات مربوط به هر پیام درخواست را که
میانای برنامهسازی کاربردی شما از برنامههای مصرفکننده دریافت میکند ثبت کنید. مقدار 3f509b58 نشاندهنده مقدار کلیدی
خاص سرویس loggly است. اگر حساب loggly دارید، کلید loggly خود را جایگزین کنید. پیام گزارش تولیدشده با چهار مقدار تکمیل خواهد شد: سازمان، پراکسی API، و نام محیط مرتبط با تراکنش، بههمراه مقدار پارامتر پُرسمان در پیام درخواست.
اگر استقرار Edge for Private Cloud دارید، میتوانید پیامهای گزارش را نیز در فایل بنویسید.
Syslog over TLS/SSL
<MessageLogging name="LogToSyslog">
<Syslog>
<Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
<Host>logs-01.loggly.com</Host>
<Port>6514</Port>
<Protocol>TCP</Protocol>
<FormatMessage>true</FormatMessage>
<SSLInfo>
<Enabled>true</Enabled>
</SSLInfo>
<DateFormat>yyMMdd-HH:mm:ss.SSS</DateFormat>
</Syslog>
<logLevel>WARN</logLevel>
</MessageLogging>با افزودن بلوک <SSLInfo> میتوانید ازطریق TLS/SSL به ارائهدهندگان ثبت پیام طرف سوم پیام ارسال کنید.
چرخش فایل: اندازه
<MessageLogging name="LogPolicy">
<File>
<Message>This is a test message. Message id : {request.header.messageid}</Message>
<FileName>test.log</FileName>
<FileRotationOptions rotateFileOnStartup="true">
<FileRotationType>SIZE</FileRotationType>
<MaxFileSizeInMB>10</MaxFileSizeInMB>
<MaxFilesToRetain>10</MaxFilesToRetain>
</FileRotationOptions>
</File>
<logLevel>ERROR</logLevel>
</MessageLogging>گردش فایل براساس اندازه فایل.
چرخش فایل: زمان
<MessageLogging name="LogPolicy">
<File>
<Message>This is a test message. Message id : {request.header.messageid}</Message>
<FileName>test.log</FileName>
<FileRotationOptions rotateFileOnStartup="true">
<FileRotationType>TIME</FileRotationType>
<RotationFrequency unit="minute">10</RotationFrequency>
<MaxFilesToRetain>10</MaxFilesToRetain>
</FileRotationOptions>
</File>
<logLevel>ERROR</logLevel>
</MessageLogging>چرخش فایل براساس زمان.
گردش فایل: زمان و اندازه
<MessageLogging name="LogPolicy">
<File>
<Message>This is a test message. Message id : {request.header.messageid}</Message>
<FileName>test.log</FileName>
<FileRotationOptions rotateFileOnStartup="true">
<FileRotationType>TIME_SIZE</FileRotationType>
<MaxFileSizeInMB>10</MaxFileSizeInMB>
<MaxFilesToRetain>10</MaxFilesToRetain>
<RotationFrequency unit="minute">10</RotationFrequency>
</FileRotationOptions>
</File>
<logLevel>ERROR</logLevel>
</MessageLogging>گردش فایل براساس زمان و اندازه.
جاریسازی فعال است
<MessageLogging name="LogPolicy"> <File> .... .... </File> <BufferMessage>true</BufferMessage> </MessageLogging>
گزارشگیری پیام جاریسازیمحور
مرجع عنصر
از عناصر زیر برای پیکربندی نوع خطمشی MessageLogging استفاده کنید.
| نام فیلد | شرح فیلد | |
|---|---|---|
|
مقصد فایل محلی. (ثبت گزارش فایل فقط در استقرار Edge for Private Cloud پشتیبانی میشود.) برای اطلاعات درباره مکان ذخیره فایلها، به مکان فایل گزارش در Edge برای «ابر خصوصی» مراجعه کنید. |
Message |
پیامی را که باید به فایل گزارش ارسال شود بسازید و نوشتار را با متغیرها ترکیب کنید تا اطلاعات موردنظرتان را ضبط کنید. نمونهها را ببینید. |
FileName |
نام پایه فایل گزارش.
مسیر فایل را مشخص نکنید. برای مثال، این عنصر FileName مسیر فایل را مشخص میکند و
نامعتبر است:
<FileName>/opt/apigee/var/log/messages/mylog.log</FileName> این کد فقط نام فایل را مشخص میکند و معتبر است: <FileName>mylog.log</FileName> برای اطلاعات درباره مکان ذخیره فایل، به مکان فایل گزارش در Edge for Private Cloud مراجعه کنید. |
|
FileRotationOptions |
||
rotateFileOnStartup |
مشخصه. مقادیر معتبر: اگر روی درست تنظیم شود، هربار که موتور پیامرسانی بازراهاندازی میشود، فایل گزارش چرخانده میشود. |
|
FileRotationType |
خطمشی چرخش (size یا
time) فایل گزارش را مشخص میکند. |
|
MaxFileSizeInMB |
(درصورت انتخاب size بهعنوان نوع چرخش)
اندازه فایل گزارشی را مشخص میکند که باعث میشود سرور پیامهای گزارش را به
فایل جداگانهای منتقل کند. پساز اینکه فایل گزارش به اندازه مشخصشده رسید، سرور فایل گزارش فعلی را تغییر نام میدهد. |
|
RotationFrequency |
(درصورت انتخاب time بهعنوان نوع چرخش)
زمان را به دقیقه مشخص میکند که باعث میشود سرور پیامهای گزارش را به فایل جداگانهای منتقل کند. پساز سپری شدن فاصله زمانی مشخصشده، نام فایل گزارش کنونی تغییر میکند. |
|
MaxFilesToRetain |
حداکثر تعداد فایلهایی را که باید در زمینه تنظیمات چرخش شما نگهداری شود مشخص میکند. مقدار پیشفرض ۸ است. اگر صفر (۰) را مشخص کنید، فایلهای گزارش برای همیشه حفظ میشوند، اما تابع تنظیمات چرخش فایل شما هستند، اگرچه هیچیک از فایلها حذف یا تغییر نام داده نمیشوند. بنابراین، برای جلوگیری از خطاهای پر شدن دیسک در آینده، این مقدار را روی مقداری بزرگتر از صفر تنظیم کنید، یا سیستم خودکار و منظمی برای پاکسازی یا بایگانی کردن فایلهای گزارش قدیمیتر پیادهسازی کنید. |
|
BufferMessage |
اگر جاریسازی HTTP برای کارگزار وکالتی شما فعال باشد، پیامهای درخواست/پاسخ بافر نمیشوند. اگر میخواهید محتوایی را که نیاز دارد پیام جاری تجزیه شود گزارش کنید، «پیام بافر» را روی درست تنظیم کنید. برای مثال، برگه نمونه «جاریسازی فعال» را ببینید. پیشفرض: نادرست |
|
|
مقصد syslog. برای ارسال syslog به Splunk، Sumo Logic، یا Loggly، به پیکربندی سرویسهای مدیریت گزارش طرف سوم مراجعه کنید. |
Message |
پیامی را که باید به syslog ارسال شود بسازید و نوشتار را با متغیرها ترکیب کنید تا اطلاعات موردنظرتان را ضبط کنید. نمونهها را ببینید. توجه: متغیرهای پاسخ در «جریان مشتری پست» پساز «جریان خطا» دردسترس نخواهند بود. از متغیرهای پیام برای ثبت اطلاعات پاسخ در هر دو وضعیت خطا و موفقیت استفاده کنید. همچنین یادداشتهای استفاده را ببینید. |
Host |
نام میزبان یا نشانی IP سروری که syslog باید به آن ارسال شود. اگر این عنصر را اضافه نکنید، پیشفرض localhost است. | |
Port |
درگاهی که syslog در آن اجرا میشود. اگر این عنصر را اضافه نکنید، مقدار پیشفرض ۵۱۴ است. | |
Protocol |
TCP یا UDP (پیشفرض). اگرچه UDP عملکرد بهتری دارد، پروتکل TCP تحویل گزارش پیام به سرور syslog را تضمین میکند. برای ارسال پیامهای syslog ازطریق TLS/SSL، فقط از TCP پشتیبانی میشود. | |
FormatMessage |
اختیاری است، اما این عنصر به شما امکان میدهد قالب محتوای تولیدشده توسط Apigee را که به ابتدای پیام اضافه میشود کنترل کنید. اگر روی درست تنظیم شود، پیام syslog با تعداد ثابتی از نویسهها پیشرونده میشود، که به شما امکان میدهد آن اطلاعات را از پیامها فیلتر کنید. در اینجا نمونهای از قالب ثابت آورده شده است:
اطلاعات تولیدشده توسط Apigee شامل موارد زیر است:
اگر روی نادرست (پیشفرض) تنظیم شود، آن نویسههای ثابت به ابتدای پیام اضافه نمیشود. |
|
PayloadOnly |
این عنصر قالب پیامهای تولیدشده توسط Apigee را طوری تنظیم میکند که فقط حاوی بدنه پیام syslog باشد، بدون نویسههای پیشافزودهای که توسط FormatMessage مشخص شده است. اگر این عنصر را اضافه نکنید یا آن را خالی بگذارید، مقدار پیشفرض FormatMessage را ببینید. |
|
DateFormat |
اختیاری. رشته الگوی قالببندی برای استفاده در قالببندی مُهر زمان برای هر پیام گزارش.
بهطور پیشفرض، Apigee از |
|
SSLInfo |
به شما امکان میدهد پیامها را ازطریق SSL/TLS ثبت کنید. با
زیرعنصر اگر این عنصر را اضافه نکنید یا آن را خالی بگذارید، مقدار پیشفرض نادرست (بدون TLS/SSL) است. <SSLInfo>
<Enabled>true</Enabled>
</SSLInfo>میتوانید برچسب <SSLInfo> را همانگونه که در «نقطه پایانی هدف» میتوانید پیکربندی کنید، ازجمله فعال کردن «امنیت لایه انتقال»/ «لایه سوکت امن» دوطرفه، همانطور که در مرجع پیکربندی پراکسی API توضیح داده شده است. فقط از پروتکل TCP پشتیبانی میشود. |
|
logLevel |
اختیاری. مقادیر معتبر: سطح خاصی از اطلاعات را برای گنجاندن در گزارش پیام تنظیم کنید. اگر از عنصر |
|
طرحوارهها
یادداشتهای استفاده
هنگام پیوست کردن خطمشی MessageLogging به جریان پراکسی API، آن را در پاسخ ProxyEndpoint، در جریان ویژهای به نام PostClientFlow قرار دهید. PostClientFlow پساز ارسال پاسخ به مشتری درخواستکننده اجرا میشود، که تضمین میکند همه سنجهها برای ثبت گزارش دردسترس باشند. برای جزئیات مربوط به استفاده از PostClientFlow، به مرجع پیکربندی پراکسی API مراجعه کنید.
PostClientFlow از دو جهت ویژه است:
- فقط بهعنوان بخشی از جریان پاسخ اجرا شد.
- این تنها جریانی است که پساز ورود پراکسی به وضعیت خطا اجرا میشود.
ازآنجاییکه این خطمشی صرفنظر از موفقیت یا عدم موفقیت پراکسی اجرا میشود، میتوانید خطمشیهای MessageLogging را در PostClientFlow قرار دهید و مطمئن باشید که همیشه اجرا میشوند.
تصویر «ردیابی» زیر نشان میدهد که خطمشی MessageLogging بهعنوان بخشی از PostClientFlow، پساز اجرای DefaultFaultRule، اجرا میشود:

در این مثال، خطمشی «درستیسنجی کلید میانای برنامهسازی کاربردی» بهدلیل کلید نامعتبر باعث خطا شده است.
در زیر تعریف ProxyEndpoint که شامل PostClientFlow است نشان داده شده است:
<ProxyEndpoint name="default">
...
<PostClientFlow>
<Response>
<Step>
<Name>Message-Logging-1</Name>
</Step>
</Response>
</PostClientFlow>
...
</ProxyEndpoint>Edge پیامها را بهصورت نوشتار ساده ثبت میکند و میتوانید ثبت گزارش را بهگونهای پیکربندی کنید که متغیرهایی مثل تاریخ و زمان دریافت درخواست یا پاسخ، هویت کاربر در درخواست، نشانی IP منبعی که درخواست از آن ارسال شده است، و غیره را دربر بگیرد. Edge پیام را بهصورت ناهمزمان ثبت میکند، یعنی هیچ تأخیری که ممکن است ناشی از مسدود کردن تماسهای خروجی باشد به API شما معرفی نمیشود.
خطمشی MessageLogging پیامهای گزارششده در حافظه را در یک بافر مینویسد. گزارشگر پیام پیامها را از بافر میخواند و سپس در مقصد پیکربندیشده مینویسد. هر مقصد بافر خودش را دارد.
کاربران ممکن است در دریافت پیامهای گزارش ارسالشده به نقطه پایانی جدید syslog تأخیر داشته باشند. این امر بهدلیل رفتار «شروع سرد» موردنظر در خطمشی است. وقتی مقصد گزارشگیری جدیدی پیکربندی میشود، علاوه بر مقصد(های) گزارشگیری موجود، «پردازنده پیام» (MP) ممکن است ابتدا ۱۰۰۰ پیام گزارش را در حافظه صف کند و سپس آنها را ارسال کند. این امر میتواند منجر به تأخیر اولیه در محیطهای کمترافیک شود. این تأخیر اولیه برای حجمهای کاری تولید معمولی قابلمشاهده نیست، زیرا پیامها باید بهسرعت جمع شوند. وقتی آستانه برآورده شود، پیامهای گزارش مطابق انتظار تحویل داده خواهد شد. انجام بازراهاندازی تدریجی «پردازشگر پیام» نیز میتواند باعث راهاندازی ارسال پیامهای در صف شود زیرا از صف خارج میشوند.
اگر نرخ نوشتن در بافر از نرخ خواندن بیشتر شود، بافر سرریز میشود و گزارشگیری ناموفق خواهد بود. اگر این اتفاق بیفتد، ممکن است پیامی حاوی موارد زیر را در فایل گزارش پیدا کنید:
Log message size exceeded. Increase the max message size setting
اگر در Edge for Private Cloud نسخه ۴.۱۵.۰۷ و نسخههای قدیمیتر با این مشکل مواجه شدید، فایل
message-logging.properties را پیدا کنید و از این راهحل استفاده کنید:
دارایی max.log.message.size.in.kb را (مقدار پیشفرض = ۱۲۸ کیلوبایت) در فایل
message-logging.properties افزایش دهید.
برای Edge for Private Cloud نسخه ۴.۱۶.۰۱ و نسخههای جدیدتر، دارایی conf/message-logging.properties+max.
log.message.size.in.kb را در فایل /opt/apigee/customer/application/message-processor.properties تنظیم کنید و «پردازشگر پیام» را بازراهاندازی کنید. لطفاً توجه داشته باشید که این دارایی در ابتدا بهطور پیشفرض نظرگذاری شده است.
توجه: متغیرهای پیام پاسخدر Edge از «جریان خطا» دردسترس نیستند. اگر جریان قبلی «جریان خطا» بوده باشد، این متغیرها در PostClientFlow نیز دردسترس نیستند. اگر میخواهید اطلاعات پاسخ را از PostClientFlow ثبت کنید، از شیء message استفاده کنید. میتوانید از این شیء برای دسترسی به سرایندها و اطلاعات دیگر از پاسخ استفاده کنید، چه خطایی رخ داده باشد چه نه. برای اطلاعات بیشتر و مثال، متغیرهای پیام را ببینید.
کنترل کردن مُهر زمان پیام گزارش در Edge for Private Cloud
بهطور پیشفرض، مُهر زمان در همه پیامهای گزارش قالب زیر را دارد:
yyyy-MM-dd'T'HH:mm:ss.SSSZ
این پیشفرض سراسری سیستم را میتوان برای مقصد syslog بااستفاده از عنصر
DateFormat ملغی کرد. عملکرد این الگو در
مستندات کلاس SimpleDateFormat در Java توضیح داده شده است. طبق آن تعریف، yyyy با سال ۴ رقمی، MM با شماره ماه ۲ رقمی، و غیره جایگزین خواهد شد.
قالب بالا ممکن است به رشتهای با این قالب منجر شود:
2022-09-28T22:38:11.721+0000
میتوانید از دارایی conf_system_apigee.syslogger.dateFormat در «پردازشگر پیام Edge» برای کنترل آن قالب استفاده کنید. برای مثال، تغییر قالب پیام به:
yy/MM/dd'T'HH:mm:ss.SSSZ
..جایگزین کردن خط تیره با خط مورب، و کوتاه کردن به سال ۲ رقمی، مُهر زمان را به این شکل ثبت میکند:
22/09/28T22:38:11.721+0000
برای تغییر قالب:
- فایل message-processor.properties را در یک ویرایشگر باز کنید. اگر فایل وجود ندارد، آن را ایجاد کنید:
> vi /opt/apigee/customer/application/message-processor.properties - خصوصیتها را بهدلخواه تنظیم کنید:
conf_system_apigee.syslogger.dateFormat=yy/MM/dd'T'HH:mm:ss.SSSZ - تغییرات را ذخیره کنید.
- مطمئن شوید که فایل خصوصیتها متعلق به کاربر «apigee» باشد:
> chown apigee:apigee /opt/apigee/customer/application/message-processor.properties - «پردازشگر پیام Edge» را بازراهاندازی کنید:
> /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
مکان فایل گزارش در Edge for Private Cloud
Edge for Private Cloud نسخه ۴.۱۶.۰۱ و بالاتر
بهطور پیشفرض، گزارشهای پیام «ابر خصوصی» در دایرکتوری زیر در گرههای «پردازشگر پیام» قرار دارند:
/opt/apigee/var/log/edge-message-processor/messagelogging/org_name/environment/api_proxy_name/revision/logging_policy_name/
میتوانید مکان گزارش پیشفرض را با اصلاح کردن داراییها در فایل message-logging.properties در «پردازندههای پیام» تغییر دهید:
- bin_setenv_data_dir -
مسیر ریشه را برای ذخیره فایل گزارش تنظیم میکند. برای مثال،
bin_setenv_data_dir=/opt/apigee/var/log - conf_message-logging_log.root.dir - اگر
این را روی مسیر نسبی تنظیم کنید، مثلاً
conf/message-logging.properties+log.root.dir=custom/folder/, the path is appended to the bin_setenv_data_dir location.
اگر این را روی مسیر مطلق تنظیم کنید، مثلاًconf/message-logging.properties+log.root.dir=/opt/apigee/var/log/messages، گزارشهای پیام در/opt/apigee/var/log/messages/messagelog/ذخیره خواهد شد. مسیر مطلق برbin_setenv_data_dirاولویت دارد.
توجه داشته باشید که باید به این دارایی بهعنوان conf/message-logging.properties+log.root.dir ارجاع دهید زیرا بهطور پیشفرض نظر داده شده است. برای اطلاعات بیشتر، تنظیم یک نشانه که درحالحاضر نظرگذاری شده است را ببینید.
اگر میخواهید فایلهای گزارش را در ساختار فایل تخت ذخیره کنید تا همه فایلهای گزارش در
یک دایرکتوری قرار بگیرند، conf/message-logging.properties+enable.flat.directory.structure را در فایل message-logging.properties روی
true تنظیم کنید. پیامها در دایرکتوری مشخصشده توسط
خصوصیات بالا ذخیره میشوند، و نام فایلها بهشکل
{org}_{environment}_{api_proxy_name}_{revision}_{logging_policy_name}_{filename} هستند.
برای تنظیم این داراییها:
- فایل message-processor.properties را در یک ویرایشگر باز کنید. اگر فایل وجود ندارد، آن را ایجاد کنید:
> vi /opt/apigee/customer/application/message-processor.properties - داراییها را بهصورت دلخواه تنظیم کنید:
conf/message-logging.properties+log.root.dir=/opt/apigee/var/log/messages - تغییرات را ذخیره کنید.
- مطمئن شوید که فایل خصوصیتها متعلق به کاربر «apigee» باشد:
> chown apigee:apigee /opt/apigee/customer/application/message-processor.properties - بازراهاندازی عنصر Edge:
> /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Edge for Private Cloud نسخه ۴.۱۵.۰۷ و نسخههای قدیمیتر
بهطور پیشفرض، گزارشهای پیام در مکان زیر در پردازندههای پیام قرار دارند:
/opt/apigee4/var/log/apigee/message-processor/messagelog/{org}/{environment}/{api_proxy_name}/{revision}/{logging_policy_name}/
با تغییر دادن ویژگیهای زیر در فایل message-logging.properties در پردازشگرهای پیام، میتوانید مکان پیشفرض گزارش را تغییر دهید:
- data.dir - مسیر ریشه را برای ذخیره فایل گزارش تنظیم میکند. برای مثال، data.dir=/opt/apigee4/var/log
- log.root.dir - اگر این را روی مسیر نسبی تنظیم کنید، مثلاً log.root.dir=custom/folder/، مسیر به مکان data.dir اضافه میشود.
برای مثال، ترکیب این دو دارایی، دایرکتوری گزارشگیری را در /opt/apigee4/var/log/custom/folder/messagelog/ تنظیم میکند (توجه داشته باشید که /messagelog بهطور خودکار اضافه میشود).
اگر این را روی مسیر مطلق تنظیم کنید، مثلاً log.root.dir=/opt/apigee4/var/log/messages، گزارشهای پیام در /opt/apigee4/var/log/messages/messagelog/ ذخیره خواهد شد. مسیر مطلق در log.root.dir بر data.dir ارجحیت دارد.
اگر میخواهید فایلهای گزارش را در ساختار فایل مسطح ذخیره کنید تا همه فایلهای گزارش در دایرکتوری یکسان قرار بگیرند، در فایل message-logging.properties در «پردازشگرهای پیام»، دارایی enable.flat.directory.structure را روی true تنظیم کنید. پیامها در دایرکتوری مشخصشده توسط داراییهای بالا ذخیره میشوند و نامهای فایل بهشکل {org}_{environment}_{api_proxy_name}_{revision}_{logging_policy_name}_{filename} هستند.
مقادیر پیشفرض برای متغیرها در الگوی پیام
مقادیر پیشفرض را میتوان برای هر متغیر در الگوی پیام بهطور جداگانه مشخص کرد. برای مثال،
اگر متغیر request.header.id قابلحل نباشد، مقدار آن با مقدار unknown جایگزین میشود.
<Message>This is a test message. id = {request.header.id:unknown}</Message>با تنظیم کردن مشخصه
defaultVariableValue در عنصر Message، میتوان مقدار پیشفرض مشترکی برای همه متغیرهای حلنشده مشخص کرد:
<Message defaultVariableValue="unknown">This is a test message. id = {request.header.id}</Message>پیکربندی سرویسهای مدیریت گزارش طرف سوم
خطمشی MessageLogging به شما امکان میدهد پیامهای syslog را به سرویسهای مدیریت گزارش طرف سوم، مثل Splunk، Sumo Logic، و Loggly ارسال کنید. اگر میخواهید syslog را به یکی از آن سرویسها ارسال کنید، برای پیکربندی میزبان، درگاه، و پروتکل سرویس، اسناد آن سرویس را ببینید، سپس عنصر Syslog را در این خطمشی براساس آن تنظیم کنید.
برای پیکربندی مدیریت گزارش طرف سوم، مستندات زیر را ببینید:
- Splunk (نسخه محصول را انتخاب کنید)
همچنین این پست «انجمن Apigee» را ببینید: پیامهای گزارش در Splunk -
Sumo
Logic
- همچنین این پست «انجمن Apigee» را ببینید: راهاندازی گزارشگیری با Sumo Logic، از کدام میزبان باید استفاده کنم؟
- برای دیدن نمونه کامل استفاده از Sumo Logic بهعنوان سرویس گزارشگیری، پست «انجمن Apigee» زیر را ببینید. این راهحل از یک خطمشی جاوا اسکریپت واحد برای ایجاد درخواستهای HTTP POST به «جمعآورنده منبع HTTP» در Sumo Logic استفاده میکند: گزارشگیری در Sumo Logic بااستفاده از جاوا اسکریپت و HTTP
- Loggly
هنگام استفاده از Loggly،<FormatMessage>true</FormatMessage>باید در خطمشی بهعنوان فرزند عنصر<Syslog>وجود داشته باشد.
همچنین برای اطلاعات بیشتر درباره ثبت پیام در Loggly، این پست «انجمن Apigee» را ببینید: ثبت پیام در Loggly
مرجع خطا
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطایی را که Edge هنگام راهاندازی خطا در این خطمشی تنظیم میکند شرح میدهد. این اطلاعات برای دانستن اینکه آیا قوانین خطا را برای مدیریت خطاها توسعه میدهید یا نه مهم است. برای کسب اطلاعات بیشتر، آنچه باید درباره خطاهای خطمشی بدانیدو رسیدگی به اشکالات را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای خطمشی رخ دهند.
| کد خطا | وضعیت HTTP | علت |
|---|---|---|
steps.messagelogging.StepDefinitionExecutionFailed |
۵۰۰ | رشته خطا را ببینید. |
خطاهای استقرار
این خطاها ممکن است زمانی رخ دهند که یک پراکسی حاوی این خطمشی را مستقر میکنید.
| نام خطا | علت | رفع اشکال |
|---|---|---|
InvalidProtocol |
اگر پروتکل مشخصشده در عنصر <Protocol> معتبر نباشد، استقرار خطمشی MessageLogging میتواند با این خطا ناموفق باشد. پروتکلهای معتبر عبارتاند از TCP و UDP.
برای ارسال پیامهای syslog ازطریق TLS/SSL، فقط از TCP پشتیبانی میشود. |
build |
InvalidPort |
اگر شماره درگاه در عنصر <Port> مشخص نشده باشد یا معتبر نباشد، استقرار خطمشی MessageLogging ممکن است با این خطا ناموفق باشد. شماره درگاه باید
عدد صحیحی بزرگتر از صفر باشد. |
build |
متغیرهای خطا
این متغیرها زمانی تنظیم میشوند که خطای زمان اجرا رخ دهد. برای اطلاعات بیشتر، آنچه باید درباره خطاهای خطمشی بدانیدرا ببینید.
| متغیر | مکان | مثال |
|---|---|---|
fault.name="fault_name" |
fault_name نام خطا است، همانطور که در جدول خطاهای زمان اجرا در بالا فهرست شده است. نام خطا آخرین بخش کد خطا است. | fault.name Matches "StepDefinitionExecutionFailed" |
messagelogging.policy_name.failed |
policy_name نام مشخصشده کاربر برای خطمشیای است که خطا را ایجاد کرده است. | messagelogging.ML-LogMessages.failed = true |
نمونه پاسخ خطا
{
"fault":{
"detail":{
"errorcode":"steps.messagelogging.StepDefinitionExecutionFailed"
},
"faultstring":"Execution failed"
}
}قانون خطای نمونه
<FaultRule name="MessageLogging">
<Step>
<Name>ML-LogMessages</Name>
<Condition>(fault.name Matches "StepDefinitionExecutionFailed") </Condition>
</Step>
<Condition>(messagelogging.ML-LogMessages.failed = true) </Condition>
</FaultRule>متغیرهای جریان
متغیرهای زیر درصورت عدم موفقیت خطمشی تکمیل میشوند.
messagelogging.failedmessagelogging.{stepdefinition-name}.failed
موضوعات مرتبط
- متغیرهای نمایانشده توسط Edge: مرجع متغیرها