| POSTFIX-LOGWATCH(1) | General Commands Manual | POSTFIX-LOGWATCH(1) |
نام (NAME)
postfix-logwatch - ابزار تجزیه و تحلیل لاگهای Postfix
خلاصه دستور (SYNOPSIS)
postfix-logwatch [options] [logfile ...]
توضیحات (DESCRIPTION)
ابزار postfix-logwatch(1) یک تجزیهگر لاگ MTA برای Postfix است که خلاصهها، جزئیات و آمارهایی در رابطه با عملکرد Postfix تولید میکند.
این ابزار میتواند به عنوان یک برنامه مستقل، یا به عنوان یک پودمان فیلتر Logwatch برای ایجاد گزارشهای خلاصه و تفصیلی Postfix از درون Logwatch به کار رود.
Postfix-logwatch قادر است طیف گستردهای از گزارشها را همراه با دادههایی که تا حد امکان گروهبندی و مرتب شدهاند تولید کند تا نویز کاهش یافته و الگوها برجسته شوند. گزارشهای خلاصه، نمای کلی و سریعی از عملیات عمومی Postfix و تحویل پیامها ارائه داده و هشدارهایی که ممکن است نیازمند توجه باشند را گوشزد میکنند. گزارشهای تفصیلی اطلاعاتی سازمانیافته، مرتبشده به صورت سلسلهمراتبی و با امکان پیمایش سریع را با هر میزانی از جزئیات که نیاز باشد ارائه میدهند.
Postfix-logwatch دو بخش اصلی را در خروجی نمایش میدهد: بخش Summary (خلاصه) و بخش Detailed (تفصیلی). برای خوانایی و بررسی سریع، تعداد تمامی رویدادها یا دفعات وقوع در ستون سمت چپ نمایش مییابد، به دنبال آن توضیح کوتاهی از نوع رویداد میآید و در نهایت آمار تکمیلی یا نمایشهای تعدادی ممکن است در ستون سمت راست ظاهر شوند.
بخش زیر نمونهای از یک گزارش Summary را نشان میدهد:
****** Summary ********************************************
81 *Warning: Connection rate limit reached (anvil)
146 Warned
68.310M Bytes accepted 71,628,177
97.645M Bytes delivered 102,388,245
======== ================================================
3464 Accepted 41.44%
4895 Rejected 58.56%
-------- ------------------------------------------------
8359 Total 100.00%
======== ================================================
دهها زیربخش در گزارش Detailed در دسترس هستند که خروجی هر یک را میتوان به روشهای گوناگونی کنترل کرد. هر زیربخش تلاش میکند دادههای پرمعناتر را در سطوح بالاتر گروهبندی کرده و ارائه دهد، در حالی که دادههای کماهمیتتر یا دارای نویز (noisy) را به سطوح پایینتر سوق میدهد. هدف، بهرهمندی حداکثری از گروهبندی هوشمندانه دادهها است تا بررسی سریعتر گزارش، شناسایی الگوها و حل مشکلات میسر شود. دادهها همواره به ترتیب نزولی بر اساس تعداد، و سپس به صورت عددی بر اساس آدرس IP یا به ترتیب حروف الفبا بر حسب مورد مرتب میشوند.
بخش خطاهای MX زیر از یک نمونه گزارش Detailed ساختار پایه سطوح سلسلهمراتبی postfix-logwatch را نشان میدهد:
****** Detailed *******************************************
261 MX errors --------------------------------------
261 Unable to look up MX host
222 Host not found
73 foolishspammer.local
60 completely.bogus.domain.example
11 friend.example.com
39 No address associated with hostname
23 dummymx.sample.net
16 pushn.spam.sample.com
ابزار postfix-logwatch دادهها را از STDIN یا از logfile مشخصشده Postfix میخواند. میتوان چندین آرگومان logfile را تعیین کرد که هر کدام به ترتیب پردازش میشوند. کاربری که postfix-logwatch را اجرا میکند باید مجوز خواندن بر روی هر فایل لاگ تعیینشده را داشته باشد. گزینههای ذکر شده در زیر بر عملکرد postfix-logwatch تأثیر میگذارند. گزینههایی که بعداً در خط فرمان مشخص شوند، بر گزینههای قبلی اولویت داشته و جایگزین آنها میشوند. هر گزینهای را میتوان تا حدی که غیرمبهم باشد خلاصه کرد.
- -f config_file
- --config_file config_file
- استفاده از فایل پیکربندی جایگزین config_file به جای پیشفرض. این گزینه را میتوان بیش از یک بار استفاده کرد. چندین فایل پیکربندی به ترتیبی که در خط فرمان مشخص شدهاند، پردازش خواهند شد. بخش CONFIGURATION FILE را در زیر ببینید.
- --debug keywords
- خروجی دادن اطلاعات اشکالزدایی حین اجرای postfix-logwatch. پارامتر keywords شامل یک یا چند کلیدواژه است که با کاما یا فاصله از هم جدا شدهاند. برای دریافت فهرست کلیدواژههای معتبر، از --debug xxx استفاده کنید که در آن xxx هر کلیدواژهٔ نامعتبری است.
- --[no]delays
- خروجی
گزارش
صدکهای
تأخیر پیام
را فعال
(غیرفعال)
میکند.
گزارش
صدکهای
تأخیر،
صدکها را
برای هر یک
از ۴ زمان
تأخیر
تحویل
گزارششده
توسط Postfix
(موجود در
نگارش ۲.۳ و
جدیدتر) در
قالب
delays=a/b/c/d
نمایش
میدهد، که
در آن: a
مقدار زمان
قبل از صف
فعال (شامل
زمان
تلاشهای
تحویل قبلی
و زمان
سپریشده
در صف
تعویقافتاده)،
b مقدار
زمان در صف
فعال تا
واگذاری به
کارگزار
تحویل، c
مقدار زمان
صرفشده
برای
برقراری
اتصالات
(شامل DNS، HELO و TLS) و
d مقدار
زمان
صرفشده
برای تحویل
پیام است.
کل تأخیر
نمایشدادهشده
از فیلد delay=
در یک خط
لاگ تحویل
پیام به دست
میآید.
نکته: این گزارش ممکن است مقدار زیادی از حافظه را مصرف کند؛ اگر به آن نیازی ندارید، گزارش تأخیرها را غیرفعال کنید.
- --delays_percentiles p1 [p2 ...]
- صدکهای مورد استفاده در گزارش صدکهای تأخیر پیام را مشخص میکند. صدکهای p1، p2، ... در بازهٔ ۰ تا ۱۰۰ (شامل خود آنها) قرار دارند. ترتیب فهرست مرتبسازی نمیشود - گزارش ستونهای صدکها را به همان ترتیبی که مشخص کردهاید خروجی میدهد.
- --detail level
- حداکثر سطح
جزئیات را
برای postfix-logwatch
روی level
تنظیم
میکند. این
گزینه
سراسری
بوده و بر
تمام
محدودکنندههای
خروجی
دیگری که در
زیر توضیح
داده
شدهاند
اولویت
دارد.
ابزار postfix-logwatch یک بخش Summary، یک بخش Detailed و بخشهای گزارش اضافی تولید میکند. اگر مقدار level کمتر از ۵ باشد، postfix-logwatch فقط بخش Summary را تولید میکند. در level ۵ و بالاتر، بخش Detailed و هر بخش گزارش اضافی کاندیدای خروجی هستند. هر افزایش تدریجی در level، یک زیرسطح سلسلهمراتبی دیگر از خروجی را در بخش Detailed گزارش تولید میکند. در level ۱۰، همهٔ سطوح خروجی داده میشوند. خطوطی که از حداکثر عرض گزارش (مشخصشده با max_report_width) فراتر روند، بریده خواهند شد. تنظیم level روی ۱۱ از بریده شدن خطوط در گزارش جلوگیری میکند (همچنین --line_style را ببینید).
- --help
- چاپ اطلاعات نحوه استفاده و شرح مختصری از گزینههای خط فرمان.
- --ignore_service pattern
- نادیده
گرفتن خطوط
لاگی که
شامل نام
سرویس postfix به
صورت postfix/service
هستند.
پارامتر service
یک عبارت
باقاعده (regular
expression) است.
نکته: اگر در عبارت باقاعدهٔ خود از پرانتز استفاده میکنید، اطمینان حاصل کنید که غیرگروهبند (cloistering / non-capturing) باشند و نه ضبطکننده (capturing): از (?:pattern) به جای (pattern) استفاده کنید.
- --ipaddr_width width
- مشخص میکند که نشانیهای IP در جفتهای نشانی/نام میزبان (address/hostname) باید با عرض فیلد به اندازهٔ width نویسه چاپ شوند. افزایش مقدار پیشفرض میتواند برای سیستمهایی که از نشانیهای طولانی IPv6 استفاده میکنند مفید باشد.
- -l limiter=levelspec
- --limit limiter=levelspec
- محدودکنندهٔ سطح limiter را با مشخصهٔ levelspec تنظیم میکند.
- --line_style style
- نحوهٔ مدیریت خطوط طولانی گزارش را مشخص میکند. سه سبک در دسترس است: full، truncate و wrap. تنظیم style روی full مانع از برش خطوط به اندازهٔ max_report_width میشود؛ این همان وضعیتی است که با تعیین detail برابر با ۱۱ یا بالاتر رخ میدهد. هنگامی که style روی truncate (پیشفرض) باشد، خطوط طولانی بر اساس max_report_width کوتاه میشوند. تنظیم style روی wrap خطوط طولانیتر از max_report_width را به گونهای میشکند که شمارندههای ستون چپ مخدوش نشوند. این گزینه بر سبک خطی که توسط سطح detail تعیین میشود اولویت دارد. گزینههای --full، --truncate و --wrap مترادف هستند.
- --[no]long_queue_ids
- تفسیر شناسههای صف طولانی (long queue IDs) را در لاگهای Postfix (نسخه ۲.۹ یا بالاتر) فعال (غیرفعال) میکند.
- --nodetail
- بخش Detailed گزارش و تمام گزارشهای تکمیلی را غیرفعال میکند. این گزینه سازوکار مناسبی را برای غیرفعال کردن سریع تمام بخشهای ذیل گزارش Detailed فراهم میکند؛ جایی که گزینههای بعدی در خط فرمان میتوانند یک یا چند بخش را برای ایجاد گزارشهای خاص مجدداً فعال کنند.
- --[no]summary
- --show_summary
- نمایش بخش Summary گزارش را فعال (غیرفعال) میکند. متغیر postfix_Show_Summary در فایل پیکربندی استفاده میشود.
- --recipient_delimiter delimiter
- تفکیک نشانیهای تحویل ایمیل با استفاده از نویسهٔ جداکنندهٔ گیرنده delimiter. این مقدار عموماً باید با recipient_delimiter مشخصشده در فایل پارامترهای Postfix یعنی main.cf، یا مقدار پیشفرض مشخصشده در خروجی postconf -d recipient_delimiter مطابقت داشته باشد. این گزینه برای به دست آوردن آمار به تفکیک نام مستعار هنگامی که از یک جداکنندهٔ گیرنده برای تحویل ایمیل استفاده میشود بسیار مفید است.
- --reject_reply_patterns r1 [r2 ...]
- فهرست
الگوهای
پاسخ رد (reject reply patterns)
مورد
استفاده
برای ایجاد
گروههای
رد را مشخص
میکند. هر
مدخل در
فهرست r1 [r2 ...]
باید یا یک
کد پاسخ سه
نویسهای
عبارت
باقاعده به
شکل [45][0-9.][0-9.]
باشد، یا
کلمهٔ "Warn".
نقطه "." در
عبارت
باقاعده یک
نقطهٔ عینی
است که با
هر زیرکد
پاسخ رد
مطابقت
دارد؛ این
نویسهٔ عام
امکان
ایجاد
گروههای
رد گسترده
را فراهم
میسازد.
ترتیب
فهرست حفظ
میشود،
بدین صورت
که
گزارشهای
رد با همان
ترتیبی که
در فهرست
قرار دارند
خروجی داده
خواهند شد.
کدهای پاسخ
ردِ مشخص،
بدون در نظر
گرفتن
ترتیب
فهرست،
نسبت به
الگوهای
عام اولویت
خواهند
داشت.
فهرست پیشفرض "5.. 4.. Warn" است که سه گروه از ردها را ایجاد میکند: ردهای دائمی، شکستهای رد موقت و هشدارهای رد (مانند warn_if_reject).
این ویژگی به عنوان مثال امکان تمایز بین بستهشدن کانال انتقال 421 از خطاهای 45x (مانند 450 صندوق پستی در دسترس نیست، 451 خطاهای پردازش محلی، 452 فضای ذخیرهسازی ناکافی) را فراهم میآورد. چنین گروهبندیای با این فهرست پیکربندی میشود: "421 4.. 5.. Warn". برای اطلاعات بیشتر در مورد کدهای پاسخ، RFC 2821 را ببینید.
همچنین بخش CONFIGURATION FILE را دربارهٔ استفاده از reject_reply_patterns در فایل پیکربندی ببینید.
- --[no]sect_vars
- --show_sect_vars boolean
- تکمیل عنوان هر بخش Detailed با نام محدودکنندهٔ سطح آن بخش را فعال (غیرفعال) میکند. نام نمایشدادهشده، گزینهٔ خط فرمان (یا متغیر فایل پیکربندی) است که برای محدود کردن خروجی آن بخش استفاده میشود. با توجه به تعداد زیاد محدودکنندههای سطح موجود در postfix-logwatch، این یک سازوکار مناسب برای تعیین دقیق این است که کدام محدودکنندهٔ سطح بر یک بخش تأثیر میگذارد.
- --syslog_name namepat
- نام سرویس syslog
را که postfix-logwatch
برای تطبیق
با خطوط syslog
استفاده
میکند
مشخص
میکند. فقط
خطوط لاگی
که نام
سرویس
آنها با
عبارت
باقاعده
پرل namepat
مطابقت
داشته باشد
توسط postfix-logwatch
استفاده
خواهند شد؛
تمام خطوط
غیر منطبق
بدون هشدار
نادیده
گرفته
میشوند.
این ویژگی
زمانی مفید
است که یک
بستهٔ Postfix از
پیش
نصبشده از
نامی به غیر
از پیشفرض
(postfix) استفاده
کند، یا
زمانی که
چندین
نمونه از Postfix
در حال
استفاده
هستند و
گزارشگیری
به تفکیک
نمونه مورد
نیاز باشد.
الگوی namepat باید با پارامتر پیکربندی syslog_name مشخصشده در فایل پارامترهای Postfix یعنی main.cf، فایل کنترلی اصلی master.cf یا مقدار پیشفرض مشخصشده در خروجی postconf -d syslog_name مطابقت داشته باشد.
نکته: اگر در عبارت باقاعدهٔ خود از پرانتز استفاده میکنید، اطمینان حاصل کنید که غیرگروهبند (cloistering / non-capturing) باشند و نه ضبطکننده (capturing): از (?:pattern) به جای (pattern) استفاده کنید.
- --[no]unknown
- --show_unknown boolean
- نمایش نام 'unknown' تولیدشده توسط postfix را در جفتهای قالببندیشدهٔ IP/نام میزبان در گزارشهای Detailed فعال (غیرفعال) میکند. پیشفرض: فعال.
- --version
- چاپ اطلاعات نگارش postfix-logwatch..SS "محدودکنندههای سطح (Level Limiters)"
خروجی هر بخش در گزارش Detailed توسط یک محدودکننده سطح کنترل میشود. نام متغیر محدودکننده سطح زمانی که گزینه sect_vars تنظیم شده باشد نمایش داده خواهد شد. محدودکنندههای سطح یا از طریق خط فرمان در حالت مستقل با گزینه --limit limiter=levelspec تنظیم میشوند، یا از طریق متغیر فایل پیکربندی $postfix_limiter=levelspec. هر محدودکننده نیازمند یک آرگومان levelspec است که در ادامه در بخش LEVEL CONTROL شرح داده شده است.
فهرست محدودکنندههای سطح در زیر آورده شده است.
چندین محدودکننده سطح وجود دارند که زیربخشهای رد (reject) را کنترل میکنند (مانند rejectbody، rejectsender و غیره). از آنجا که فهرست گونههای رد تا زمان اجرا و پس از مشاهده reject_reply_patterns مشخص نیست، این محدودکنندههای رد در زیر به صورت عمومی با پیشوند ### نمایش داده شدهاند. برای استفاده از یکی از این محدودکنندههای رد، ### را با یکی از کدهای پاسخ ردِ در حال اجرا جایگزین کنید، به طوری که هر نقطه با یک نویسه x جایگزین شود. به عنوان مثال، با استفاده از فهرست پیشفرض reject_reply_patterns به صورت "5.. 4.. Warn"، سه گونه از rejectbody معتبر خواهد بود: --limit 5xxrejectbody، --limit 4xxrejectbody و --limit warnrejectbody. برای راحتی، میتوانید پیشوند ### را به طور کامل حذف کرده و به جای آن از گزینه خالی rejectXXX استفاده کنید، و تمام گونههای محدودکننده سطح رد به طور خودکار بر اساس فهرست reject_reply_patterns تولید خواهند شد. برای مثال، بخش خط فرمان:
... --reject_reply_patterns "421 5.." \
--limit rejectrbl="1:10:"
به طور
خودکار به
صورت زیر
تبدیل
خواهد شد:
... --reject_reply_patterns "421 5.." \
--limit 421rejectrbl="1:10:" --limit 5xxrejectrbl="1:10:"
به reject_reply_patterns در
بالا، و
توضیحات
درون فایل
پیکربندی
postfix-logwatch.conf مراجعه
کنید.
[ این بخش هنوز کامل نشده است ]
- AttrError
- خطاها در دریافت دادههای مشخصه (attribute) از سرویس.
- BCCed
- پیامهایی که کنش BCC را در access، header_checks یا body_checks فعال کردهاند. (شاخه آزمایشی postfix 2.6)
- BounceLocal
- BounceRemote
- برگشتهای (bounces) محلی و دوردست. یک برگشت زمانی یک برگشت محلی در نظر گرفته میشود که رله یکی از موارد none، local، virtual، avcheck، maildrop یا 127.0.0.1 باشد.
- ByIpRejects
- گروهبندی مجدد تمام گونههای رد دائمی (5xx) بر اساس آدرس IP میزبان کلاینت.
- CommunicationError
- خطاهای Postfix در برقراری ارتباط با یکی از سرویسهای خود.
- Anvil
- محدودیتهای نرخ یا همزمانی سرویس Anvil.
- ConnectionInbound
- اتصالات برقرار شده با سرور smtpd.
- ConnectionLostInbound
- اتصالات قطعشده با سرور smtpd.
- ConnectionLostOutbound
- اتصالات قطعشده در حین ارتباطات smtp با MTA دوردست.
- ConnectToFailure
- شکستهای گزارششده توسط smtp هنگام اتصال به MTA دوردست.
- DatabaseGeneration
- هشدارهای ثبتشده زمانی که فایل نگاشت پایگاهداده باینری نیازمند بهروزرسانی postmap از فایل منبع جدیدتر باشد.
- Deferrals
- Deferred
- به تعویق افتادنهای تحویل پیام. یک پیام منفرد deferred بارها دارای یک یا چند مورد deferrals خواهد بود.
- Deliverable
- اعتبارسنجی آدرس نشان میدهد که آدرس گیرنده قابلتحویل است.
- Delivered
- تعداد پیامهای تحویل داده شده به یک عامل تحویل مانند local یا virtual.
- Discarded
- پیامهایی که کنش DISCARD را در access، header_checks یا body_checks فعال کردهاند.
- DNSError
- هر یک از خطاهای متعددی که در طول جستجوهای DNS رخ داده است.
- EnvelopeSenderDomains
- فهرست دامنههای فرستنده. (۲ سطح: دامنه فرستنده پاکتنامه، localpart)
- EnvelopeSenders
- فهرست فرستندگان پاکتنامه. (۱ سطح: فرستنده پاکتنامه)
- Error
- پیامهای خطای (error) عمومی Postfix.
- FatalConfigError
- خطاهای پیکربندی مهلک در main.cf یا master.cf.
- FatalError
- پیامهای مهلک (fatal) عمومی Postfix.
- Filtered
- پیامهایی که کنش FILTER را در access، header_checks یا body_checks فعال کردهاند.
- Forwarded
- پیامهای بازفرستاده شده توسط MDA از یک رده آدرس به رده دیگر (مانند local -> virtual).
- HeloError
- XXXXXXXXXXX
- Hold
- پیامهایی که توسط postsuper به حالت تعلیق درآمدند، یا کنش HOLD را در access، header_checks یا body_checks فعال کردهاند.
- HostnameValidationError
- نام میزبان نامعتبر شناسایی شد.
- HostnameVerification
- جستجوی نام میزبان به IP همتا (یعنی سیستم دوردستی که به smtpd متصل میشود) برنمیگردد. همچنین با نام DNS معکوس تأیید شده به جلو (FCRDNS) شناخته میشود. هنگامی که نام معکوس هیچ ورودی DNS ندارد، پیام «host not found, try again» گنجانده میشود؛ در غیر این صورت خیر (به عنوان مثال هنگامی که معکوس دارای آدرس IP دیگری است، اما نه آن آدرسی که Postfix انتظار دارد).
- IllegalAddrSyntax
- نحو غیرمجاز در آدرس ایمیل ارائهشده در طول گفتگوی MAIL FROM یا RCPT TO.
- LdapError
- هرگونه خطای LDAP در حین جستجوی LDAP.
- MailerLoop
- جستجوی MX برای یافتن بهترین کارگزار پست به منظور تحویل نامه منجر به ارسال به خودمان شود.
- MapProblem
- مشکل در جدول نگاشت access که نیازمند تصحیح است.
- MessageWriteError
- مواجه شدن Postfix با خطا هنگام تلاش برای ایجاد فایل پیام در دایرکتوری spool.
- NumericHostname
- نام میزبانی یافت شد که به جای حروف، عددی بود.
- PanicError
- پیامهای وحشتزدگی (panic) عمومی Postfix.
- PixWorkaround
- راهحلهای موقتی برای اجتناب از «fixup»های SMTP در Cisco PIX دوردست فعال شدند.
- PolicydWeight
- خلاصهسازی نتایج policyweight/policydweight.
- PolicySpf
- خلاصهسازی نتایج PolicySPF.
- Postgrey
- خلاصهسازی نتایج Postgrey.
- Postscreen
- خلاصهسازی سرویسهای postscreen و verify در نسخه 2.7.
- DNSBLog
- خلاصهسازی سرویس dnsblog در نسخه 2.7.
- Prepended
- پیامهایی که کنش PREPEND را در header_checks یا body_checks فعال کردهاند.
- ProcessExit
- سرویسهای Postfix که به طور غیرمنتظره خارج شدهاند.
- ProcessLimit
- یک سرویس Postfix به حداکثر تعداد مجاز فرایندها رسیده یا از آن فراتر رفته است.
- QueueWriteError
- مشکلات در نوشتن فایل صف Postfix.
- RblError
- خطاهای جستجو برای RBLها.
- Redirected
- پیامهایی که کنش REDIRECT را در access، header_checks یا body_checks فعال کردهاند.
- ###RejectBody
- پیامهایی که کنش REJECT را در body_checks فعال کردهاند.
- ###RejectClient
- پیامهای رد شده توسط کنترلهای دسترسی کلاینت (smtpd_client_restrictions).
- ###RejectConfigError
- پیامهای رد شده به دلیل خطاهای پیکربندی سرور.
- ###RejectContent
- پیامهای رد شده توسط message_reject_characters.
- ###RejectData
- پیامهای رد شده در مرحله DATA در گفتگوی SMTP (smtpd_data_restrictions).
- ###RejectEtrn
- پیامهای رد شده در مرحله ETRN در گفتگوی SMTP (smtpd_etrn_restrictions).
- ###RejectHeader
- پیامهایی که کنش REJECT را در header_checks فعال کردهاند.
- ###RejectHelo
- پیامهای رد شده در مرحله HELO/EHLO در گفتگوی SMTP (smtpd_helo_restrictions).
- ###RejectInsufficientSpace
- پیامهای رد شده به دلیل کمبود فضای ذخیرهسازی.
- ###RejectLookupFailure
- پیامهای رد شده به دلیل خطاهای موقت در جستجوی DNS.
- ###RejectMilter
- ردهای Milter. هیچ کد پاسخ ردی برای این ردها موجود نیست، اما یک DSN گسترده 5.7.1 ارائه شده است. این ردها به اجبار در گروه ردهای عمومی 5xx قرار میگیرند. اگر reject_reply_patterns را طوری بازتعریف کنید که شامل الگوی 5.. نباشد، ردهای milter در خروجی ظاهر نخواهند شد.
- ###RejectRbl
- پیامهای رد شده به دلیل تطابق در RBL.
- ###RejectRecip
- پیامهای رد شده توسط کنترلهای دسترسی گیرنده (smtpd_recipient_restrictions).
- ###RejectRelay
- پیامهای رد شده توسط کنترلهای دسترسی رله.
- ###RejectSender
- پیامهای رد شده توسط کنترلهای دسترسی فرستنده (smtpd_sender_restrictions).
- ###RejectSize
- پیامهای رد شده به دلیل حجم بیش از حد پیام.
- ###RejectUnknownClient
- پیامهای رد شده توسط کنترلهای دسترسی کلاینت ناشناخته..IP "###RejectUnknownReverseClient" پیامهای ردشده توسط کنترلهای دسترسی کلاینت معکوس ناشناخته.
- ###RejectUnknownUser
- پیامهای ردشده توسط کنترلهای دسترسی کاربر ناشناخته.
- ###RejectUnverifiedClient
- پیامهای ردشده توسط کنترلهای دسترسی کلاینت تأییدنشده.
- ###RejectVerify
- پیامهای ردشده به دلیل شکست در اعتبارسنجی نشانی.
- Replaced
- پیامهایی که کنش REPLACE را در header_checks یا body_checks فعال کردهاند.
- ReturnedToSender
- پیامهای بازگرداندهشده به فرستنده به دلیل فراتر رفتن از زمان ماندگاری صف (maximal_queue_lifetime).
- SaslAuth
- موفقیتهای احراز هویت SASL؛ شامل روش SASL، نام کاربری و فرستنده در صورت وجود.
- SaslAuthFail
- شکستهای احراز هویت SASL.
- Sent
- پیامهای ارسالشده از طریق عامل تحویل SMTP.
- SentLmtp
- پیامهای ارسالشده از طریق عامل تحویل LMTP.
- SmtpConversationError
- خطاها در طول گفتگوی SMTP/ESMTP.
- SmtpProtocolViolation
- نقض پروتکل در طول گفتگوی SMTP/ESMTP.
- StartupError
- خطاها در حین راهاندازی کارگزار Postfix.
- TimeoutInbound
- اتصالهایی به smtpd که دچار پایان مهلت زمانی (timeout) شدهاند.
- TlsClientConnect
- اتصالهای کلاینت TLS.
- TlsOffered
- ارتباط TLS پیشنهادشده.
- TlsServerConnect
- اتصالهای سرور TLS.
- TlsUnverified
- اتصالهای تأییدنشده TLS.
- Undeliverable
- اعتبارسنجی نشانی نشان میدهد که نشانی گیرنده غیرقابل تحویل است.
- Warn
- پیامهایی که کنش WARN را در access، header_checks یا body_checks فعال کردهاند.
- WarnConfigError
- هشدارهای مربوط به خطاهای پیکربندی Postfix.
- WarningsOther
- پیامهای عمومی warning در Postfix.
کنترل سطح (LEVEL CONTROL)
بخش Detailed از گزارش شامل تعدادی زیربخش است که هر یک از آنها هم به صورت سراسری و هم به طور مستقل کنترل میشوند. دو تنظیم بر خروجی ارائهشده در گزارش Detailed تأثیر میگذارند: یک سطح جزئیات سراسری (که با --detail مشخص میشود) و کنترل نهایی (چکش بزرگ) را برای محدود کردن خروجی بخش Detailed اعمال میکند، و تنظیمات جزئیات مختص زیربخش (چکش کوچک) که امکان محدودسازی بیشتر خروجی را برای هر زیربخش فراهم میسازد. هر زیربخش میتواند به یک عمق مشخص محدود شود و هر زیرسطح را میتوان با حدود N تای برتر یا مقادیر آستانه محدود کرد. آرگومان levelspec برای هر یک از محدودکنندههای سطحِ ذکرشده در بالا برای دستیابی به این هدف به کار میرود.
شاید بهتر باشد توضیح محدودسازی زیرسطح را با ساختار سلسلهمراتبی شناختهشده زیر و چند مثال پایه ادامه دهیم:
level 0
level 1
level 2
level 3
level 4
level 4
level 2
level 3
level 4
level 4
level 4
level 3
level 4
level 3
level 1
level 2
level 3
level 4
سادهترین شکل محدودسازی خروجی، تمام خروجیهای پایینتر از یک سطح مشخص را حذف میکند. برای مثال، یک levelspec که روی "2" تنظیم شده است، تنها دادههای سطوح 0 تا 2 را نشان میدهد. این کار را مانند جمعکردن (collapse) هر مورد در زیرسطح 2 در نظر بگیرید که بدین ترتیب تمامی سطوح پایینتر (3، 4، ...) پنهان شده و خروجی زیر حاصل میشود:
level 0
level 1
level 2
level 2
level 1
level 2
گاهی حجم خروجی در یک بخش بیش از حد زیاد است و حذف دادههایی که از یک مقدار آستانه مشخص فراتر نمیروند سودمند خواهد بود. یک حمله هرزنامه فرهنگلغتی (dictionary spam attack) را در نظر بگیرید که فهرستهای بسیار طولانی از نشانیهای ایمیل یا IP گیرندهای با تنها یکبار رخداد تولید میکند. هر زیرسطح در سلسلهمراتب را میتوان با تنظیم مناسب levelspec به صورت آستانهای محدود کرد. تنظیم levelspec به مقدار "2::5" هر دادهای را در سطح 2 که تعداد دفعات رخداد آن از 5 بیشتر نباشد، حذف خواهد کرد.
شاید ایجاد فهرستی از N تای برتر، مانند ۱۰ فرستنده برتر، مورد نظر باشد. مقدار levelspec به صورت "3:10:" دادههای سطح 3 را تنها به ۱۰ رخداد برتر محدود میکند.
با کنار گذاشتن این مثالهای ساده، levelspec به صورت فهرستی از یک یا چند مورد از موارد زیر تعریف میشود که با فاصله یا کاما از یکدیگر جدا شدهاند:
- l
- حداکثر سطحی را که باید برای این زیربخش نمایش داده شود تعیین میکند، با دامنهای از 0 تا 10. اگر l برابر 0 باشد، هیچ سطحی در خروجی نمایش داده نمیشود و عملاً زیربخش غیرفعال میگردد (دادههای سطح 0 پیشاپیش در گزارش Summary ارائه شدهاند، بنابراین سطح 1 نخستین سطح کاربردی در گزارش Detailed در نظر گرفته میشود). مقادیر بالاتر، خروجی را تا سطح تعیینشده و شامل آن تولید خواهند کرد.
- l.n
- مشابه بالا، با این افزونه که n خروجی سطح 1 این بخش را به n مورد برتر محدود میکند. مقدار n میتواند هر عدد صحیح بزرگتر از 1 باشد. (این شیوه محدودسازی کارایی کمتری نسبت به نحو زیر دارد. این قالب جهت سازگاری با نسخههای پیشین ارائه شده و به کاربران توصیه میشود از نحو زیر استفاده کنند).
- l:n:t
- این سهتایی، سطح l، تعداد برتر n و حداقل آستانه t را تعیین میکند. هر یک از مقادیر، اعداد صحیحی هستند که l محدودکننده سطح طبق توضیحات بالا، n محدودکننده N تای برتر برای سطح l، و t محدودکننده آستانه برای سطح l است. هنگامی که هر دو مقدار n و t مشخص شده باشند، n اولویت دارد و امکان ایجاد فهرستهای N تای برتر را (بدون توجه به مقدار آستانه) فراهم میسازد. چنانچه مقدار l درج نشود، مقادیر مشخصشده برای n و/یا t برای تمامی سطوح موجود در زیربخش اعمال میشوند. این موضوع امکان نوعی تطبیق عام (wildcarding) ساده را فراهم میکند (مثلاً اعمال محدودیتهای حداقل آستانه بر روی تمام سطوح). با این حال، محدودکنندههای مشخص همواره بر محدودکنندههای عام ارجحیت دارند. نخستین شکل از محدودکننده سطح میتواند در levelspec گنجانده شود تا بدون توجه به تعداد سهتاییهای موجود، خروجی کلی را محدود کند.
هر سه شکل از این محدودکنندهها تنها زمانی مؤثر هستند که سطح جزئیات postfix-logwatch برابر با 5 یا بیشتر باشد (بخش Detailed تا زمانی که سطح جزئیات حداقل 5 نباشد فعال نمیگردد).
برای مشاهده سناریوهای کاربردی، بخش مثالها (EXAMPLES) را ببینید..SH "فایل پیکربندی (CONFIGURATION FILE)" دستور postfix-logwatch میتواند تنظیمات پیکربندی را از یک فایل پیکربندی بخواند. در اصل، هر گزینه خط فرمان میتواند در یک فایل پیکربندی قرار گیرد، و این تنظیمات هنگام راهاندازی خوانده میشوند.
از آنجا که postfix-logwatch میتواند به صورت مستقل یا درون Logwatch اجرا شود، برای به حداقل رساندن سردرگمی، postfix-logwatch از قواعد ساختاری و قراردادهای فایل پیکربندی Logwatch پیروی میکند. این موارد عبارتند از:
- خطوط خالی نادیده گرفته میشوند.
- خطوطی که با # شروع میشوند نادیده گرفته میشوند.
- تنظیمات به
این صورت
هستند:
option = value
- فاصلهها یا تبها در دو طرف نویسه = نادیده گرفته میشوند.
- بزرگی و کوچکی حروف هر value که درون نقلقول دوتایی قرار گیرد، حفظ خواهد شد.
- تمام محتواهای دیگر به حروف کوچک تبدیل میشوند (عدم حفظ بزرگی و کوچکی، غیرحساس به حروف).
- تمامی تنظیمات پیکربندی postfix-logwatch باید پیشوند "$postfix_" داشته باشند، در غیر این صورت postfix-logwatch آنها را نادیده خواهد گرفت.
- هنگام اجرا تحت Logwatch، هر مقداری که فاقد پیشوند "$postfix_" باشد توسط Logwatch مصرف میشود؛ Logwatch تنها تنظیماتی را (از طریق متغیر محیطی) به postfix-logwatch ارسال میکند که از نظر خودش معتبر باشند.
- مقادیر True و Yes به 1، و مقادیر False و No به 0 تبدیل میشوند.
- ترتیب تنظیمات درون فایل پیکربندی حفظ نمیشود (چرا که تنظیمات توسط Logwatch از طریق متغیرهای محیطی ارسال میشوند که هیچ ترتیب تعریفشدهای ندارند).
برای گنجاندن یک گزینه خط فرمان در یک فایل پیکربندی، پیشوند "$postfix_" را به نام گزینه خط فرمان اضافه کنید. تنظیم فایل پیکربندی و گزینه خط فرمان زیر با یکدیگر معادل هستند:
$postfix_Line_Style = Truncate --line_style Truncateمحدودکنندههای سطح نیز پیشوند $postfix_ دریافت میکنند، اما در خط فرمان با گزینه --limit مشخص میشوند:
$postfix_Sent = 2 --limit Sent=2
ترتیب پردازش گزینههای خط فرمان و فایلهای پیکربندی به صورت زیر رخ میدهد: 1) فایل پیکربندی پیشفرض در صورت وجود خوانده میشود، مشروط بر اینکه گزینه --config_file در خط فرمان مشخص نشده باشد. 2) فایلهای پیکربندی به ترتیبی که در خط فرمان آمدهاند خوانده و پردازش میشوند. 3) گزینههای خط فرمان بر تمام گزینههایی که پیشتر چه از طریق خط فرمان و چه از طریق فایل پیکربندی تنظیم شدهاند، برتری داشته و آنها را رونویسی میکنند.
گزینههای خط فرمان به ترتیبی که در خط فرمان مشاهده میشوند تفسیر میشوند، و گزینههای پسین گزینههای از پیش تنظیمشده را رونویسی خواهند کرد. استثنای قابل توجه در مورد متغیرهای محدودکننده است، که به ترتیب مشاهده تفسیر میشوند، اما این کار تنها پس از پردازش سایر گزینهها صورت میپذیرد. این موضوع به --reject_reply_patterns اجازه میدهد تا فهرست پویای محدودکنندههای گوناگون reject را تعیین کند.
همچنین گزینه --reject_reply_patterns را ببینید.
وضعیت خروج (EXIT STATUS)
ابزار postfix-logwatch با کد وضعیت 0 خارج میشود، مگر اینکه خطایی رخ داده باشد که در این صورت یک وضعیت خروج غیرصفر بازگردانده خواهد شد.
مثالها (EXAMPLES)
نکته: postfix-logwatch دادههای گزارش خود را از یک یا چند فایل گزارش مشخصشدهٔ Postfix، یا از STDIN میخواند. برای اختصار، در صورت نیاز، مثالهای زیر از واژهٔ file به عنوان آرگومان خط فرمان به معنای /path/to/postfix.log استفاده میکنند. بدیهی است که باید file را با مسیر مناسب جایگزین کنید.
برای اجرای postfix-logwatch در حالت مستقل، به سادگی دستور زیر را اجرا کنید:
postfix-logwatch file
فهرست کاملی از گزینهها و نحوهٔ استفادهٔ پایهای از طریق دستور زیر در دسترس است:
postfix-logwatch --help
برای چاپ گزارشی که تنها شامل خلاصهای از دادههای گزارش Postfix است:
postfix-logwatch --detail 1 file
برای تولید یک گزارش خلاصه و یک گزارش تفصیلی سطح یک برای ۲۵ مِی (May 25th):
grep 'May 25' file | postfix-logwatch --detail 5
برای تولید فهرستی که فقط شامل ۱۰ دامنهٔ برتر ایمیلهای ارسالی (Sent) باشد، ابتدا گزارش خلاصه و گزارشهای تفصیلی غیرفعال میشوند. از آنجا که گزینههای خط فرمان از چپ به راست خوانده و فعال میشوند، بخش Sent دوباره تا سطح ۱ با یک محدودکنندهٔ ۱۰ تای برتر سطح ۱ فعال میشود:
postfix-logwatch --nosummary --nodetail --limit sent='1 1:10:' file
دستور زیر و خروجی نمونهٔ آن، مثالی پیچیدهتر از محدودکنندهٔ سطح را نشان میدهد. این دستور ۳ نشانی ایمیل ارسالی برتر از ۵ دامنهٔ برتر را ارائه میدهد، به علاوه، تمام موارد سطح ۳ با تعداد دفعات تکرار ۲ یا کمتر پنهان (حذف) میشوند (در زیربخش Sent، این مورد مربوط به نشانی اصلی گیرندهٔ ایمیل یا Original To است). علامتهای سهنقطه نشاندهندهٔ دادههای N تای برتر یا محدودشده بر اساس آستانه هستند:
postfix-logwatch --nosummary --nodetail \
--limit sent '1:5: 2:3: 3::2' file
1762 Sent via SMTP -----------------------------------
352 example.com
310 joe
255 joe.bob@virtdomain.example.com
7 info@virtdomain.example.com
21 pooryoda3
11 hot93uh
...
244 sample.net
97 buzz
26 leroyjones
14 sally
...
152 example.net
40 jim_jameson
23 sam_sampson
19 paul_paulson
...
83 sample.us
44 root
39 jenny1
69 dom3.example.us
10 kay
7 ron
6 mrsmith
...
...
دستور بعدی هم از reject_reply_patterns و هم از محدودکنندههای سطح برای مشاهدهٔ خطاهای رد ۴۲۱ مربوط به RBL استفاده میکند، که خروجی سطح ۲ را به مواردی با تعداد دفعات تکرار بیش از ۵ محدود میسازد (سطح ۲ در زیربخش Reject RBL، جفت نشانی IP / نام میزبان کلاینت است). این کار یک فهرست بسیار مناسب از متخلفان RBL ایجاد میکند که در خروجی نمونه نشان داده شده است (به استفاده از گزینهٔ خط فرمان اختصاری و بدون ابهام reject_reply_pat توجه کنید):
postfix-logwatch --reject_reply_pat '421 4.. 5.. Warn' \
--nosummary --nodetail --limit 421rejectrbl='2 2::5' file
300 421 Reject RBL ---------------------------------------
243 zen.spamhaus.org=127.0.0.2
106 10.0.0.129 129.0.0.example.com
41 192.168.10.70 hostx10.sample.net
40 192.168.42.39 hostz42.sample.net
15 10.1.1.152 dsl-10-1-1-152.example.us
14 10.10.10.122 mail122.sample.com
7 192.168.3.44 smalltime-spammer.example.com
...
48 zen.spamhaus.org=127.0.0.4
17 10.29.124.92 10-29-124-92.adsl-static.sample.us
...
8 zen.spamhaus.org=127.0.0.11
...
1 zen.spamhaus.org=127.0.0.10
...
نکته:
نسخههای Logwatch
پیش از 7.3.6،
مگر در صورت
پیکربندی
دیگر، برای
چاپ در STDOUT
بهجای
ارسال
گزارشها
از طریق
ایمیل، به
گزینهٔ --print
نیاز
داشتند. از
نسخهٔ 7.3.6، STDOUT
مقصد خروجی
پیشفرض
است و
گزینهٔ --print
با --output stdout
جایگزین
شده است.
پیکربندی
خود را
بررسی کنید
تا مشخص شود
خروجی
گزارش به
کجا هدایت
خواهد شد، و
گزینهٔ
مناسب را به
دستورهای
زیر اضافه
کنید.
برای چاپ گزارش خلاصهای از دادههای لاگ امروز Postfix:
logwatch --service postfix --range today --detail 1
برای چاپ گزارشی از دادههای لاگ امروز Postfix، با یک سطح از جزئیات در بخش Detailed:
logwatch --service postfix --range today --detail 5
برای چاپ گزارشی برای دیروز، با دو سطح جزئیات در بخش Detailed:
logwatch --service postfix --range yesterday --detail 6
برای چاپ گزارشی از ۱۲ دسامبر تا ۱۴ دسامبر، با چهار سطح جزئیات در بخش Detailed:
logwatch --service postfix --range \
'between 12/12 and 12/14' --detail 8
برای چاپ گزارشی برای امروز، با تمام سطوح جزئیات:
logwatch --service postfix --range today --detail 10
مشابه بالا، اما خطوط طولانی را بدون برش باقی میگذارد:
logwatch --service postfix --range today --detail 11
محیط (ENVIRONMENT)
برنامهٔ postfix-logwatch هنگام اجرا تحت Logwatch از متغیرهای محیطی زیر (که بهطور خودکار تنظیم میشوند) استفاده میکند:
- LOGWATCH_DETAIL_LEVEL
- این سطح جزئیات مشخصشده با آرگومان خط فرمان --detail در Logwatch یا تنظیم Detail در فایل پیکربندی ...conf/services/postfix.conf است.
- LOGWATCH_DEBUG
- این سطح اشکالزدایی مشخصشده با آرگومان خط فرمان --debug در Logwatch است.
- postfix_xxx
- برنامهٔ Logwatch تمامی تنظیمات postfix_xxx موجود در فایل پیکربندی ...conf/services/postfix.conf را از طریق متغیر محیطی به فیلتر postfix (که در واقع .../scripts/services/postfix نام دارد) ارسال میکند.
فایلها (FILES)
حالت مستقل (Standalone mode)
- /usr/local/bin/postfix-logwatch
- برنامهٔ postfix-logwatch
- /usr/local/etc/postfix-logwatch.conf
- فایل پیکربندی postfix-logwatch در حالت مستقل
حالت Logwatch (Logwatch mode)
- /etc/logwatch/scripts/services/postfix
- فیلتر postfix در Logwatch
- /etc/logwatch/conf/services/postfix.conf
- فایل
پیکربندی
فیلتر postfix در
Logwatch.SH "همچنین
ببینید (SEE ALSO)"
logwatch(8)، تحلیلگر و گزارشدهنده گزارشهای سیستمی
فایلهای راهنما (README FILES)
README، مروری کلی بر postfix-logwatch Changes، تاریخچه فهرست تغییرات نسخهها Bugs، فهرستی از باگهای کنونی یا سایر کاستیها Makefile، نصبکننده مقدماتی LICENSE، شرایط مجوز برای استفاده و بازتوزیع
مجوز (LICENSE)
تحت پوشش مجوز گنجاندهشده MIT/X-Consortium: http://www.opensource.org/licenses/mit-license.php
نویسندگان (AUTHORS)
Mike Cappella
فیلتر اولیه Logwatch برای postfix توسط Kenneth Porter نوشته شده بود و طی سالها مشارکتکنندگان زیادی داشته است. آنها مطلقاً هیچ مسئولیتی در قبال خطاها، مشکلات یا خرابیهای ایجادشده از زمانی که کد منبع توسط نویسنده فعلی دستکاری شده است، ندارند.