آشنایی با Protocol Logging در Exchange Server 2013
در این مقاله با مبحث Protocol Logging در Exchange Server 2013 آشنا خواهید شد. شرکت پردیس میل که بهصورت کاملا تخصصی در بخش راه اندازی ایمیل سرور فعالیت دارد پروژههای موفقی همچون ارتقای ایمیل سرور، مهاجرت به Exchange و پشتیبانی ایمیل سرور را انجام داده و از تجربیات خود در بخش مقالات با شما سخن میگوید.
پروتکل لاگینگ (Protocol Logging) کلیه رخدادهای SMTP بین ایمیل سرورها را ثبت می کند. این گفتگوهای SMTP بین Send Connector سرور ارسال کننده ایمیل و Receive Connector سرور دریافت کننده ایمیل در Front End Transport Services سرور Client Access، Transport Service روی Mailbox Server و Mailbox Transport Service روی سرورهای Mailbox رخ می دهد. از طریق پروتکل لاگینگ (Protocol Logging) می توانیم مشکلات مربوط به ارسال و دریافت ایمیل را مشخص کنیم.
به صورت پیش فرض پروتکل لاگینگ روی کلیه کانکتورهای مربوط به ارسال و دریافت غیرفعال می باشد. پروتکل لاگینگ به ازای هر کانکتورها قابل فعال یا غیرفعال شدن می باشد. سایر آپشن های مربوط به پروتکل لاگینگ روی کلیه کانکتورهای ارسال و کلیه کانکتورهای دریافت در Transport Service سرور تنظیم می شوند. فایلهای مربوط به پروتکل لاگها و پروتکل آپشن های همه Receive Connector ها یا همان کانکتورهای دریافت در یک Transport Service به صورت مشترک در یکجا ذخیره می شوند. این پروتکل لاگ ها و پروتکل آپشن ها با پروتکل لاگ ها و پروتکل آپشن های Send Connector های همان سرور متفاوت می باشد.
آپشن های ذیل برای پروتکل لاگ کلیه Send Connector ها یا Receive Connector های Transport Service روی Exchange Server قابل تنظیم می باشد:
- تعیین مسیر نگهداری فایلهای پروتکل لاگ مربوط به کانکتور ارسال و کانکتور دریافت.
- تعیین حداکثر سایز فایلهای پروتکل لاگ برای کانکتور ارسال و کانکتور دریافت. حجم پیش فرض 10 مگابایت می باشد.
- تعیین حداکثر حجم فولدر مربوط به ذخیره سازی فایلهای پروتکل لاگ برای کانکتور ارسال و کانکتور دریافت. حجم پیش فرض 250 مگابایت می باشد.
- تعیین حداکثر مدت نگهداری فایلهای پروتکل لاگ برای کانکتور ارسال و کانکتور دریافت. مدت زمان پیش فرض 30 روز می باشد.
به صورت پیش فرض Exchange Server فایلهای لاگ را پس از حجم و زمان مجاز پاک می کند تا امکان مدیریت فضای هارددیسک فراهم شود.
یک Send Connector خاص به نام Intra-organization در هر سرور با رول Transport Service ایمیل سرورها و Client Access سرورها وجود دارد. این کانکتور به صورت پیش فرض ساخته می شود و نیازی به کانفیگ ندارد. کانکتور ارسال کننده intra-organization برای Transport Services های ذیل استفاده می شود:
- Transport Services روی Mailbox سرورها
o رله کردن ایمیل های ارسالی به Transport Service و Mailbox Transport Service روی سایر Exchange Server های 2013 در همان Organization
o رله کردن ایمیلهای ارسالی به سایر Exchange Server های 2007 یا 2010 در همان Organization
o رله کردن ایمیلهای ارسالی به Edge Transport سرور
- Front End Transport Services روی Client Access سرورها
o رله کردن ایمیل های ارسالی به Transport Service روی Mailbox Server Exchange 2013
Send Connector دیگری معادل همان Send Connector intra-organization به نام mailbox delivery send connector در Mailbox Transport Service سرورهای Mailbox وجود دارد. این کانکتور هم به صورت پیش فرض ساخته و کانفیگ می شود و به صورت مخفی می باشد. Mailbox delivery send connector برای رله کردن ایمیلهای ارسالی به Transport Service و Mailbox Transport Service در Organization استفاده می شود.
به صورت پیش فرض پروتکل لاگینگ برای این کانکتور نیز غیرفعال می باشد. شما می توانید از طریق کامند نسبت به فعال یا غیرفعال سازی پروتکل لاگینک اقدام نمایید.
ساختار فایلهای پروتکل لاگ
به صورت پیش فرض فایلهای پروتکل لاگ در مسیرهای زیر قرار دارد:
- فایلهای پروتکل لاگ کانکتور دریافت کننده برای Transport Service روی میل باکس
o servers %ExchangeInstallPath%TransportRoles\Logs\Hub\ProtocolLog\SmtpReceive
- فایلهای پروتکل لاگ کانکتور دریافت کننده برای Mailbox Transport Service روی میل باکس
o servers %ExchangeInstallPath%TransportRoles\Logs\Mailbox\ProtocolLog\SmtpReceive
- فایلهای پروتکل لاگ کانکتور دریافت کننده برای Front End Transport Service روی Client Access
o servers %ExchangeInstallPath%TransportRoles\Logs\FrontEnd\ProtocolLog\SmtpReceive
- فایلهای پروتکل لاگ ارسال کننده برای Transport Service روی میل باکس
o servers %ExchangeInstallPath%TransportRoles\Logs\Hub\ProtocolLog\SmtpSend
- فایلهای پروتکل لاگ ارسال کننده برای Mailbox Transport Service روی میل باکس
o servers %ExchangeInstallPath%TransportRoles\Logs\Mailbox\ProtocolLog\SmtpSend
- فایلهای پروتکل لاگ ارسال کننده برای Front End Transport Service روی Client Access
o servers %ExchangeInstallPath%TransportRoles\Logs\FrontEnd\ProtocolLog\SmtpSend
فرمت نامگذاری برای لاگ فایلها در هر کدام از فولدرهای پروتکل لاگ به صورت prefixyyyymmdd-nnnn.log می باشد. متغیرها به صورت ذیل می باشند:
- متغیر Prefix برای کانکتور ارسال کننده SEND و برای کانکتور د ریافت کننده RECV می باشد.
- متغیر yyyymmdd نمایانگر زمان ایجاد فایل با فرمت UTC می باشد. متغیر yyyy برای سال، mm برای ماه و dd برای روز می باشد.
- متغیر nnnn برای ارزش تعداد فایلها در روز می باشد که از 1 شروع می شود.
اطلاعات در لاگ فایلها ذخیره می شوند تا جایی که حجم فایل به سقف مجاز خود برسد و سپس فایل جدیدی با شماره جدید ایجاد می شود. این پروسه در طول روز تکرار می شود. سیستم Circular Logging فایلهای تاریخ گذشته را حذف می کند وقتی که حجم فولدر از حد مجاز گذشته باشد.
پروتکل لاگ ها فایلهای TXT ای هستند که دیتاها را به صورت تقسیم بندی شده توسط Comma ایجاد نموده اند. هر پروتکل لاگ شامل Header ی می باشد که اطلاعات ذیل را در بر دارد:
- #Software نام نرم افزاری که فایل پروتکل لاگ را ایجاد نموده است. معمولا این اسم Microsoft Exchange Server می باشد.
- #Version ورژن نرم افزاری که فایل پروتکل لاگ را ایجاد نموده است. برای Exchange Server 2013 این مقدار 15.0.0.0 می باشد.
- #Log-Type مشخص می کند که فایل پروتکل لاگ مربوط به SMTP Receive Protocol Log می باشد یا SMTP Send Protocol Log
- #Date زمان ایجاد فایل را مشخص می کند.
- #Fields نام فیلد با کاما جداشده که برای فایل پروتکل لاگ استفاده می شود.
اطلاعاتی که در پروتکل فایل ذخیره می شود
پروتکل لاگ هر رخداد مربوط به SMTP را در یک خط جداگانه ذخیره می کند. اطلاعات ذخیره شده در هر خط توسط نام فیلد سازماندهی می شود. این فیلدها توسط کاما از هم جدا می شوند. در ذیل به بررسی فیلدهای مختلف می پردازیم.
- date-time زمان هر رخداد.
- connector-id نام Distinguished name (DN) کانکتور مربوط به آن رخداد
- session-id GUID که برای هر STMP Session یکتا می باشد اما برای کلیه رخدادهای مربوط به همان Session مشترک می باشد
- sequence-number شماره اندازی که از 0 شروع می شود و به ازای هر رخداد به مقدار آن افزوده می شود
- local-endpoint آیپی و پورت مربوط به مقصد لوکال که به صورت <ip address>:<port> می باشد
- remote-endpoint آیپی و پورت مربوط به مقصد اینترنتی
- event تک کاراکتری که رخداد پروتکل را معرفی می کند.
o + Connect
o – Disconnect
o > Send
o < Receive
o * Information
- Data توضیحات مربوط به رخداد SMTP
- Context اطلاعاتی متنی که احتمالا مرتبط به رخداد پیش آمده می باشد
یک گفتگوی ساده SMTP که برای ارسال یا دریافت می باشد، رخدادهای زیادی را در بر دارد در محل های مرتبط ذخیره می کند. این رخدادها در خطوط مختلف در لاگ فایلهای نوشته و ذخیره می شوند. مفدار زیادی گفتگوی SMTP برای ارسال یا دریافت ایمیل ممکن است به صورت همزمان انجام شود. که این باعث در هم آمیختگی متنهای داخل پروتکل لاگ می شود. شما از طریق session-id و sequence-number می توانید این دیتاها را مرتب کنید تا سریعتر به دیتا مورد نظر برسید.
تهیه و تنظیم مقاله توسط مهندس اصغر سلیمانی