metalog.conf(5) Metalog configuration file metalog.conf(5)

metalog.conf - فایل پیکربندی دیمون لاگ‌های سیستم Metalog

[default values]
<section title :>
<section values>
<section 2 title :>
<section 2 values>
# Comments are introduced with "#", which is ONLY allowed at the beginning of a line.
<etc.>

اگر مقادیر را در یک بخش بازتعریف نکنید، بخش [default values] استفاده خواهد شد. می‌توانید <section title> را به دلخواه خود انتخاب کنید. این عنوان معنای خاصی ندارد و تنها به شما امکان می‌دهد یک فایل پیکربندی خوانا داشته باشید.

نام مقادیر می‌تواند یکی از موارد زیر باشد:

به محض اینکه اندازه یک فایل لاگ از مقدار تعیین‌شده (بر حسب بایت) فراتر رود، چرخش لاگ روی آن انجام می‌شود. اگر maxfile برابر با صفر باشد، چرخش لاگ غیرفعال می‌گردد. تعریف یک مقدار پیش‌فرض ایده مناسبی است.
به محض اینکه عمر یک فایل لاگ از مقدار تعیین‌شده (بر حسب ثانیه) بیشتر شود، چرخش لاگ روی آن انجام می‌شود. تعریف یک مقدار پیش‌فرض ایده مناسبی است.

نکته: هنگامی که یکی از محدودیت‌های maxsize یا maxtime فرا برسد، فایل لاگ چرخانده می‌شود. اگر هر یک از آن‌ها یا هر دو برابر با صفر باشند، چرخش لاگ غیرفعال می‌گردد.

این مقدار حداکثر تعداد فایل‌های چرخانده‌شده نگهداری‌شده را مشخص می‌کند. بنابراین شما x فایل لاگ چرخانده‌شده (از نوع نام‌گذاری log-date-string) به همراه فایلی با نام current خواهید داشت.
پیام را تنها در صورتی ثبت می‌کند که برنامه صادرکننده آن از تسهیلات سیستمی (syslog facility) <facility> استفاده کند. نام‌های تسهیلات عبارتند از: "auth"، "authpriv"، "cron"، "daemon"، "ftp"، "kern"، "lpr"، "mail"، "news"، "security"، "syslog"، "user"، "uucp"، "local0"، "local1" ... "local7". تمام پیام‌های هسته با تسهیلات "kern" ثبت می‌شوند. یک بخش می‌تواند شامل چندین خط "facility = ..." باشد تا با بیش از یک تسهیلات مطابقت یابد. اگر مقدار <facility> برابر با "*" باشد، با تمام تسهیلات مطابقت خواهد داشت.
ورودی‌های لاگ به سرور راه دور لاگ که با این نشانی IP یا نام دامنه مشخص شده است ارسال می‌شوند. این گزینه را تنها می‌توان در بخش مقادیر پیش‌فرض (default values) تعریف کرد. پیش از پیکربندی سایر گزینه‌های میزبان راه دور (درگاه، قالب و...)، باید remote_host تنظیم شده باشد. تمام پیام‌های لاگ به آنجا ارسال می‌شوند و محدودیت‌های اعمال‌شده از طریق "ratelimit"، "ratelimit_burst" یا "showrepeats" برای پیام‌های ارسالی به سرور راه دور لاگ نادیده گرفته می‌شوند. در صورتی که یک نام دامنه یا نام میزبان پیکربندی شده باشد، درخواست DNS مورد نیاز پس از هر تلاش ناموفق، یا پس از ۱۲۰ ثانیه در صورت تفکیک موفق نام، تکرار خواهد شد.
مشابه با remote_host، اما می‌تواند چندین بار برای افزودن سرورهای لاگ راه دور بیشتر استفاده شود. بخش name می‌تواند هر رشته‌ای باشد، اما برای گزینه‌های دیگر مانند remote_port[<name>] و غیره باید یکسان باشد.
درگاه UDP سرور راه دور لاگ. مقدار پیش‌فرض "514" است. این گزینه فقط در بخش مقادیر پیش‌فرض قابل تعریف است.
مشابه با remote_port، اما می‌تواند چندین بار برای افزودن سرورهای لاگ راه دور بیشتر استفاده شود. بخش name می‌تواند هر رشته‌ای باشد، اما برای remote_host[<name>] و غیره باید یکسان باشد.
پیش‌فرض 0 است. اگر بر روی 1 تنظیم شود، پیام‌های لاگ به سرور راه دور ارسال می‌شوند. این گزینه می‌تواند برای مقادیر پیش‌فرض یا در بخش‌ها تعریف شود.
مشابه با remote_log، اما می‌تواند چندین بار برای افزودن سرورهای لاگ راه دور بیشتر استفاده شود. بخش name می‌تواند هر رشته‌ای باشد، اما برای remote_host[<name>] و غیره باید یکسان باشد.
پیش‌فرض legacy_timestamp است. پیام‌های لاگ با قالب تعریف‌شده به سرور راه دور ارسال می‌شوند. گزینه‌های قالب عبارتند از: "legacy"، "legacy_timestamp"، "rfc3164" و "rfc5424".
مشابه با remote_format، اما می‌تواند چندین بار برای افزودن سرورهای لاگ راه دور بیشتر استفاده شود. بخش name می‌تواند هر رشته‌ای باشد، اما برای remote_host[<name>] و غیره باید یکسان باشد.
پیش‌فرض 7 است. پیام‌های لاگ تنها زمانی به سرور راه دور ارسال می‌شوند که فوریت آن‌ها کمتر یا مساوی با <severity level> باشد. سطح '0' بحرانی‌ترین سطح است، در حالی که سطح '7' برای پیام‌های اشکال‌زدایی (دیباگ) می‌باشد.
مشابه با remote_severity_level، اما می‌تواند چندین بار برای افزودن سرورهای لاگ راه دور بیشتر استفاده شود. بخش name می‌تواند هر رشته‌ای باشد، اما برای remote_host[<name>] و غیره باید یکسان باشد.
پیش‌فرض legacy_timestamp است. پیام‌های لاگ با قالب تعریف‌شده روی سیستم فایل یا خروجی استاندارد (stdout) نوشته می‌شوند. گزینه‌های قالب عبارتند از: "legacy"، "legacy_timestamp"، "rfc3164" و "rfc5424".
پیش‌فرض 0 است. سطح اهمیت (severity level) را هنگام ثبت لاگ در قالب‌های "legacy" و "legacy_timestamp" ثبت می‌کند. این سطح اهمیت هنگام استفاده از "rfc3164" یا "rfc5424" همواره بخشی از ورودی‌های لاگ خواهد بود.
پیش‌فرض 0 است. اگر بر روی 1 تنظیم شود و یک بخش مطابقت یابد، عملیات را انجام می‌دهد اما بخش‌های احتمالی بعدی در ادامه فایل پیکربندی را بررسی نخواهد کرد. این گزینه برای پیکربندی‌هایی مفید است که در آن انواع خاصی از پیام‌های لاگ تطبیق داده شده و ارسال می‌شوند، در حالی که یک بخش «فراگیر» (catch-all) در انتهای فایل پیکربندی حالت‌های پیش‌فرض را مدیریت می‌کند.

استفاده از 0 ممکن است باعث شود پیام‌ها توسط چندین بخش پردازش شوند که منجر به تکرار پیام می‌گردد؛ در حالی که استفاده از 1 در بخش‌های بالایی یک بخش فراگیر نهایی از تکرار پیام‌ها جلوگیری می‌کند.

پیام را تنها در صورتی ثبت می‌کند که فوریت آن کمتر یا مساوی با <level> باشد. سطح '0' بحرانی‌ترین و سطح '7' برای پیام‌های اشکال‌زدایی است. مقدار 5 تمام پیام‌های غیرمهم را حذف می‌کند. سطح حداقل پیش‌فرض 7 است (یعنی تمام پیام‌ها نگهداری می‌شوند).
اگر سطح پیام از این مقدار فراتر رود، آن را ثبت نمی‌کند. به طور پیش‌فرض، maximum بزرگ‌ترین سطح ممکن است.
فایل‌ها در دایرکتوری مشخص‌شده نوشته خواهند شد. مقدار ویژه "NONE" از ثبت پیام لاگ صرف‌نظر می‌کند.
مجوزهای دسترسی برای دایرکتوری لاگ. پیش‌فرض 0700 است.
می‌تواند برای فیلتر کردن به جای facility استفاده شود. به یاد داشته باشید که از نام فایل اجرایی استفاده کنید.
زمانی استفاده می‌شود که تنها می‌خواهید پیام‌های منطبق بر pattern (مانند "invalid"، "fail" و غیره) را لاگ کرده و آن‌ها را به یک دایرکتوری واحد ارسال کنید.

می‌توان چندین regex را در یک بخش تعریف کرد که در این صورت انطباق تنها یکی از آن‌ها کافی است.

زمانی استفاده می‌شود که تنها می‌خواهید پیام‌هایی را ثبت کنید که با pattern مطابقت ندارند.

انطباق با neg_regex بر هرگونه انطباق regex اولویت داشته و مانع از ثبت پیام می‌شود.

هنگامی که یک یا چند regex تعیین شده باشد، حداقل یکی از آن‌ها باید مطابقت داشته باشد تا پیام ثبت شود. نبود هرگونه regex باعث می‌شود در صورت عدم انطباق با neg_regex، پیام ثبت گردد.

می‌توان چندین neg_regex در یک بخش تعریف کرد که تنها انطباق یکی از آن‌ها کافی خواهد بود.

برنامه مشخص‌شده را پس از چرخش فایل لاگ اجرا می‌کند.

تاریخ، نام برنامه ("metalog") و نام فایل لاگ جدید به عنوان ورودی به این برنامه فرستاده می‌شوند.

مشابه با program، یک عبارت باقاعده است که با نام برنامه مطابقت می‌یابد تا تمام پیام‌های برنامه‌های مرتبط را به یک فایل لاگ یکسان بفرستد.

می‌توان چندین program_regex در یک بخش تعریف کرد که در این صورت انطباق تنها یکی از آن‌ها کافی است.

معکوس program_regex است و برای فیلتر کردن و حذف لاگ‌های برنامه‌های منطبق استفاده می‌شود.

انطباق با program_neg_regex بر هرگونه انطباق با program_regex اولویت داشته و مانع از ثبت پیام می‌شود.

هنگامی که یک یا چند program_regex تعیین شده باشد، حداقل یکی از آن‌ها باید مطابقت داشته باشد تا پیام ثبت شود. نبود هرگونه program_regex باعث می‌شود در صورت عدم انطباق با program_neg_regex، پیام ثبت گردد.

می‌توان چندین program_neg_regex در یک بخش تعریف کرد که انطباق تنها یکی از آن‌ها کافی خواهد بود.

برای فیلتر کردن و حذف پیام‌های تکراری لاگ، این مقدار را بر روی 0 تنظیم کنید.
به محض اینکه پیامی در بخش مربوطه لاگ شود، برنامه مشخص‌شده را اجرا می‌کند.

تاریخ، نام برنامه منطبق‌شده و پیام لاگ به این برنامه پاس داده می‌شوند.

در صورتی که برنامه هنگام راه‌اندازی metalog وجود نداشته باشد، metalog متوقف نخواهد شد و فقط آن خط از پیکربندی را نادیده می‌گیرد.

قالب برچسب زمانی خوانا برای انسان که به ابتدای تمام پیام‌های لاگ افزوده می‌شود. رشته قالب از تمام مشخصه‌های تبدیل تابع strftime به علاوه %[nnn]N برای نانوثانیه پشتیبانی می‌کند (پیش‌فرض: به طول ۹ رقم، که با nnn < 9 می‌تواند کوتاه‌تر شود). سپس رشته قالب پس از جایگزینی %[nnn]N به تابع strftime(3) ارسال می‌شود. یک رشته خالی برای غیرفعال کردن برچسب‌های زمانی استفاده می‌شود (برای مواردی که پیام‌های لاگ از قبل برچسب زمانی خود را دارند). اگر log_format برای لاگ‌گیری محلی و remote_format برای لاگ‌گیری راه دور بر روی rfc3164 یا rfc5424 تنظیم شده باشد، این گزینه نادیده گرفته خواهد شد.
اگر بر روی 0 تنظیم شود، پیام‌های لاگ منطبق همیشه بافر خواهند شد. اگر بر روی 1 تنظیم شود، آن‌ها همیشه فوراً روی سیستم فایل نوشته می‌شوند.

هر دو تنظیم بر پیش‌فرض عمومی تعیین‌شده از طریق پارامترهای خط فرمان (-a/-s) یا سیگنال‌ها اولویت دارند.

نرخ پیام‌های لاگ‌شده را به تعداد مشخصی پیام در واحد زمان محدود می‌کند. واحدهای معتبر زمانی عبارتند از second (ثانیه)، minute (دقیقه)، hour (ساعت) و day (روز) که هرکدام با حرف اول خود مشخص می‌شوند. مقادیر کسری مانند "0.5/m" نیز برای تسهیل درک انسانی مجاز هستند.

محدودیت 0 (پیش‌فرض) می‌تواند برای غیرفعال کردن هرگونه محدودیت نرخ استفاده شود. در این حالت می‌توان واحد زمان را حذف کرد.

در صورتی که نرخ پیام‌ها پیش از این به مراتب کمتر از حد مجاز بوده باشد، در ابتدای یک هجوم ناگهانی پیام‌ها (burst) حداکثر تا این تعداد خط چاپ خواهد شد. نرخ پیام مشخص‌شده هرگز فراتر نخواهد رفت. مقدار پیش‌فرض 1 رفتار ویژه برای هجوم ناگهانی پیام‌ها را غیرفعال می‌کند. مقادیر کمتر از 1 نامعتبر بوده و رد خواهند شد.
این دایرکتوری اختیاری می‌تواند شامل فایل‌های پیکربندی بیشتری باشد که هنگام شروع به کار metalog تفسیر خواهند شد. تنها نام‌های فایلی که به ".conf" ختم می‌شوند تفسیر می‌گردند. این گزینه تنها یک بار مجاز است و تمام تکرارهای آن نادیده گرفته خواهند شد. محتوای فایل‌های پیکربندی اضافی بر اساس ترتیب الفبایی-عددی نام فایل‌ها به پیکربندی موجود اضافه می‌شود تا رفتاری قابل پیش‌بینی از metalog حاصل شود.
روی یک سوکت لاگ‌گیری اضافی گوش فرا داده و فیلتر می‌کند. اگر ساخت سوکت‌ها با شکست مواجه شود، metalog بدون آن منبع لاگ به کار خود ادامه خواهد داد.
پیش‌فرض 0 است. اگر بر روی 1 تنظیم شود، لاگ‌های چرخانده‌شده با فرمت gzip فشرده‌سازی می‌شوند. اگر metalog بدون پشتیبانی از فشرده‌سازی ساخته شده باشد، این گزینه نادیده گرفته خواهد شد.
پیش‌فرض 0 است. تعداد تازه‌ترین فایل‌های لاگ چرخانده‌شده که فشرده‌نشده باقی می‌مانند.

توجه داشته باشید که مسیرهای دقیق به تنظیمات ساخت (بیلد) بستگی دارند. این‌ها مسیرهای استاندارد هستند:

/etc/metalog.conf

Mike Frysinger <vapier@gentoo.org>
Laurent Wandrebeck (low) <wandre.l@free.fr>
Leo Lipelis <aeoo@gentoo.org>
Hendrik Visage <hvisage@users.sourceforge.net>
Frank DENIS (Jedi/Sector One) <j@pureftpd.org>

metalog(8)

4 Frank DENIS