Syslog - سیستم سیستم شبکه. فایل های لاگ لینوکس به ترتیب کدام شناسه syslog بالاترین اولویت را دارد

شیطان در یونیکسبا برنامه ای که کار می کند تماس بگیرید "روی زمینه" بدون نیاز به کنترل ترمینال، و به شما این توانایی را می دهد که کارهای دیگر خود را "در پیش زمینه" انجام دهید. دیمون می تواند توسط فرآیند دیگری راه اندازی شود، به عنوان مثال، توسط یکی از اسکریپت های راه اندازی سیستم بدون دسترسی به هیچ ترمینال کنترلی، یا توسط کاربر از یک ترمینال، اما در این مورد دیمون "غلبه نمی کند"ترمینال برای مدت زمان کار خود. طبیعتاً این سوال پیش می آید که کدام دیمون ها در سیستم شما مورد نیاز است و کدام یک را می توان غیرفعال کرد.

منشاء اصطلاح
در دنیای واقعی (یعنی غیر رایانه ای)، اصطلاح (یا کلمه) "دیو" به یک روح (اغلب - یک شیطان) یا یک "صدای درونی" دلالت می کند. شایان ذکر است که هر دوی این مقادیر برای برنامه‌های شبح یونیکس نیز اعمال می‌شوند. مانند شیاطین اساطیری، شیاطین یونیکس در پشت صحنه پنهان می شوند و سعی می کنند نامرئی باقی بمانند. و مانند ندای درون یا ناخودآگاه ما، آنها همیشه "هشدار" هستند، همیشه در دسترس هستند، همیشه می توانند "تجلی کنند". کلمه "دیو" خود نمایانگر یکی از آن کلمات اختصاری کامپیوتری است، که تعیین منشأ آن به همان اندازه دشوار است که تصمیم گیری در مورد وجود مرغ یا تخم مرغ در ابتدا وجود دارد. احتمالااین اصطلاح ("DAEMON") از کلمات می آید "دیسک و مانیتور اجرا"برنامه

پس از بررسی موضوع، به سراغ یک کشیش رفتم که از رایانه ای با سیستم عامل اوبونتو استفاده می کند. در هر صورت با ویندوز دیسک گرفتم. تو هیچوقت نمیدونی... من آدم رکی هستم، دور بوش کتک نزدم، بلافاصله همه اطلاعات رو دادم. برای مدت طولانی و مفصل توضیح داده شده است. در کمال خوشحالی من همه چیز را آرام گرفت، بعضی جاها وقتی صحبت می کردم حتی لبخند می زد مخصوصاً وقتی از دلایل امتناع شوهر خواهرم از اوبونتو می گفت. پدر، یک مرد معمولی، او در حال حاضر 50 سال دارد، ما کمی بیشتر صحبت کردیم، یا بهتر است بگویم من صحبت کردم، تا بفهمم او به درستی آنچه را که من گفتم، جذب کرده است. پس از آن او به من گفت، من به معنای واقعی کلمه به یاد ندارم، اما فکر نمی کردم آن را روی دیکتافون ضبط کنم، بنابراین آن را با کلمات خودم توصیف می کنم. در کل استفاده از این اصطلاح در لینوکس ایرادی ندارد، نکته اصلی ایمان به خداست.

معرفی خدمات

دیمون های ارجاع شده توسط /etc/init.d برای اجرا در لینوکس به عنوان یک سرویس یا سرویس طراحی شده اند. سرویس ها برنامه هایی هستند که از طریق اسکریپت های init واقع در پوشه /etc/init.d شروع و متوقف می شوند. بسیاری از این خدمات در مرحله بوت سیستم راه اندازی می شوند. ابزار / sbin / service یک رابط کاربری (تعامل) با اسکریپت های اولیه را فراهم می کند. و خود این اسکریپت ها یک رابط برای مدیریت خدمات ارائه می دهند و گزینه هایی را برای شروع، توقف، راه اندازی مجدد، پرس و جو از وضعیت سرویس و انجام سایر اقدامات روی سرویس در اختیار کاربر قرار می دهند. به عنوان مثال، اسکریپت init سرویس httpd دارای گزینه های زیر است:

/ sbin / سرویس httpd استفاده: httpd (شروع | توقف | راه اندازی مجدد | راه اندازی مجدد | بارگذاری مجدد | وضعیت | وضعیت کامل | برازنده | کمک | پیکربندی)

با استفاده از گزینه زیر از ابزار سرویس می توانید وضعیت فعلی تمام خدمات سیستم را مشاهده کنید:

/ sbin / سرویس --status-all acpid (pid 2481) در حال اجرا است ... anacron (pid 2647) در حال اجرا است ... atd (pid 2657) در حال اجرا است ... auditd (pid 2189) در حال اجرا است ...

با استفاده از ابزار chkconfig می‌توان اطلاعات مربوط به سطح اجرا این سرویس‌ها را تنظیم کرد، یعنی اینکه در کدام یک از سطوح اجرای سیستم، یک سرویس خاص در زمان راه‌اندازی راه‌اندازی شود. برای مثال، بیایید تنظیمات فعلی سرویس ثبت سیستم syslog را ببینیم:

/ sbin / chkconfig --list syslog syslog 0: خاموش 1: خاموش 2: در 3: در 4: در 5: در 6: خاموش

وقتی به سطوح 2، 3، 4 و 5 می رویم، می بینیم که سرویس syslog به طور خودکار شروع می شود. برای غیرفعال کردن شروع آن در سطوح 3 و 4 (به هر حال ایده خوبی نیست) می توانید از گزینه زیر استفاده کنید. دستور chkconfig:

/ sbin / chkconfig --levels 34 syslog خاموش است

ابزار / usr / bin / system-config-services یک رابط گرافیکی برای سرویس های سیستم فراهم می کند که به شما امکان می دهد وضعیت فعلی آنها را مشاهده و تغییر دهید و همچنین آنها را برای اجرا در سطوح مختلف تنظیم کنید.

بیایید ببینیم چگونه این سرویس ها و دیمون ها در خروجی فرمان ps ظاهر می شوند. در اینجا یک گزیده کوتاه آمده است:

UID PID PPID C STIME TTY TIME ریشه CMD 1 0 0 23:36؟ 00:00:00 init root 2161 1 0 23:37؟ 00:00:00 حسابرسی ریشه 2177 1 0 23:37؟ 00:00:00 syslogd -m 0 ریشه 2180 1 0 23:37؟ 00:00:00 klogd -x ریشه 2207 1 0 23:37؟ 00:00:00 mcstransd root 2254 1 0 23:37؟ 00:00:00 rpc.statd ریشه 2287 1 0 23:37؟ 00:00:00 rpc.idmapd root 2577 1 0 23:37؟ 00:00:00 crond root 2631 1 0 23:37؟ 00:00:00 / usr / sbin / atd root 2654 1 0 23:37؟ 00:00:00 rhnsd --فاصله 240

در اینجا چه چیزی جالب است (البته علاوه بر این که امروز خیلی دیر پشت کامپیوتر نشستم)؟ برای هر یک از دیمون ها، شناسه فرآیند والد (PPID) 1 است. این نشان می دهد که دیمون ها توسط init در زمان بوت شروع شده اند.

این نتیجه را می توان با وضوح بیشتری در خروجی دستور مفیدی مانند "pstree" مشاهده کرد که "درخت" فرآیندها را با علامت "والد" نمایش می دهد. در اینجا یک قطعه کوچک از خروجی pstree آمده است:

Init- + | -NetworkManager --- 2 * [(NetworkManager)] | -NetworkManagerD | -acpid | -atd | -auditd - + - python | `- (بازرسی) | -avahi-daemon --- avahi-daemon | -bonobo-activati‎ --- (bonobo-activati) | -crond | -cupsd --- cups-polld | -2 * | -dbus راه اندازی | -dhcdbd --- dhclient

اطلاعات بیشتر در مورد شیاطین در سیستم شما

کار ما با اطلاعات مقدماتی تمام شده است. حالا بیایید در مورد دیمون های سیستم به صورت جداگانه صحبت کنیم و ببینیم کدام یک را می توانید با خیال راحت آزمایش کنید. باز هم، این پست در مورد سیستمی است که Red Hat Enterprise Linux Beta 2 را در پیکربندی ایستگاه کاری اجرا می کند. بسته به ویژگی های سیستم خود، ممکن است کم و بیش دیمون ها را مشاهده کنید، از جمله برخی از آنها که در اینجا به آنها پرداخته نشده است.

توضیحات مربوط به هر شبح شامل پیوندهایی به سایت‌هایی است که می‌توانید اطلاعات بیشتری از آنجا به دست آورید، اما همچنان بهتر است با مشاهده صفحات مرد مربوطه شروع به یادگیری در مورد دیمون کنید. O "Reilly فهرست الفبای عالی دستورات لینوکس را دارد و wikipedia.org نیز بخش هایی در مورد اکثر این شیاطین دارد. فراموش نکنید که به فایل های README نگاه کنید.

این سرویس تنظیمات پیشرفته و رابط برق (ACPI) است. ACPI یک استاندارد صنعتی باز است که اقدامات مدیریت سیستم را تعریف می کند، در درجه اول تعریف دستگاه plug-and-play و مدیریت انرژی، از جمله اقدامات هنگام شروع، توقف، و زمانی که سیستم به حالت کم مصرف می رود.

احتمالاً نباید این سرویس را غیرفعال کنید مگر اینکه آن را برای اهداف اشکال زدایی یا حل مشکلات سخت افزاری انجام دهید.

اطلاعات بیشتر: http://www.acpi.info

اگر از لپ‌تاپ استفاده می‌کنید، همانطور که این روزها بسیاری از آنها استفاده می‌کنند، یکی از مشکلات این است که وقتی از cron daemon می‌خواهید کاری انجام دهد، همیشه مطمئن نیستید که کامپیوتر شما در زمانی که اجرا برنامه‌ریزی شده است روشن شود. وظایف Anacron (این نام از "anachronistic cron" گرفته شده است که به معنای چیزی شبیه "cron منسوخ" است) این مشکل را با بررسی اینکه آیا کارها در یک بازه زمانی مشخص اجرا شده اند حل می کند. به عنوان مثال، آناکرون اگر یک کار را برای چند روز مشخص شروع نکرده باشد، شروع می کند.

چه زمانی می توانید استفاده از آناکرون را متوقف کنید؟ اگر سیستم شما به طور مداوم در حال اجرا است.
اگر آناکرون در حال اجرا هستید، می توانید از اجرای کرون خودداری کنید؟ نه؛ برای anacron، مدت شروع مجدد کار را فقط می توان بر حسب روز تعیین کرد، نه دقیقه و ثانیه.

اطلاعات تکمیلی:

این سیستم مدیریت توان پیشرفته (APM) از طریق درایور در BIOS است. استاندارد APM و دیمون apmd اکنون توسط ACPI و acpid جایگزین شده اند. اگر سخت افزار شما از ACPI پشتیبانی می کند، نیازی به اجرای apmd ندارید.

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

این دیمون دیسک‌ها و سیستم‌های فایلی که در فایل پیکربندی تعریف شده‌اند را به‌طور خودکار مانت می‌کند. استفاده از این دیمون کار با دیسک های قابل جابجایی را آسان تر می کند.

اطلاعات بیشتر: http://freshmeat.net/projects/autofs

سیستم حسابرسی لینوکس شامل ثبت‌کننده‌های تماس سیستم در سطح هسته و ابزارهای جمع‌آوری و مشاهده گزارش فضای کاربر است. دیمون حسابرسی شده پیام های ثبت شده را روی دیسک می نویسد. Auditd قابل تنظیم است و به شما امکان می دهد اطلاعات ذخیره شده روی دیسک را کنترل و مدیریت کنید.

آیا ممیزی باید در حال اجرا نگه داشته شود؟ اطلاعات به دست آمده از گزارش ها می تواند در پیکربندی همه چیز مربوط به امنیت سیستم بسیار مفید باشد. به عنوان مثال، auditd در گزارش رویداد SELinux استفاده می شود. همچنین ابزارهایی مانند aureport وجود دارد که به شما امکان می دهد گزارش های حسابرسی را مشاهده کنید. در اینجا نمونه ای از گزارش تولید شده توسط ابزار aureport آورده شده است:

گزارش خلاصه
======================

محدوده زمانی در گزارش‌ها: 2006/11/28 06: 07: 04.800 - 02/06/2007 21: 10: 09.957 زمان انتخابی برای گزارش: 1969/12/31 19:00:00 - 02/06/02:00 10: 09.957 تعداد تغییرات در پیکربندی: 285 تعداد تغییرات در حساب ها، گروه ها یا نقش ها: 32 تعداد ورود: 145 تعداد ورود ناموفق: 11 تعداد کاربران: 2 تعداد پایانه ها: 22 تعداد نام میزبان: 11 تعداد تعداد فایل های اجرایی: 27 تعداد فایل: 91 تعداد انکار AVC: 688 تعداد رویدادهای MAC: 12 تعداد سیستم های ناموفق: 404 تعداد رویدادهای ناهنجاری: 0 تعداد پاسخ به رویدادهای ناهنجاری: 0 تعداد رویدادهای رمزنگاری: 0 تعداد فرآیند شناسه ها: 14022 تعداد رویدادها: 70694 Avahi-daemon و avahi-dnsconfd

وب سایت آواهی آن را اینگونه تعریف می کند: "Avahi سیستمی است که امکان کشف خدمات در یک شبکه محلی را فراهم می کند. به این معنی که وقتی رایانه شما به یک شبکه محلی متصل شد، می توانید فوراً چاپگرهای موجود را کشف کنید، ببینید چه اشتراک هایی در دسترس هستند. در شبکه، دریابید که با چه کسانی از سایر کاربران شبکه می توانید از طریق چت و غیره صحبت کنید." Avahi یک پیاده سازی از پروتکل Zeroconf است. و Zeroconf رویکردی است که به کاربران اجازه می‌دهد شبکه‌های IP را بدون سرویس‌های پیکربندی خاص مانند سرورهای DNS ایجاد کنند.
اغلب، avahi-daemon همراه با Rhythmbox استفاده می‌شود تا بتوانید فایل‌های موسیقی را که با دیگران به اشتراک گذاشته می‌شود، ببینید. اگر موسیقی یا فایل‌هایی را از رایانه خود به اشتراک نمی‌گذارید، می‌توانید این دیمون را غیرفعال کنید.

اطلاعات بیشتر: http://avahi.org، http://zeroconf.org

بلوتوث و شیاطین مخفی و پاند

خود نام ها همه چیز را توضیح می دهند. اگر می خواهید از دستگاه های بلوتوث استفاده کنید، این خدمات را راه اندازی کنید. نام دیمون واقعاً در حال اجرا hcid (شیب رابط کنترل کننده میزبان) است.

نام دیمون مخفی از «دفتر دستگاه رابط انسانی بلوتوث» گرفته شده است. این صفحه کلید بلوتوث، ماوس و توپ را پشتیبانی می کند. و پاند دیمون کامپیوتر شما را با استفاده از بلوتوث به شبکه اترنت متصل نگه می دارد.

اطلاعات بیشتر: http://www.bluetooth.com،

این دیمون از رابط برنامه نویسی برنامه مشترک ISDN پشتیبانی می کند. اگر به قطعات سخت افزاری ISDN متصل می شوید باید اجرا شود. این سرویس به صورت capiinit شروع می شود.

اطلاعات بیشتر: http://www.capi.org/pages

نه، ربطی به پخش یک شبه سرمایه گذاری املاک و مستغلات ندارد. سرویس conman (و conmand deemon) از مدیریت کنسول پشتیبانی می کند. پشتیبانی از چندین دستگاه کنسول و کار همزمان کاربر، پشتیبانی از دستگاه های سریال محلی و سرورهای ترمینال راه دور (از طریق پروتکل telnet) را ارائه می دهد. اگر چندین سرور را مدیریت می کنید، ممکن است به conman نیاز داشته باشید.

اطلاعات بیشتر: http://home.gna.org/conman/
cpuspeed

این دیو سرعت کار را تغییر می دهد واحد پردازش مرکزیبه منظور کاهش مصرف انرژی اگر CPU بیکار است، می توانید سرعت را کاهش دهید و در نتیجه مصرف برق را کاهش دهید و برای افزایش کارایی باید مصرف برق را افزایش دهید. اگر برای لپ تاپ، اجرای cpuspeed منطقی است.

اطلاعات بیشتر: http://carlthompson.net/Software/CPUSpeed
crond

این دیمون برای شروع خودکار وظایف استفاده می شود. این در تمام سیستم های لینوکس و یونیکس مورد نیاز است. این سرویس را متوقف یا غیرفعال نکنید.

اطلاعات بیشتر: http://www.unixgeeks.org/security/newbie/unix/cron-1.html، http://www.linuxhelp.net/guides/cron/

CUPS و cups-config-daemon

این دیمون "راه حل رایج چاپ یونیکس" است. همانطور که از نام آن پیداست، این یک سیستم چاپ است که انواع فرمت های فایل و انواع مختلفچاپگرها اگر می خواهید پرینت بگیرید، این دیمون را روی سیستم خود اجرا کنید.

اطلاعات بیشتر: http://www.cups.org، http://www.easysw.com/cups/index.php

نام این دیمون مخفف عبارت DHcp Client D-Bus Daemon است. ویکی Free DeskTop آن را به صورت زیر تعریف می کند:

D-Bus یک سیستم گذرگاه پیام است، روشی ساده برای برقراری ارتباط (یا تعامل) برنامه‌ها با یکدیگر. علاوه بر ارتباطات بین فرآیندی، D-Bus به هماهنگ کردن چرخه حیات فرآیند کمک می کند. این یک پیاده سازی ساده و قابل اعتماد در کد توانایی اجرای "نمونه جداگانه" یک برنامه یا دیمون را ارائه می دهد که به شما امکان می دهد برنامه ها و دیمون ها را در صورت نیاز اجرا کنید، در صورت نیاز به خدمات مناسب.

آیا شما نیاز به اجرای این دیمون دارید؟ اگر سیستم شما روی یک شبکه کار می کند (چگونه می تواند در غیر این صورت باشد؟)، به خصوص اگر بین شبکه ها حرکت می کنید (به عنوان مثال، از یک شبکه سیمی به یک شبکه بی سیم سوئیچ می کنید)، پس باید NetworkManager را راه اندازی کنید (ما در زیر به NetworkManager نگاه خواهیم کرد. ).

شبح dhcdbd یک رابط D-Bus برای dhclient، یک سرویس گیرنده DHCP از ISC، فراهم می کند. این به NetworkManager اجازه دسترسی و کنترل dhclient را می دهد.

اطلاعات بیشتر: http://www.freedesktop.org/wiki/Software/dbus

این دیمون به شما این امکان را می دهد که از ماوس در برنامه های مبتنی بر متن مانند مدیر فایلفرمانده نیمه شب. اگر مرتب از کنسول استفاده می کنید، این می تواند مفید باشد. در غیر این صورت، یعنی اگر همیشه از سیستم پنجره X استفاده می کنید، ممکن است هرگز به gpmd نیاز نداشته باشید.

نه، این کامپیوتر شیطانی از فیلم ادیسه فضایی 2001 نیست. در این زمینه، HAL مخفف Hardware Abstraction Layer است. دیمون HAL اطلاعات مربوط به دستگاه‌های سخت‌افزاری را (با استفاده از هسته و خود دستگاه‌ها) جمع‌آوری می‌کند و به روشی ثابت به برنامه‌ها ارائه می‌کند.

این سرویس را غیرفعال نکنید. بسیاری از برنامه ها از آن استفاده می کنند.

اطلاعات بیشتر: "پیکربندی دسکتاپ و سخت افزار" توسط David Zeuthen

این دیمون از سیستم تصویربرداری و چاپ لینوکس HP (HPLIP) پشتیبانی می کند که برای چاپ، اسکن و فکس بر روی جوهر افشان و فکس استفاده می شود. دستگاه های لیزریاز HP HPLIP با CUPS تعامل دارد و به دستگاه های HP دسترسی دارد.

اطلاعات تکمیلی:

این یک شبح برای پایگاه داده های رابطه ای در جاوا است. نام خود را از پروژه Hypersonic SQL به ارث برده است که دیگر پشتیبانی نمی شود. hsqldb به طور گسترده در پروژه های منبع باز مانند OpenOffice.org و همچنین در دموها استفاده می شود، زیرا می تواند به طور کامل در RAM اجرا شود. با توجه به چیزی که به سرعت کار می کند. آیا نیاز به اجرای این سرویس دارید؟ فقط در صورتی که برنامه هایی را اجرا کنید که از آن استفاده می کنند. اما در واقع بسیار است ابزار مفیدو اگر با آن آشنایی ندارید، ارزش دیدن آن را دارد.

اطلاعات بیشتر: http://hsqldb.org، http://dba.openoffice.org

وب سرور آپاچی تقریباً 60٪ از تمام وب سایت ها استفاده می کنند. اگر می خواهید یک وب سایت را حفظ کنید، Apache را اجرا می کنید. آیا لازم است چیز دیگری بگویم؟

اطلاعات بیشتر: http://httpd.apache.org

ip6tables و iptables

این فایروال ها یا فایروال ها هستند. بر اساس ویکی پدیا، "فایروال یا فایروال (فایروال. فایروال یا فایروال از انگلیسی. فایروال) مجموعه ای از ابزارهای سخت افزاری و/یا نرم افزاری است که بسته های شبکه ای را که از آن در سطوح مختلف مدل OSI عبور می کنند کنترل و فیلتر می کنند. قوانین مشخص شده فایروال حفاظت است شبکه های کامپیوتریا گره های فردی از دسترسی غیرمجاز.

Iptables با تنظیم قوانین فیلتر کردن بسته IPv4 در قالب یک جدول هسته کار می کند. بسته های ورودی و خروجی بر اساس این قوانین بررسی می شوند و آنهایی که با قوانین مطابقت ندارند مسدود می شوند. Ip6tables همین کار را برای بسته های IPv6 انجام می دهد.

کدام یک از این دو سرویس را می خواهید اجرا کنید؟ هر دو. همیشه ... هست. شبکه خطرناک است!

اطلاعات بیشتر: http://www.netfilter.org، http://www.ipv6.org

IrDA (انجمن داده های مادون قرمز) یک استاندارد صنعتی برای ارتباطات بی سیم مادون قرمز بین دستگاه ها است. اکثر لپ تاپ ها مجهز به فرستنده مادون قرمز سازگار با IrDA هستند. فقط در صورتی باید این سرویس را راه اندازی کنید که می خواهید ارتباط با دستگاه های دیگر را از طریق مادون قرمز سازماندهی کنید.

اطلاعات تکمیلی:

irqbalance

این دیمون مسئول توزیع وقفه های سخت افزاری بین CPU ها در معماری های چند پردازنده متقارن پردازنده (SMP) برای بهبود عملکرد است.

نیازی به اجرای این دیمون بر روی سیستم های تک پردازنده نیست، فقط روی سیستم های چند پردازنده ای تاثیر می گذارد.

اطلاعات بیشتر: http://www.irqbalance.org

این یک شیطان بسیار مفید است. در زمان بوت اجرا می شود و بررسی می کند که کدام دستگاه های سخت افزاری به سیستم اضافه یا از آن حذف شده اند. اجرای kudzu در زمان بوت منطقی است، حتی اگر قصد ندارید مرتباً دستگاه‌ها را اضافه یا حذف کنید. زیرا دیر یا زود، به همان اندازه در موقعیتی قرار می گیرید که دستگاهی را اضافه می کنید و انتظار دارید سیستم آن را شناسایی کند. علاوه بر این، از آنجایی که kudzu در زمان بوت اجرا می شود، تأثیر منفی بر عملکرد سیستم ندارد.

اطلاعات بیشتر: http://fedora.redhat.com/projects/additional-projects/kudzu

این دیمون نام خود را از Lan Information Server گرفته است. لیزا عملکردی مشابه آنچه که توسط سرویس همسایگی شبکه در MS-Windows ارائه می‌شود، ارائه می‌کند، یعنی دسترسی به سرورهای شبکه محلی شما، از جمله سرورهای CIFS (سیستم‌های فایل اینترنتی مشترک) را فراهم می‌کند. lisa از طریق TCP/IP اجرا می‌شود، درخواست‌های ICMP را به آدرس‌های IP در محدوده‌ای که در فایل پیکربندی مشخص کرده‌اید ارسال می‌کند و منتظر می‌ماند تا رایانه‌ها پاسخ دهند.

اطلاعات بیشتر: http://docs.kde.org/stable/en/kdenetwork/lisa، http://docs.kde.org/userguide/networking-with-windows.html،

lm_sensors

این دیمون دما و ولتاژ روی مادربرد را کنترل می کند. برای کارکرد سیستم مانیتورینگ، وجود سنسورهای مناسب در تجهیزات ضروری است. راه اندازی این دیمون تنها در صورتی منطقی است که پشتیبانی سخت افزاری ارائه شود. احتمالاً نباید آن را روی ایستگاه های کاری معمولی اجرا کنید. بلکه در سرورهای پیشرفته که عملکردهای حیاتی را انجام می دهند مورد نیاز است.

اطلاعات بیشتر: http://www.lm-sensors.org، http://freshmeat.net/projects/lm_sensors

mcstrans

سیستم ترجمه متنی SELinux Daemon. این دیمون اطلاعات زمینه امنیتی را به شکل قابل خواندن توسط انسان تبدیل می کند. شما می توانید این دیمون را متوقف کنید، اما در این صورت، اطلاعات SELinux را خواهید دید که با دستور ls -Z تغییر می کند. به عنوان مثال، با اجرای دیمون، خواهید دید:

Ls -Z -rw-r - r-- jsmith jsmith user_u: object_r: user_home_t bookmarks.html drwxr-xr-x jsmith jsmith user_u: object_r: user_home_t دسکتاپ -r-xr-xr-x jsmith user_hollome -bject: - r - r-- jsmith jsmith user_u: object_r: user_home_t hello.c

و اگر دیمون متوقف شود، موارد زیر را مشاهده خواهید کرد:

Ls -Z -rw-r - r-- jsmith jsmith user_u: object_r: user_home_t: s0 bookmarks.html drwxr-xr-x jsmith jsmith user_u: object_r: user_home_t: s0 دسکتاپ -r-xr-xr-xr-xs object_r: user_home_t: s0 hello -r - r - r-- jsmith jsmith user_u: object_r: user_home_t: s0 hello.c

توجه داشته باشید که اگر دیمون متوقف شود، مقدار زمینه امنیتی "s0" نمایش داده می شود. مک ترانس در این مورد زمینه را به صفر رسانده است. سایر مقادیر زمینه امنیتی از مقادیر الفبایی به نام آنها تبدیل می شوند.

اطلاعات بیشتر: http://fedoraproject.org/wiki/SELinux/Understanding، http://danwalsh.livejournal.com

mdmonitor و mdmpd

این دو دیمون در آرایه اضافی از سیستم های ذخیره سازی دیسک های ارزان / مستقل (RAID) استفاده می شوند. Mdmonitor راه اندازی، توقف و راه اندازی مجدد mdadm (نظارت و مدیریت دستگاه چند مسیره)، یک سرویس نظارت و مدیریت نرم افزار RAID است. فقط در صورتی باید این سرویس را راه اندازی کنید که سیستم شما دارای دستگاه های RAID باشد.

اطلاعات بیشتر: http://www.linuxdevcenter.com/pub/a/linux/...12/05/RAID.html

باس پیام

این دیمون گذرگاه پیام سیستم D-BUS است. رویدادها و رویدادهای سیستم مانند تغییرات در صف چاپ، یا افزودن یا حذف دستگاه‌ها را پخش می‌کند (توجه داشته باشید که این مانند kudzu نیست، زیرا چنین رویدادهایی می‌توانند در هر زمانی در طول عملیات سیستم اتفاق بیفتند، نه تنها در مرحله بوت ).

اطلاعات بیشتر: http://www.freedesktop.org/software/dbus

netplugd و ifplugd

این دیمون ها هنگام اتصال کابل شبکه، دستگاه های اترنت را پیکربندی می کنند و در صورت قطع کابل آن دستگاه ها را غیرفعال می کنند. کی لازماش داری؟ به عنوان مثال، در لپ تاپ، به طوری که شما اتصالات شبکهفقط زمانی که کابل شبکه وصل است بازیابی می شود.

توجه داشته باشید که پشتیبانی از netplugd متوقف شده است و اکنون با ifplugd جایگزین شده است.

اطلاعات بیشتر: http://0pointer.de/lennart/projects/ifplugd

NetworkManager و NetworkManagerDispatcher

شبح NetworkManager سوئیچینگ بین اتصالات شبکه را خودکار می کند. این دیمون برای کاربران لپ تاپ که بین اتصالات بی سیم WiFi و اتصالات اترنت سوئیچ می کنند مفید است. شبح NetworkManagerDispatcher به طور خودکار اسکریپت ها را برای انجام عملیات لازم (مثلاً اسکریپت هایی برای تنظیم جهت های مسیریابی خاص برای بسته ها) هنگامی که NetworkManager وضعیت شبکه را تغییر می دهد، راه اندازی می کند.

اطلاعات بیشتر: http://www.gnome.org/projects/NetworkManager

این یک دیمون است که به عنوان یک سرور نام دامنه عمل می کند. فقط در صورتی باید آن را اجرا کنید که رایانه شما سرور DNS شبکه شما باشد.

اطلاعات بیشتر: http://www.dns.net/dnsrd

دیمون nfsd از پروتکل ارتباطی شبکه nfs پشتیبانی می کند که برای دسترسی به منابع شبکهدر شبکه های TCP / IP اگر با استفاده از پروتکل nfs به سایر کاربران اجازه دسترسی به سیستم فایل خود را بدهید، باید آن را اجرا کنید.

اطلاعات تکمیلی:

این شبح کش برای سرویس نام است. جدولی از گروه ها و گذرواژه ها را برای برنامه های در حال اجرا نگه می دارد و سپس در درخواست بعدی برای سرویس هایی که در غیر این صورت بسیار کند هستند، مانند NIS یا LDAP، یک نتیجه به خاطر سپرده تولید می کند. اگر این سرویس ها را در حال اجرا دارید، باید nscd را نیز راه اندازی کنید.

این یک دیمون است که از پروتکل زمان شبکه پشتیبانی می کند. زمان سیستم را تنظیم می کند و آن را با زمان تعیین شده توسط سرورهای اینترنتی که زمان مرجع را حفظ می کنند، همگام می کند. اگر سیستم شما به اینترنت متصل است (اینطور نیست؟)، سپس این دیمون تنظیمات صحیح زمان سیستم را روی رایانه شما نظارت خواهد کرد.

اطلاعات بیشتر: http://www.ntp.org

دیمون oddjobd سرویس com.redhat.oddjob را در گذرگاه سیستم اجرا می کند. هر فرصت ارائه شده توسط oddjobd به عنوان ارائه می شود روش جداگانه D-Bus. Oddjobd برای انجام عملیات های ممتاز برای برنامه های غیرمجاز پشتیبانی می کند.

فقط در صورتی باید این دیمون را راه اندازی کنید که از برنامه هایی استفاده می کنید که به آن نیاز دارند، مانند Conga.

اطلاعات بیشتر: http://people.redhat.com/nalin/oddjob/oddjob.html،

این دیمون از شبکه های خصوصی مجازی (VPN) پشتیبانی می کند. اسکریپت راه اندازی این دیمون موارد زیر را می گوید:

OpenVPN یک برنامه تونل زنی قوی و بسیار انعطاف پذیر است که از قابلیت های رمزگذاری، احراز هویت و صدور گواهینامه کتابخانه OpenSSL برای تونل ایمن شبکه IP روی یک پورت UDP استفاده می کند.

اگر سیستم شما یک میزبان VPN است، احتمالاً باید OpenVPN را اجرا کنید.

اطلاعات بیشتر: http://openvpn.net

pcscd (PC / SC Smart Card Daemon) دیمونی برای pcsc-lite (نرم افزار دسترسی به کارت هوشمند) و محیط توسعه MuscleCard (مبتنی بر جاوا) است. ارتباط با کارت خوان های هوشمند و خود کارت های هوشمند را فراهم می کند.

(کارت هوشمند یک برد مدار کوچک است که شامل یک ماژول حافظه یا یک ریزپردازنده با یک ماژول حافظه است. Muscle مخفف Movement برای استفاده از کارت های هوشمند در محیط لینوکس است.

اطلاعات بیشتر: http://www.smartcardalliance.org، http://pcsclite.alioth.debian.org، http://www.linuxnet.com/musclecard/index.html

شبح portmapper اتصالات RPC (تماس از راه دور) را مدیریت می کند. این شماره برنامه RPC را به شماره پورت TCP / IP (یا UDP / IP) تبدیل می کند. پورت‌مپر بیشتر توسط NFS و NIS استفاده می‌شود.

بنابراین اگر سیستم شما به NIS یا NFS وابسته است، شبح portmap را غیرفعال نکنید.

اطلاعات بیشتر: http://www.linux-nis.org/nis-howto/HOWTO/portmapper.html

این یک عامل انتقال پست (حمل و نقل) است. اگر سیستم شما یک رله به سیستم ایمیل نیست، نیازی به راه اندازی این سرویس ندارید.

اطلاعات بیشتر: http://www.postfix.org

این شبح (شیب کشف روتر) مسیرها را در زیر شبکه محلی پیدا می کند. برای افزودن مسیرهای پیش فرض به جداول مسیریابی در زمان بوت اجرا می شود.

اطلاعات بیشتر: http://www.informit.com/articles/article.asp?p=23951&rl=1

restorecond

این یک دیمون از SELinux است. Restorecond بر ایجاد فایل (برای فایل‌های فهرست شده در /etc/selinux/restorecond.conf) نظارت می‌کند و اطمینان می‌دهد که فایل‌ها دارای زمینه فایل صحیح برای خط‌مشی مشخص‌شده هستند، و همچنین زمینه پیش‌فرض فایل SELinux را تعریف می‌کند.

این سرویس را غیرفعال نکنید. برای SELinux مورد نیاز است.

اطلاعات بیشتر: http://fedoraproject.org/wiki/SELinux/Understanding، http://danwalsh.livejournal.com/

این دیمون به صورت دوره ای بررسی می کند که از چه طریقی باید انجام شود رابط شبکه Red Hat (رابط وب شبکه Red Hat)، و آنها را اجرا می کند. این عملیات شامل نصب، حذف یا به روز رسانی نرم افزار، راه اندازی مجدد سیستم، نصب فایل های پیکربندی و غیره می باشد.

اطلاعات بیشتر: https://www.redhat.com/rhn/

rpcgssd، rpcidmapd و rpcsvcgssd

دیمون های rpcgssd و rpcsvcgssd برای امنیت بیش از RPC هستند. Rpcidmapd نام های کاربری را به شماره های UID و GID تبدیل می کند.

اگر از NFS یا NIS استفاده می کنید، باید این دیمون ها را در حال اجرا داشته باشید.

اطلاعات تکمیلی:

readahead_early و readahead_later

دیمون readahead تضمین می‌کند که برنامه‌های راه‌اندازی قبل از استفاده در حافظه بارگذاری می‌شوند، که زمان بوت شدن را کاهش می‌دهد.

ساسلاتد

این دیمون سرور احراز هویت SASL است. SASL (Simple Authentication and Security Layer) قابلیت های احراز هویت را به پروتکل های مبتنی بر اتصالات راه دور اضافه می کند.

اطلاعات بیشتر: http://asg.web.cmu.edu/sasl

ارسال ایمیل

این یک سرور SMTP (پروتکل انتقال نامه ساده) است. Sendmail نامه ها را از یک سیستم به سیستم دیگر فوروارد می کند، یعنی یک Mail Transport Agent است. اگر از ایمیل‌هایی مانند Thunderbird یا Evolution استفاده می‌کنید، نیازی به اجرای sendmail ندارید.

اطلاعات بیشتر: http://www.sendmail.org

رفع مشکل

این شبح حل کننده مشکل SELinux است. Setroubleshooter یکی از ابداعات بزرگ اخیر در SELinux است. Setroubleshooter در مورد خرابی های SELInux AVC (Access Vector Cache) بازخورد بلادرنگ را به کاربران ارائه می دهد. علاوه بر این، این بازخورد در یک قالب مناسب ارائه شده است.

اطلاعات بیشتر: https://hosted.fedoraproject.org/projects/setroubleshoot

این دیمون خوانش حسگرهای SMART (فناوری خود نظارت، تحلیل و گزارش) نصب شده در بسیاری از انواع درایوها، به عنوان مثال، در هارد دیسک های SCSI-3 را نظارت می کند. دیمون بر عملکرد عادی چنین دستگاه هایی نظارت می کند و آزمایش خود را انجام می دهد. اگر سخت افزار شما از فناوری SMART پشتیبانی می کند، باید این سرویس را راه اندازی کنید.

اطلاعات تکمیلی:

spamassassin

این دیمون از برنامه Apache SpamAssassin برای بررسی ایمیل برای هرزنامه استفاده می کند. معمولاً همراه با یک سرور ارسال نامه (MDA) اجرا می شود. اگر از برنامه های کلاینت مانند Thunderbird یا Evolution برای دسترسی به ایمیل خود استفاده می کنید، نیازی به اجرای spamassassin ندارید.

اطلاعات بیشتر: http://spamassassin.apache.org

این یک شبح برای پروتکل باز ssh است. Ssh جایگزین برنامه های ناامن rsh و rlogin می شود و اتصالات رمزگذاری شده را بین میزبان ها در شبکه های ناامن فراهم می کند. اگر از اتصال به سیستم های دیگر از طریق اینترنت باز استفاده می کنید، باید از ssh استفاده کنید و این دیمون را اجرا کنید.

اطلاعات بیشتر: http://www.ssh.com، http://www.openssh.com

syslog سیستم استاندارد لاگ لینوکس است. آن را خاموش نکنید.

اطلاعات بیشتر: http://www.syslog.org

این دیمون بخشی از بسته سامبا است. کاربران دامنه ویندوز را قادر می سازد تا به عنوان کاربران یونیکس به سرورهای یونیکس متصل شوند. این دیمون باید زمانی شروع شود که با یک شبکه ترکیبی از رایانه های ویندوز و لینوکس / یونیکس سر و کار دارید.

اطلاعات بیشتر: http://www.samba.org/samba/docs/man/Samba-...on/winbind.html، http://www.samba.org

این یک سرور فونت است. این دیمون فونت‌ها را در حافظه بارگذاری می‌کند تا برنامه‌های گرافیکی سریع‌تر از زمانی که باید فونت‌ها را از هارد دیسک بارگذاری کنند، اجرا شوند. این سرویس باید برای بهبود عملکرد برنامه های کاربردی در سیستم شما راه اندازی شود.

اطلاعات بیشتر: http://linuxreviews.org/howtos/xfree/xfs

این سرویس مشتری NIS را به دامنه NIS متصل می کند. حروف "yp" در نام آن از "صفحات زرد" آمده است، زیرا فهرست راهنمای NIS مانند فهرست راهنمای تلفن صفحات زرد است. فقط در صورتی باید این سرویس را راه اندازی کنید که سیستم شما از NIS (سرویس اطلاعات شبکه) برای دسترسی به بودجه کاربر و نام سیستم استفاده کند.

اطلاعات بیشتر: http://www.linux-nis.org

yum-updates

yum-updatesd در دسترس بودن به‌روزرسانی‌های نرم‌افزار را نظارت می‌کند و اعلان‌های این به‌روزرسانی‌ها را از طریق ایمیل، d-bus یا پیام‌های سیستم ارسال می‌کند و همچنین می‌تواند تولید کند. به روز رسانی خودکاربر. پیام های D-bus توسط ابزار "puplet" (به روز رسانی بسته) دریافت می شود که به کاربر اطلاع می دهد که یک به روز رسانی در دسترس است و همچنین به کاربر اجازه می دهد تا به روز رسانی را نصب کند.

اطلاعات بیشتر: http://linux.duke.edu/projects/yum، http://www.redhat.com/magazine/024oct06/features/fc62

با تشکر از ZOOLبرای اطلاعات ارائه شده در وب سایت http://www.centrlan.ru/node/17929

منبع مشخص نشده است

هر یک از کاربران تازه کار لینوکس دیر یا زود در راه اندازی و سازماندهی عملکرد سیستم خود با مشکلاتی مواجه می شوند. و هر یک از تازه کارها تقریباً مطمئناً از کاربران با تجربه تر این توصیه را شنیده اند: "به سیاهههای مربوط نگاه کنید." این توصیه خوب است، اما یک مبتدی هنوز باید بداند: سیاههها چیست و کجا آنها را پیدا کند! بنابراین من سعی خواهم کرد در این مقاله به شما بگویم چه چیزی و کجا را جستجو کنید.

در زبان عامیانه برنامه نویسی، "log" پروتکل های کاری هستند که هم توسط خود سیستم عامل و هم به طور مستقل توسط بسیاری از برنامه ها نگهداری می شوند. کلمه "log" اغلب به عنوان مترادف کلمه "پروتکل" به این معنا استفاده می شود. دو موقعیت اصلی وجود دارد که در آن تجزیه و تحلیل پروتکل ضروری می شود: زمانی که چیزی در سیستم آنطور که ما انتظار داشتیم کار نمی کند (حل مشکل)، و زمانی که این ظن وجود دارد که سیستم توسط شخص متجاوز هک شده است و لازم است. برای اینکه بفهمیم دقیقاً چه اتفاقی افتاده است که چگونه انجام شد، و برای مقابله با عواقب پس از تهاجم چه باید کرد.

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

«در روز کریسمس، زمانی که شیمومورا برای تعطیلات به نوادا اسکی رفت، شخصی (ما قبلاً می‌دانیم چه کسی) وارد رایانه فوق‌العاده امن خانه او در سولانا بیچ، کالیفرنیا شد و شروع به کپی کردن فایل‌های او - صدها فایل طبقه‌بندی شده از سن دیگو کرد. مرکز سوپرکامپیوتر، جایی که شیمومورا کار می کرد، متوجه تغییراتی در فایل های "log" (log) سیستم شد و به سرعت متوجه شد که چه اتفاقی می افتد. به یک کامپیوتر پشتیبان در سن دیگو. دانش آموز با شیمومورا تماس گرفت و او به سرعت به خانه رفت تا موجودی کالاهای دزدیده شده را تهیه کند. "

من کل داستان را در اینجا نمی گویم، برای ما مهم است که فقط توجه داشته باشیم که تجزیه و تحلیل پروتکل های عملیات سیستم به عنوان پایه ای برای موفقیت در بررسی اقدامات غیرقانونی عمل کرد. شرح مفصل تر از نحوه انجام چنین تحقیقاتی را می توان در مقاله یافت. اما برای اینکه بتوانید از نتایج ورود به سیستم استفاده کنید، باید بدانید که پروتکل ها چگونه ایجاد می شوند، کجا ذخیره می شوند و چه چیزی می توان از آنها استخراج کرد. این مقاله به بررسی همه این سؤالات اختصاص دارد.

نحوه تولید پیام برای پروتکل

ما باید با این واقعیت شروع کنیم که هنگام ایجاد برنامه ها به زبان C، برنامه نویسان این فرصت را دارند که در صورت لزوم، فراخوانی از توابع ویژه را وارد کنند. openlog، setlogmask، syslogو کلکسیونموجود در کتابخانه استاندارد C. این توابع برای ارسال پیام در مورد رویدادهای خاص در طول اجرای برنامه به یک شبح سیستم خاص استفاده می شود. syslogdهدایت پروتکل سیستم عملکرد openlogبا یک شیطان ارتباط برقرار می کند syslogd، عملکرد syslogیک پیام خاص برای نوشتن در پروتکل و تابع ایجاد می کند کلکسیونپیوند باز را می بندد

پیام های تولید شده توسط تابع syslog، شامل چندین فیلد است که با فاصله از هم جدا شده اند. هر پیام با یک فیلد شروع می شود PRI، که اطلاعات مربوط به دسته تسهیلات و سطح شدت یا اولویت پیام را رمزگذاری می کند.

دسته (تسهیلات) اطلاعاتی است که پیام داده شده به کدام کلاس تعلق دارد. دسته بندی با عددی از 0 تا 23 کدگذاری شده است. دسته بندی های زیر وجود دارد (در فایل تعریف شده اند. /usr/include/sys/syslog.h):

میز 1.

مقدار عددینمادرمزگشایی
0 هسته پیام های هسته
1 کاربر در نظر گرفته شده برای پیام های متفرقه از برنامه های کاربر (پیام های برنامه های کاربر)
2 پست الکترونیکی پیام های سیستم پستی
3 اهریمن، دیو پیام هایی از طرف دیمون های سیستم که بر خلاف FTP یا LPR دسته بندی خاصی ندارند.
4 اعتبار همه چیز مربوط به مجوز کاربر، مانند ورود به سیستم و su (امنیت / حقوق دسترسی)
5 syslog سیستم ورود به سیستم می تواند پیام ها را از خود ثبت کند.
6 lpr پیام های سیستم چاپ
7 اخبار پیام از سرور اخبار. (Netnews، USENET)
8 uucp پیام های پروتکل کپی یونیکس به یونیکس. این بخشی از تاریخچه یونیکس است و به احتمال زیاد هرگز به آن نیاز نخواهید داشت (اگرچه هنوز برخی از نامه‌ها از طریق UUCP تحویل داده می‌شوند).
9 کرون پیام‌هایی از زمان‌بندی سیستم.
10 authpriv مانند auth، اما پیام‌های این دسته در فایلی نوشته می‌شوند که فقط تعداد کمی از کاربران می‌توانند آن را بخوانند (شاید این دسته برجسته شده باشد زیرا پیام‌های متعلق به آن ممکن است حاوی رمزهای عبور کاربر باز باشد که نباید توسط افراد غیرمجاز دیده شود، و از این رو فایل های log باید دارای مجوزهای مناسب باشند).
11 ftp از طریق این دسته می توانید سرور FTP خود را برای ضبط اقدامات خود پیکربندی کنید.
از 12 تا 15 - برای استفاده از سیستم رزرو شده است.
از 16 تا 23local0 - محلی7 دسته بندی های رزرو شده برای استفاده توسط مدیر سیستم. دسته local7 معمولاً برای پیام های تولید شده در مرحله بوت سیستم استفاده می شود.

دسته بندی اعتباریک مترادف منسوخ دارد امنیتکه برای استفاده توصیه نمی شود. علاوه بر این، یک دسته بندی خاص وجود دارد علامت گذاری(هیچ معادل دیجیتالی ندارد)، که به پیام های جداگانه تولید شده توسط خود دیمون اختصاص داده می شود syslogd... این دسته برای قرار دادن علامت‌های ویژه در پروتکل در یک بازه زمانی مشخص (به طور پیش‌فرض، هر 20 دقیقه) استفاده می‌شود، که به عنوان مثال به شما امکان می‌دهد با دقت 20 دقیقه متوجه شوید که کامپیوتر شما چه زمانی یخ زده است.

توجه داشته باشید که دسته بندی به طور کلی ربطی به نام برنامه ای که به دیمون پیام می فرستد ندارد. syslogd... همانطور که می گویند، هر تصادفی تصادفی محض است. علاوه بر این، برخی از برنامه ها می توانند پیام هایی در دسته های مختلف تولید کنند. مثلا دیو شبکه راه دوردر صورت تلاش های ناموفق برای ورود به سیستم، پیام های دسته بندی ایجاد می کند authpriv، و در موارد دیگر پست های خود را دسته بندی می کند اهریمن، دیو.

پارامتر دوم که بر اساس آن مقدار فیلد تشکیل می شود PRI، سطح یا اولویت پیام است (اولویت)، یعنی اطلاعاتی در مورد درجه اهمیت پیام. 8 سطح شدت به عنوان استاندارد تنظیم شده است (آنها نیز در فایل تعریف شده اند /usr/include/sys/syslog.h) که با اعداد 0 تا 7 کد گذاری می شوند:

جدول 2.

مقدار عددینماد رمزگشایی
0 ظهور کند(نام قدیمی PANIC) اضطراری. سیستم غیرفعال است
1 هشدار اضطراب! مداخله فوری مورد نیاز است.
2 کریت خطای کشنده (شرایط بحرانی).
3 اشتباه کن(نام قدیمی ERROR) پیغام خطا.
4 هشدار(نام قدیمی WARN)هشدار
5 اطلاع اطلاعاتی در مورد یک رویداد عادی اما مهم.
6 اطلاعات اعلامیه.
7 اشکال زدایی پیام های ایجاد شده در حین اشکال زدایی

رشته PRIپیام به صورت زیر شکل می گیرد: مقدار عددی دسته در 8 ضرب می شود و به مقدار عددی اولویت اضافه می شود، عدد حاصل در پرانتزهای زاویه قرار می گیرد و در فیلد نوشته می شود.

دنبال میدان PRIفیلدهای زیر در پیام گنجانده شده است:

  • TIMESTAMP- زمان تشکیل پیام،
  • HOSTNAME- نام میزبان یا آدرس IP در نماد اعشاری،
  • MSG- متن دلخواه پیام - رشته متنی (اطلاعاتی) در کد US-ASCII (0x20 - 0x7e).

زمان (محلی!) در قالب: 13 فوریه 21:12:06 نوشته شده است. اگر عدد روز یک عدد تک رقمی باشد، یک فضای اضافی در مقابل آن قرار می گیرد (نه 0!). به عدم وجود سال و منطقه در تاریخ توجه کنید که در هنگام سازماندهی باید در نظر گرفته شود ذخیره سازی طولانی مدتفایل های لاگ برای اینکه زمان در پیام صحیح باشد، باید آن را همگام سازی کنید (مثلاً با استفاده از پروتکل NTP).

نام میزبان در پیام گنجانده شده است تا پیام‌های میزبان‌های مختلف اشتباه گرفته نشود، زیرا همانطور که در زیر نشان داده خواهد شد، ورود به سیستم می‌تواند روی یکی از رایانه‌های اختصاصی شبکه انجام شود. نام میزبان نام شبکه ساده رایانه است، بدون اینکه دامنه را مشخص کند. اگر یک رایانه دارای چندین رابط با آدرس های IP مختلف باشد، می توان از هر یک از آنها به عنوان نام یا آدرس میزبان استفاده کرد.

متن پیام ( MSG) معمولا حاوی یک برچسب ( برچسب، اشاره به برنامه یا فرآیندی که این پیام را صادر کرده است، و بدنه پیام ( محتوا). برچسب می تواند شامل حروف و اعداد لاتین باشد. به طور معمول، از یک نام برنامه ساده به عنوان برچسب استفاده می شود که گاهی اوقات با یک شناسه فرآیند، که در براکت های مربعی محصور می شود، دنبال می شود. بدنه پیام با کاراکترهای خاصی از برچسب جدا می شود - در لینوکس، این کاراکترها معمولاً دو نقطه و فاصله هستند.

مدیریت پیام Syslogd

همه پیام ها ایجاد شد برنامه های فردیبا استفاده از تابع syslogارسال از طریق سوکت / توسعه دهنده / ورود به سیستمدیمون سیستم syslogdچه کسی مسئول پردازش این پیام ها است. باید بگویم که در واقع دو دیمون ورود به سیستم در سیستم راه اندازی می شوند - syslogdو klogd... هر دو دیمون در بسته گنجانده شده است sysklogd، آخرین نسخه آن را می توانید در وب سایت بیابید.

دیو klogdمسئول ثبت وقایع رخ داده در هسته سیستم است. نیاز به دیو جداگانه klogdبا این واقعیت توضیح داده می شود که هسته نمی تواند از تابع استاندارد استفاده کند syslog... واقعیت این است که کتابخانه های استاندارد (از جمله کتابخانه ای که تابع در آن قرار دارد syslog) فقط برای استفاده در برنامه های معمول در نظر گرفته شده است. از آنجایی که کرنل به توابع مشابهی نیز نیاز دارد، شامل کتابخانه های خود است که برای برنامه ها در دسترس نیستند. بنابراین، هسته از مکانیسم تولید پیام خود استفاده می کند. دیو klogdبرای سازماندهی پردازش این پیام ها طراحی شده است. در اصل، او می تواند چنین پردازشی را کاملاً مستقل و مستقل از آن انجام دهد syslogdبه عنوان مثال، با نوشتن این پیام ها در یک فایل، اما در بیشتر موارد از تنظیمات پیش فرض استفاده می شود klogdکه در آن تمام پیام های هسته به دیمون یکسانی ارسال می شود syslogd.

برای اطمینان از شیاطین syslogdو klogdدر حال اجرا بر روی سیستم شما، دستور را اجرا کنید ps -ax | grep log... این دستور نتیجه زیر را برای من داد:

$ ps -ax | grep log 569؟ S 0:00 syslogd -m 0 574? S 0:00 kgd -x 1013؟ S 0:00 ورود - kos 1191؟ S 0:00 kalarmd --login دو خط اول نشان می دهد که دیمون های لاگ بر روی سیستم در حال اجرا هستند.

پیام های مدیریت دیمون syslogdشامل این واقعیت است که به طور مداوم ظاهر پیام ها را کنترل می کند و هر ورودی دریافتی را با قوانین موجود در پرونده مقایسه می کند. /etc/syslog.conf... هر قانون به صورت خطی از فایل نوشته می شود /etc/syslog.confمتشکل از دو فیلد فیلد سمت چپ ("انتخابگر") یک یا چند الگو را مشخص می کند که پیام ها توسط آنها انتخاب می شوند. الگوها با نقطه ویرگول از هم جدا می شوند (به فایل مثال زیر مراجعه کنید /etc/syslog.conf). حاشیه سمت راست ("عمل") ترتیب پردازش پیام های انتخاب شده را تعیین می کند. فیلدها با یک یا چند فاصله یا تب از هم جدا می شوند.

هر الگو در فیلد "انتخاب کننده" شکل "category.level" (یعنی "facility.priority") دارد. مقادیر فیلد "دسته" می تواند باشد:

  • یکی از نام‌های مرسوم دسته‌های فهرست شده در جدول 1،
  • چندین نام از این قبیل (در این مورد آنها با کاما از هم جدا می شوند)
  • یا کاراکتر * (به معنی "همه دسته ها").

مقادیر فیلد "سطح" می تواند باشد:

  • یکی از نام های شرطی سطح فهرست شده در جدول 2،
  • کاراکتر * (همه پیام های این دسته را بدون در نظر گرفتن سطح ضبط کنید)
  • یا کلمه هیچ یک(پیام ها را در این دسته ضبط نکنید).

تعیین یک مقدار خاص در قسمت "سطح" به عنوان "همه مقادیر این سطح و بالاتر" تفسیر می شود. اگر نیاز به ضبط پیام های تنها در یک سطح دارید، باید علامت مساوی ("=") را در مقابل مقدار مشخص شده قرار دهید. اگر می خواهید پیام های تمام سطوح را ضبط کنید، به جز سطح مشخص شده، قبل از نام سطح یک علامت تعجب ("!") قرار می گیرد. قرار دادن این دو علامت به طور همزمان به این صورت تعبیر می شود که "پیام های سطح مشخص شده یا بالاتر را ضبط نکنید".

حروف بزرگ و کوچک در قسمت "انتخاب" تفاوتی ندارند. همچنین می توانید از اعداد استفاده کنید (به /usr/include/syslog.h مراجعه کنید). علاوه بر دسته بندی های فهرست شده در جدول 1، علامت گذاری(مهر زمانی معمولی) و امنیت(مترادف منسوخ شده برای اعتبار). علاوه بر مقادیر اولویت مندرج در جدول 2، می توانید استفاده کنید هشدار دهد(مترادف برای هشدار), خطا(مترادف برای اشتباه کن), وحشت(مترادف برای ظهور کند).

هنگامی که دسته و سطح پیام دریافتی با یکی از الگوهای فیلد "انتخاب کننده" یک رشته مطابقت دارد، syslogdرکورد را مطابق با عمل مشخص شده در قسمت "عمل" این خط پردازش می کند.

فیلد "عمل" می تواند شامل باشد

  • نام یک فایل معمولی (فایل لاگ) و مسیر کامل فایل باید مشخص شود که با ریشه "/" شروع می شود و اگر فایل مشخص شده وجود نداشته باشد، syslogdآن را ایجاد می کند،
  • نام لوله - FIFO; در این حالت یک نوار عمودی ("|") در مقابل نام قرار می گیرد و خود کانال باید قبل از شروع ایجاد شود. syslogdتیم mkfifo,
  • اشاره به ترمینال یا کنسول (مانند دستگاه: / dev / tty1)،
  • ارجاع به میزبان راه دور (که قبل از آن علامت @ وجود دارد)،
  • یا لیستی از کاربران (که با کاما از هم جدا شده اند) که طبق این قانون به پایانه های آنها پیام ارسال می شود. به جای لیست کاربران، می توانید یک ستاره (*) قرار دهید که به این معنی است که پیام ها برای همه کاربرانی که در آن کار می کنند ارسال می شود. این لحظهدر سیستم

بیشتر اوقات، فیلد "عمل" همچنان حاوی نام فایل گزارش است. علاوه بر این، می توانید یک علامت منفی ("-") در جلوی نام فایل قرار دهید، به این معنی که سیستم می تواند فایل را در بافر حافظه پنهان ذخیره کند و بعد از نوشتن هر پیام روی دیسک، آن را شستشو ندهد. این البته کار را سرعت می بخشد، به خصوص اگر پیام های بزرگ زیادی در گزارش نوشته شود، اما می تواند منجر به از دست رفتن برخی از پیام ها در صورت خرابی غیرمنتظره سیستم شود، یعنی دقیقاً زمانی که چنین پیام هایی به ویژه مورد نیاز است. . همچنین می توانید یک چاپگر - / dev / lp0 را به عنوان دستگاه در قسمت "عمل" مشخص کنید. این گزینه "عمل" توصیه می شود در مواردی که به سیستم های بسیار مهمی می رسد اعمال شود. پروتکل‌هایی که چاپ می‌شوند نمی‌توانند توسط هکرها پاک یا تغییر داده شوند، بنابراین این یک کاربرد خوب برای چاپگر ماتریس نقطه‌ای قدیمی است.

علاوه بر خطوط با قوانین موجود در فایل /etc/syslog.confممکن است حاوی خطوط خالی و خطوط نظر باشد که با # شروع می شوند. اطلاعات بیشتر در مورد ساختار فایل /etc/syslog.confشما می توانید صفحه man syslog.conf را برای چند نمونه از ورودی های قانون در این فایل بخوانید. توجه داشته باشید که هنگام تعیین جفت "category.level" در فایل syslog.confشما نمی توانید از مقادیر عددی ارائه شده در جداول 1 و 2 استفاده کنید، فقط نام های متعارف آنها مجاز است.

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

به علاوه، اگر چندین جفت «category.level» در قسمت «انتخاب» (که با نقطه ویرگول از هم جدا شده‌اند) فهرست شده باشند، جفت‌های بعدی می‌توانند عملکرد قبلی‌ها را لغو کنند. می توانید نمونه ای از این لغو را در لیست فایل زیر مشاهده کنید /etc/syslog.conf: همه پیام‌های دارای سطح مساوی یا بالاتر از اطلاعات در فایل / var / log / پیام‌ها نوشته می‌شوند، اما پیام‌های دسته‌های mail، authpriv و cron رد می‌شوند (نوشته نشده‌اند).

فهرست 1. فایل /etc/syslog.confاز سیستمی که بر اساس کیت توزیع Red Hat Linux 7.1 ساخته شده است (من فقط نظرات موجود در این فایل را به روسی ترجمه کردم و انتخاب کردم با حروف درشتخطوط قانون).
# همه پیام ها را از هسته به کنسول چاپ کنید. # هسته * / توسعه دهنده / کنسول# همه پیام‌های سطح اطلاعات یا بالاتر را ثبت کنید، # به جز پیام‌های ایمیلی حاوی # پیام‌های احراز هویت محرمانه و پیام‌های cron. * .info؛ mail.none؛ authpriv.none؛ cron.none / var / log / messages# پیام های حاوی # اطلاعات احراز هویت محرمانه را بدون در نظر گرفتن سطح آنها در یک فایل جداگانه بنویسید. authpriv. * / var / log / امن# تمام پیام های سیستم پستی نیز باید جداگانه ثبت شوند. نامه * / var / log / maillog# اقدامات cron daemon را ثبت کنید. cron * / var / log / cron# پیام های اضطراری باید بلافاصله # توسط همه کاربران سیستم دریافت شود * .emerge *# پیام های سرویس های خبری سطح crit و بالاتر باید در یک فایل جداگانه نوشته شود. uucp، news.crit / var / log / spooler# پیام های نمایش داده شده در مرحله بوت باید در فایل boot.log کپی شوند local7. * /var/log/boot.log
همانطور که می بینید، بیشتر پیام ها به سادگی بر روی فایل های گزارش مختلفی که در فهرست قرار دارند، نوشته می شوند / var / logیا زیرشاخه های آن و فایل لاگ اصلی سیستم در لینوکس رد هت همان فایل است / var / log / پیام ها... فقط پیام‌های دسته‌های ایمیل، authpriv و cron (که فایل‌های جداگانه برای آنها اختصاص داده شده است) در آن گنجانده نشده است. بیایید نگاهی به این فایل بیندازیم و با استفاده از مثال آن، آنچه در فایل های گزارش نوشته شده است را در نظر بگیریم.

فایل گزارش / var / log / پیام ها

البته در اینجا نمی توان در مورد محتوای هر خط از این فایل گفت. برای اینکه خواننده متوجه شود چه اطلاعاتی در پروتکل یافت می شود، خطوط پیام جداگانه ای را با نظرات بسیار کوتاه ارائه می دهیم.

هر خط در فایل گزارش شامل یک رکورد پیام واحد است که شامل فیلدهای پیام زیر است که با فاصله از هم جدا شده اند:

  • تاریخ در قالب متن استاندارد (فیلد TIMESTAMPاز پست syslog),
  • نام میزبان (فیلد HOSTNAMEاز پست syslog)
  • متن پیام (فیلدهای برچسبو محتوااز پست syslog)

ابتدا، شایان ذکر است که اگر رایانه شما شبانه روز کار نمی کند، اما در شب خاموش می شود، در این فایل می توانید سوابق چندین "چرخه کاری" را پیدا کنید، که از بوت شدن کامپیوتر شروع می شود و با خاموش شدن آن خاتمه می یابد. چنین چرخه ای با پیامی در مورد شروع شیاطین ورود به سیستم شروع می شود (این قابل درک است، قبل از شروع آنها، پیام ها ضبط نمی شدند):

17 سپتامبر 08:32:56 kos3 syslogd 1.4-0: راه اندازی مجدد. 17 سپتامبر 08:32:56 kos3 syslog: syslogd موفق شد 17 سپتامبر 08:32:56 هسته kos3: klogd 1.4-0، منبع گزارش = / proc / kmsg شروع شد. 17 سپتامبر 08:32:56 هسته kos3: بازرسی /boot/System.map-2.4.2-2 17 سپتامبر 08:32:56 kos3 syslog: start klogd موفق شد

  • - کدام نسخه هسته استفاده می شود: 17 سپتامبر 08:32:56 هسته kos3: نسخه لینوکس 2.4.2-2 ( [ایمیل محافظت شده]) (نسخه gcc 2.96 20000731 (Red Hat Linux 7.1 2.96-79)) # 1 یکشنبه 8 آوریل 20:41:30 EDT 2001
  • - با چه پارامترهایی هسته راه اندازی شد: 17 سپتامبر 08:32:56 هسته kos3: خط فرمان هسته: خودکار BOOT_IMAGE = لینوکس ro root = 303 BOOT_FILE = / بوت / vmlinuz-2.4.2-2
  • - اطلاعات در مورد نوع پردازنده و میزان رم: Sep 17 08:32:56 kos3 kernel: شناسایی پردازنده 1594.849 مگاهرتز. 17 سپتامبر 08:32:56 هسته kos3: حافظه: 125652k / 130560k موجود (1365k کد هسته، 4200k رزرو شده، 92k داده، 236k init، 0k highmem) 17 سپتامبر 08:3K2K1 06:32K1 C , L1 D cache: 8K Sep 17 08:32:56 kos3 Kernel: CPU: L2 Cache: 256K Sep 17 08:32:56 kos3 Kernel: CPU: Intel (R) Pentium (R) 4 CPU 1.60GHz stepping 02
  • - اطلاعات حافظه دیسک (شامل اطلاعات مربوط به هندسه دیسک، ساختار پارتیشن دیسک و وقفه های استفاده شده): 17 سپتامبر 08:32:56 هسته kos3: hda: MAXTOR 6L020J1، درایو ATA DISK 17 سپتامبر 08:32:56 koscd3 kernel:AMSUhNG CD-ROM SC-148C، درایو ATAPI CD / DVD-ROM 17 سپتامبر 08:32:56 هسته kos3: ide0 در 0x1f0-0x1f7,0x3f6 در irq 14 سپتامبر 17 08:32:56 هسته kos3: 1770x0 در 0x376 در irq 15 سپتامبر 17 08:32:56 هسته kos3: hda: 40132503 سکتور (20548 مگابایت) w / 1819KiB Cache، CHS = 2498/255/63، UDMA: 100:325P بررسی کنید: 17 سپتامبر 08:32:56 هسته kos3: hda: hda1 hda2 hda3 hda4< hda5 hda6 hda7 >17 سپتامبر 08:32:56 هسته kos3: درایو فلاپی (ها): fd0 1.44M است
  • - اطلاعات جانبی: 17 سپتامبر 08:32:56 هسته kos3: usb-uhci.c: USB UHCI در I / O 0x1820، IRQ 11 Sep 17 08:32:56 هسته kos3: usb-uhci.c: شناسایی 2 پورت سپتامبر 17 08:32:56 هسته kos3: ttyS00 در 0x03f8 (irq = 4) یک هسته 16550A است 17 سپتامبر 08:32:56 هسته kos3: ttyS01 در 0x02f8 (irq = 3) یک Sep 16550A است: : eth0: آداپتور اترنت مبتنی بر Intel (R) 8255x 17 سپتامبر 08:32:56 هسته kos3: Intel (R) PRO / 100 Fast Ethernet Adapter - درایور قابل بارگیری، نسخه 1.5.6 Sep 17 08:32:56 kos3 Kernel: PCI: IRQ 11 برای دستگاه 02: 08.0 پیدا شد
  • - اطلاعات مربوط به شروع خدمات و سرویس های فردی: 17 سپتامبر 08:32:56 هسته kos3: NET4: Linux TCP / IP 1.0 برای NET4.0 17 سپتامبر 08:32:56 هسته kos3: پروتکل های IP: ICMP، UDP، TCP، IGMP 17 سپتامبر 08:32:56 هسته kos3: NET4: سوکت های دامنه یونیکس 1.0 / SMP برای لینوکس NET4.0. 17 سپتامبر 08:32:56 هسته kos3: parport0: به سبک PC در 0x378 (0x778) 17 سپتامبر 08:32:56 هسته kos3: parport0: irq 7 شناسایی شد 17 سپتامبر 08:32:42 kos3 rc.sysinit و سهمیه های گروهی برای فایل سیستم های محلی: موفق شد 17 سپتامبر 08:32:43 kos3 rc.sysinit: فعال کردن فضای مبادله: موفقیت آمیز 17 سپتامبر 08:32:44 kos3 شروع: ورود به مرحله اجرا: 3 سپتامبر 17 08:32:45: Updating kos3 kud / etc / fstab موفق شد 17 سپتامبر 08:32:55 kos3 kudzu: موفق شد 17 سپتامبر 08:32:55 شبکه kos3: تنظیم پارامترهای شبکه: موفق شد 17 سپتامبر 08:32:55 شبکه kos3: افزایش رابط lo: موفق شد 08 سپتامبر 17 : 32:56 شبکه kos3: رابط eth0 فعال شد: موفق شد 17 سپتامبر 08:32:56 صفحه کلید kos3: بارگیری طرح‌بندی صفحه کلید: 17 سپتامبر 08:32:56 صفحه کلید kos3: فونت سیستم بارگیری شد: 17 سپتامبر 08:332 random: : مولد اعداد تصادفی را آغاز می کند: موفق شد 17 سپتامبر 08:32:41 kos3 rc.sysinit: پیکربندی پارامترهای هسته: موفق شد 17 سپتامبر 08:32:41 kos3 rc.sysinit: تنظیم فونت پیش فرض (cyr-sun16): موفق شد 17 08:32:41 kos3 rc.sysinit: فعال کردن پارتیشن های مبادله: موفق شد 17 سپتامبر 08:32:41 kos3 rc.sysinit: تنظیم نام میزبان kos3: موفق 17 سپتامبر 08:33:03 kos3 xinetd: شروع xinetd: شروع xinetd 17 موفق شد 33:05 kos3 gpm: start gpm موفق شد 17 سپتامبر 08:33:05 kos3 crond: start crond موفق شد 17 سپتامبر 08:33:06 kos3 xfs: گوش دادن به پورت 7100 17 سپتامبر 08:33:06 kos3 xfs موفق شد: شروع xfs
  • - اطلاعات در مورد نصب فایل سیستم ها: 17 سپتامبر 08:32:56 هسته kos3: VFS: ریشه نصب شده (فایل سیستم ext2) فقط خواندنی. 17 سپتامبر 08:32:56 هسته kos3: افزودن Swap: 265032k swap-space (اولویت -1) سپتامبر 17 08:32:56 هسته kos3: MSDOS FS: با استفاده از صفحه کد 866 Sep 17 08:32:32:32 FSSDkos: : IO charset koi8-r 17 سپتامبر 08:32:41 kos3 rc.sysinit: نصب سیستم فایل USB: موفقیت آمیز 17 سپتامبر 08:32:41 kos3 rc.sysinit: بررسی سیستم فایل ریشه موفق شد 17 سپتامبر 08:32:41.sysinit3rc : نصب مجدد فایل سیستم ریشه در حالت خواندن و نوشتن: موفقیت آمیز بود 17 سپتامبر 08:32:41 kos3 rc.sysinit: نصب فایل سیستم فایل proc: موفق شد 17 سپتامبر 08:32:41 kos3 fsck: /: پاک، 30407/1600001 فایل، 95/9 بلوک ها 17 سپتامبر 08:32:42 kos3 fsck: / HOME: پاک، 6573/432864 فایل، 689090/863722 بلوک ها 17 سپتامبر 08:32:42 kos3 fsck: / usr: پاک، 55105/4328/329 فایل های 55105/6/32 17 08:32:42 kos3 rc.sysinit: بررسی سیستم های فایل با موفقیت انجام شد
  • - برخی از پیام‌های خطا گزارش شده است: Sep 17 08:32:42 kos3 mount: SMB اتصال ناموفق Sep 17 08:32:42 kos3 mount: Packet send to 10.104.129.245 (137) ERRNO = شبکه غیر قابل دسترسی است Sep 12:08: نصب 42 kos3: mount: / dev / sda4: دستگاه ناشناخته 17 سپتامبر 08:32:59 kos3 mount: خطا در اتصال به 192.168.36.20:139 (مسیری برای میزبان وجود ندارد) 17 سپتامبر 08:32:59 kos3 mount: mount: / dev / sda4: دستگاه ناشناخته
  • - پیام‌هایی در مورد ورود کاربر: 17 سپتامبر 08:33:14 ورود به سیستم kos3 (pam_unix): جلسه برای کاربر kos توسط LOGIN باز شد (uid = 0) 17 سپتامبر 08:33:14 kos3 - kos: ورود در tty1 توسط kos 17 سپتامبر 08 :41:39 kos3 su (pam_unix): عدم موفقیت در احراز هویت. logname = kos uid = 500 euid = 0 tty = ruser = rhost = کاربر = ریشه
  • - و در نهایت، پیام‌هایی که هنگام خاموش شدن رایانه ضبط می‌شوند، به عنوان مثال: Sep 17 10:30:07 kos3 rc: Stopping keytable: موفقیت‌آمیز Sep 17 10:30:07 kos3 Font Server: Terminating Sep 17 10:30:08 kos3 xfs: توقف xfs موفقیت آمیز سپتامبر 17 10:30:08 kos3 gpm: توقف gpm موفق شد 17 سپتامبر 10:30:08 kos3 xinetd: در حال خروج ... Sep 17 10:30:10 kos3 rpc.statd: Caught signal 15, un -ثبت نام و خروج 17 سپتامبر 10:30:11 هسته kos3: ثبت هسته (proc) متوقف شد. 17 سپتامبر 10:30:11 هسته kos3: شبح ورود هسته در حال پایان است. 17 سپتامبر 10:30:12 kos3 syslog: توقف klogd موفق شد 17 سپتامبر 10:30:12 خروج kos3 از سیگنال 15

    ورودی های دیگر فایل های پروتکل ذکر شده در فایل تقریباً ساختار مشابهی دارند. /etc/syslog.conf.

    دستورات لاگر و دم

    از توضیحات قبلی می توان نتیجه گرفت که صدور کلیه پیام ها برای لاگ های سیستم باید توسط برنامه نویس در مرحله ایجاد برنامه تنظیم شود. این کاملا درست نیست. کاربر همچنین قابلیت ارسال پیام به دیمون را دارد syslogd... برای این کار لینوکس یک دستور دارد متمرکز ساز، که ارسال پیام از خط فرمان (sh، bash و غیره) را فراهم می کند. در بسته util-linux گنجانده شده است. به طور طبیعی، این دستور در درجه اول برای ارائه قابلیت های ورود به سیستم زمانی که کاربر انواع مختلفی از اسکریپت های پوسته را ایجاد می کند، در نظر گرفته شده است. اما می توان آن را مستقیماً از خط فرمان نیز راه اندازی کرد، مثلاً برای آشنایی با قابلیت های سیستم لاگ. فرمت راه اندازی فرمان: logger [-isd] [-f file] [-p PRI] [-t TAG] [-u socket]پارامترهای خط فرمان به معنای زیر است:

    • -من- شامل شماره فرآیند در پیام
    • -s- پیام تکراری به stderr
    • - هنگام ارسال پیام از حالت دیتاگرام استفاده کنید (به جای جریان معمول)
    • -f نام فایل- پیام را در فایل مشخص شده ذخیره کنید (به طور پیش فرض از آن استفاده می شود / var / log / پیام ها)
    • -p facility.level- دسته و اولویت پیام را تنظیم کنید (به طور پیش فرض: user.notice)
    • -t برچسب - فیلد TAG را تنظیم کنید
    • سوکت -u- به جای فراخوانی syslogd پیامی به سوکت مشخص شده ارسال کنید
    • MSG- متن پیام

    با استفاده از برنامه چندین پیام ارسال کنید متمرکز سازو نتیجه را در فایل تحسین کنید / var / log / پیام ها(البته مگر اینکه پیش فرض را تغییر داده باشید).

    به هر حال، یک راه بسیار جالب برای مشاهده پیام های نوشته شده در یک فایل وجود دارد / var / log / پیام هاتیم متمرکز ساز... این روش بر اساس استفاده است برنامه ویژه دم... یک پنجره ترمینال را باز کنید، حقوق superuser را دریافت کنید (با دستور سو) و دستور را در این پنجره اجرا کنید
    tailf / var / log / messages
    پس از آن، به ترمینال دیگری بروید و دستور را در آنجا اجرا کنید logger arbitrary_text... پیام شما بلافاصله در پنجره ای که برنامه در آن اجرا می شود ظاهر می شود دم... یعنی با استفاده از این برنامه مدیر سیستم می تواند ضبط پیام های جدید در پروتکل را به صورت بلادرنگ نظارت کند. درست است، بعید است که مدیر سیستم زمانی برای نظارت بر رفتار سیستم به این روش داشته باشد (مگر در شرایط اضطراری). بنابراین، برنامه های ویژه ای برای تجزیه و تحلیل پروتکل ها ایجاد شده است. اما در مورد آنها کمی پایین تر، اما در حال حاضر اجازه دهید به این سوال بپردازیم که چگونه نظارت بر یک کامپیوتر از راه دور را سازماندهی کنیم (به یاد دارید چگونه مهاجم شیمومورا را دستگیر کردید؟).

    ثبت شبکه

    همانطور که گفته شد، پیام های log را می توان توسط یک دیمون ارسال کرد syslogdبه میزبان راه دور اما یک نفر باید آنجا را بپذیرد. معلوم می شود که همان شیطان این کار را می کند syslogdدر این میزبان راه دور اجرا می شود. دقیق تر، syslogdدر هر رایانه ای، می تواند نه تنها در سوکت / dev / log (در نتیجه دریافت پیام ها از منابع محلی)، بلکه در پورت 514 / UDP نیز گوش دهد، که تضمین می کند که پیام های رایانه های دیگر در شبکه محلی دریافت می شود (و سپس نوشته می شود). به یک فایل محلی). این امکان ایجاد یک "سرور ورود به سیستم" را فراهم می کند که می تواند برای مدیر سیستم بسیار راحت باشد (تمام رویدادهای شبکه در یک مکان نظارت می شوند) و همچنین امنیت شبکه را افزایش می دهد زیرا پیام هایی در مورد نفوذ یک هکر یکی از میزبان های شبکه را نمی توان فوراً توسط این هکر از پروتکل حذف کرد.

    با این حال، برای راه اندازی این "ورود شبکه" به تلاش بیشتری نیاز است.

    اول، از آنجایی که پورت 514 / UDP برای ارسال و دریافت پیام از طریق شبکه استفاده می شود، باید در هر دو رایانه (کلاینت و سرور) در دسترس باشد. برای انجام این کار، در فایل / و غیره / خدماتخط باید در هر دو کامپیوتر وجود داشته باشد
    syslog 514 / udp
    اگر چنین خطی در / و غیره / خدماتگم شده، syslogdنه می تواند پیام ها را دریافت کند و نه آنها را به شبکه ارسال کند زیرا نمی تواند یک پورت UDP را باز کند. اگر این وضعیت پیش بیاید، syslogdبلافاصله نوشتن هر پیامی را متوقف می کند، حتی در گزارش محلی. علاوه بر این، همانطور که دستور نشان می دهد ps، در حافظه باقی می ماند و حتی پیام ها را در برخی از بافرها ذخیره می کند، زیرا اگر رشته " syslog 514 / udp "بازیابی در فایل / و غیره / خدماتدر کلاینت، حداقل برخی از پیام‌های «از دست رفته» همچنان در گزارش ظاهر می‌شوند (پس از راه‌اندازی مجدد syslogd).

    دوم، هنگام شروع دیمون syslogdسرور باید این گزینه را داشته باشد -rکه قابلیت ثبت از راه دور را فراهم می کند (به طور پیش فرض، دیمون syslogdفقط منتظر پیام ها از سوکت محلی است). نحوه و مکان تنظیم این گزینه در زیر، در بخش راه اندازی دیمون توضیح داده خواهد شد. syslogd.

    خوب و ثالثاً تنظیمات داخل فایل ها باید بر اساس آن اصلاح شود. /etc/syslog.confدر هر دو کامپیوتر برای مثال، اگر می‌خواهید همه پیام‌ها را به سرور ورود به سیستم هدایت کنید، باید فایل را در رایانه مشتری بنویسید. /etc/syslog.confیک خط مانند این:
    *. * @hostname
    اگر در هنگام شروع دیو syslogdسرور در دسترس نخواهد بود (به عنوان مثال، در حال حاضر از شبکه جدا شده است) یا یافتن آن با نام امکان پذیر نخواهد بود (سرویس DNS به درستی کار نمی کند) syslogd 10 تلاش دیگر برای یافتن سرور انجام می دهد و تنها در صورتی که پس از آن سرور پیدا نشد، تلاش ها را متوقف می کند و پیام مربوطه را ارسال می کند.

    اگر شبکه شما دارای چندین دامنه است که توسط یک سرور ورود به سیستم ارائه می شوند، تعجب نکنید که گزارش روی سرور شامل نام کامل کلاینت ها (از جمله دامنه) است. درست است، در راه اندازی syslogdمی توانید از گزینه ها استفاده کنید -s domain_listیا لیست میزبان، که تضمین می کند که پروتکل نام های میزبان کاملاً واجد شرایط را با نام کوتاه آنها جایگزین می کند (بدون تعیین دامنه).

    پس از تنظیم گزینه های راه اندازی و فایل فراموش نکنید /etc/syslog.confدیمون را دوباره راه اندازی کنید، زیرا بر خلاف کرون, sysklogdفایل های پیکربندی را به صورت خودکار بازخوانی نمی کند.

    گزینه های راه اندازی شبح Syslogd

    از آنجایی که در بخش فرعی قبلی به مسئله تنظیم پارامترها برای شروع دیمون پرداختیم syslogd، بیایید نگاهی دقیق تر به این موضوع بیندازیم. همانطور که قبلاً ذکر شد، هر دو دیمون ورود به سیستم در مرحله اولیه سازی سیستم، و به طور خاص، از طریق یک اسکریپت شروع می شوند. /etc/rc.d/init.d/syslog(برای آن، و همچنین برای اسکریپت ها برای شروع خدمات دیگر، پیوندهای نمادین در دایرکتوری های /etc/rc.d/rc?.d/ ایجاد می شود). با این حال، برای تنظیم پارامترهای راه اندازی، نیازی به تنظیم این اسکریپت نیست، زیرا با شروع از نسخه 7.2 در توزیع Red Hat، گزینه های راه اندازی برای هر دو دیمون از یک فایل پیکربندی جداگانه خوانده می شود. / etc / sysconfig / syslog... در اینجا لیست کوتاهی از پارامترهای ممکن برای دیمون آورده شده است syslogd.

    پارامترهای راه اندازی syslogd:

    • -یک سوکت- یک سوکت اضافی را مشخص می کند که دیمون به آن گوش خواهد داد syslogd... شما می توانید حداکثر 19 سوکت را مشخص کنید (می توان تعداد بیشتری را مشخص کرد، اما باید بسته را دوباره کامپایل کنید). این گزینه زمانی استفاده می شود که دیمون دیگری (مانند ftp یا http) در یک محیط محدود اجرا می شود (در حال انجام chroot).
    • - حالت اشکال زدایی. در این حالت، دیمون به پس‌زمینه نمی‌رود و همه پیام‌ها را به ترمینال فعلی ارسال می‌کند.
    • -f config_file_nameنام یک فایل پیکربندی جایگزین را که به جای پیش فرض استفاده می شود، مشخص می کند /etc/syslog.conf.
    • -hبه طور پیش فرض در sysklogdانتقال پیام های دریافتی از طریق شبکه به رایانه دیگری ممنوع است. این کار به منظور جلوگیری از انتقال پیام های بی پایان در اطراف حلقه انجام می شود. گزینه -h به شما امکان می دهد رفتار معمول را تغییر دهید و اطمینان حاصل کنید که پیام های دریافتی از میزبان های راه دور در طول شبکه ارسال می شوند (و خودتان مراقب حلقه های احتمالی باشید).
    • -l لیست میزبان- لیستی از میزبان ها را مشخص می کند که نام آنها نباید با ذکر نام دامنه کامل (FQDN - Full Qwalified Domain Name) ثبت شود. نام های موجود در لیست با دو نقطه از هم جدا شده اند.
    • - دقیقه دقیقهبدون این گزینه شروع شد sysklogdبه طور منظم (هر 20 دقیقه) پیام های دسته را ثبت می کند علامت گذاری، یعنی فقط مهرهای زمانی. با گزینه -mمی توانید فاصله بین علامت ها را تغییر دهید یا صدور چنین پیام هایی را به طور کامل لغو کنید، که برای آن باید فاصله زمانی صفر تعیین کنید: -m 0.
    • -nبه پس زمینه نروید؛ این گزینه زمانی مورد نیاز است که syslogd راه اندازی شده و توسط یک فرآیند کنترل می شود شروع کنید.
    • سوکت -pیک سوکت جایگزین یونیکس (به جای گوش دادن پیش فرض) را مشخص می کند / توسعه دهنده / ورود به سیستم). لطفا توجه داشته باشید: گزینه سوکت های اضافی را مشخص می کند و - جایگزین!
    • -rاجازه دریافت پیام از میزبان های راه دور. ما در بخش قبل در مورد این صحبت کردیم، بنابراین من از جزئیات صرف نظر می کنم.
    • -s domain-listفهرستی از دامنه‌هایی را مشخص می‌کند که نام آنها نیازی به ثبت نام همراه با نام میزبان نیست (یعنی برای این دامنه‌ها، به جای نام دامنه کاملاً واجد شرایط (FQDN) فقط نام میزبان ثبت می‌شود. نام‌های موجود در لیست از هم جدا می‌شوند. نام دامنه ای که سرور syslogd در آن قرار دارد، لازم نیست در این لیست مشخص شود (نام آن به طور پیش فرض حذف شده است).
    • -vنمایش نسخه و خروج
    • -ایکسعدم تعیین نام میزبان با آدرس آن، از بن بست در هنگام کار بر روی همان هاست با سرور DNS جلوگیری می کند.

    پس از شروع دیو syslogdیک فایل وضعیت ایجاد می شود / var / lock / subsys / syslogطول صفر و فایل با شناسه فرآیند /var/run/syslogd.pid.

    با استفاده از دستور
    kill -SIGNAL «cat / var / run / syslogd.pid».
    می توانید به شیطان بفرستید syslogdیکی از سیگنال های زیر:

    • SIGHUP - دیمون را مجدداً راه اندازی کنید (اصلاح مجدد). همه فایل‌های باز بسته می‌شوند، دیمون دوباره شروع می‌شود و فایل پیکربندی آن را دوباره می‌خواند.
    • SIGTERM - خاموش شدن.
    • SIGINT، SIGQUIT - اگر حالت اشکال زدایی فعال باشد (گزینه -d)، سیگنال ها نادیده گرفته می شوند، در غیر این صورت - خارج شوید.
    • SIGUSR1 - حالت اشکال زدایی را فعال یا غیرفعال کنید (فقط در صورتی کار می کند که دیمون با سوئیچ -d راه اندازی شده باشد).

    دیو klogdگزینه های راه اندازی کمتر از syslogd، اما ما آنها را در اینجا لیست نمی کنیم و خواننده را به صفحه شخصی مربوطه ارجاع می دهیم (کاربر نباید در تنظیم نقش داشته باشد. klogd، بهتر است آن را به همان حالتی که توسط توسعه دهندگان کیت توزیع تولید شده است رها کنید).

    فایل Dmesg و دستور dmesg

    همانطور که گفته شد، فایل های ورود به سیستم به فایل اشاره شده است /etc/syslog.confمعمولا در دایرکتوری قرار دارد / var / logو زیر شاخه های آن اما، اگر به این دایرکتوری نگاه کنیم، چندین فایل را در آنجا پیدا خواهیم کرد که در /etc/syslog.confذکر نشدند. بیایید نگاهی به هدف آنها بیندازیم. و بیایید با فایل شروع کنیم dmesg.

    ابتدا لازم به ذکر است که لینوکس دستوری به همین نام دارد. اگر خروجی این دستور (زمانی که بدون پارامتر اجرا می شود) را با محتویات فایل مقایسه کنید. / var / log / dmesg، خواهید دید که آنها بسیار شبیه هستند، اگرچه یکسان نیستند (خروجی دستور را به فایل وارد کنید dmesg2و فایل ها را با هم مقایسه کنید dmesgو dmesg2). به طور دقیق تر، فایل / var / log / dmesgیک به یک مصادف با ابتدای خروجی است که توسط دستور دریافت خواهیم کرد dmesg... همانطور که از هسته نشان می دهد، یک بافر حلقه ای وجود دارد که در آن پیام هایی از شبح ورود به سیستم هسته نوشته می شود. آن دسته از پیام هایی که در حین بارگذاری در این بافر نوشته می شوند و محتویات فایل را تشکیل می دهند / var / log / dmesg... ظاهراً این فایل در انتهای بوت سیستم تولید می شود.

    اگر دوباره به لیست فایل بالا نگاه کنید /etc/syslog.confسپس مشاهده خواهید کرد که تمام پست های این دسته هستهبرای کنسول نیز صادر می شوند. اما در آنجا آنها به سرعت در سراسر صفحه نمایش می روند و شما به سختی وقت دارید آنها را بخوانید و درک کنید. اما آنها در فایل ذخیره می شوند / var / log / dmesgو بنابراین برای درک راحت در دسترس هستند (اگر فرآیند دانلود با موفقیت انجام شده باشد). پس از پایان فرآیند بوت، نوشتن پیام از هسته به بافر دایره ای ادامه می یابد. زمانی که دستور اجرا می شود dmesg، وضعیت فعلی بافر نمایش داده می شود. بنابراین خروجی این دستور حاوی پیام های بیشتری نسبت به فایل است / var / log / dmesg: در خروجی این دستور پیام هایی را نیز مشاهده می کنید که کرنل پس از پایان فرآیند بوت صادر می کند.

    همه پیام ها از / var / log / dmesgدر فایل پیدا خواهید کرد / var / log / پیام ها، فقط در آنجا با پیام های دیگر برنامه ها جایگزین می شوند. تنها یک تفاوت قابل توجه وجود دارد: در فایل dmesgزمان و منبع پیام (نام میزبان و دسته پیام) مشخص نشده است. میزبان همیشه در اینجا "محلی" است و شروع شمارش معکوس با آخرین راه اندازی مجدد رایانه تعیین می شود.

    فایل های Lastlog، wtmp و utmp

    علاوه بر فایل dmesgدر کاتالوگ / var / log /دو فایل دیگر وجود دارد که در آن ذکر نشده است /etc/syslog.conf، اما مستقیماً با ورود به سیستم مرتبط است - اینها فایل ها هستند آخرین لاگو wtmp... اما نگاه کردن به آنها همان چیزی است که ما به پرونده نگاه می کردیم / var / log / پیام هامعنی ندارد - شما چیزی نخواهید فهمید. واقعیت این است که اطلاعات این فایل ها با فرمت خاصی ثبت می شود و باید با استفاده از ابزارهای نرم افزاری خاص آن ها را مشاهده کرد. اما ابتدا باید چند کلمه در مورد هدف این فایل ها گفت.

    فایل آخرین لاگاطلاعات مربوط به آخرین کاربری که به سیستم وارد شده را ذخیره می کند. نمی‌دانم متوجه شده‌اید که وقتی نام کاربری و رمز عبور را وارد می‌کنید، پیام زیر روی صفحه ظاهر می‌شود:

    Localhost ورود: kos رمز عبور: آخرین ورود: چهارشنبه 9 اکتبر 19:25:53 در tty1 این سه خط توسط ابزار تولید می شوند وارد شدن، که پس از مشخص شدن حق ورود کاربر، به فایل دسترسی پیدا می کند / var / log / lastlog، اطلاعات مربوط به ورود موفق قبلی کاربر را از آنجا بازیابی می کند، آن را روی صفحه چاپ می کند و سپس ورودی فایل را به روز می کند. آخرین لاگ... شما می توانید این پیام را با ایجاد یک فایل .hushlogin خالی در فهرست اصلی خود سرکوب کنید. اما انجام این کار توصیه نمی شود، بلکه برعکس باید به محتوای این پیام توجه ویژه ای داشته باشید تا مواردی را که شخص دیگری به نام شما وارد سیستم شده است از دست ندهید.

    بر خلاف فایل / var / log / lastlogکه حاوی سوابق زمان است آخرینورود هر کاربر، در فایل / var / log / wtmpبه یاد می آورند همهورود و خروج کاربر از زمان ایجاد این فایل. همانطور که در پرونده است آخرین لاگ، ورودی ها در / var / log / wtmpدر قالب خاصی ساخته شده اند، بنابراین فقط با استفاده از دستورات خاص قابل مشاهده هستند. اما، قبل از صحبت در مورد این دستورات، اجازه دهید بگوییم که یک فایل دیگر حاوی ورودی هایی در مورد ثبت نام کاربر وجود دارد - این فایل است. / var / run / utmp... این فایل حاوی اطلاعاتی است در مورد اینکه چه کاربری در حال حاضر وارد سیستم شده است.

    اکنون می توانید در مورد نحوه مشاهده اطلاعات مربوط به کاربرانی که در حال حاضر یا قبلاً در سیستم کار می کنند صحبت کنید. دستور اصلی برای این دستور است آخر... تمام رکوردها را از فایل خروجی می دهد / var / log / wtmpعلاوه بر این، نام کاربری، نشانه پایانه ای که کاربر از آن کار می کرد، زمان ورود کاربر به سیستم و زمان خروج از سیستم و همچنین مدت زمان جلسه کاربر در سیستم نشان داده شده است. اگر کار کاربر فقط به دلیل خاموش شدن سیستم قطع شد، به جای زمان خروج کاربر از کلمه down استفاده می شود (این خطوط به راحتی می توانند زمان خاموش شدن سیستم را مشخص کنند). زمان راه اندازی مجدد در خطوط جداگانه ای نمایش داده می شود که با کلمه "راه اندازی مجدد" شروع می شود.

    تیم lastbمثل یک تیم آخراما اطلاعاتی در مورد تلاش های ناموفق کاربر برای ورود به سیستم نمایش می دهد. البته لازم به ذکر است که این دستور تنها در صورت وجود فایل کار می کند. / var / log / btmp... با این حال، هیچ یک از برنامه‌هایی که در اینجا مورد بحث قرار گرفته‌اند، فایل‌های log ایجاد نمی‌کنند، بنابراین اگر هر یک از آنها حذف شود، ضبط به پایان می‌رسد.

    تیم آخرین لاگمحتوای فایل را فرمت و خروجی می کند / var / log / lastlog... فیلدها نام کاربری، نام پایانه ای که کاربر از آن وارد شده و زمان آخرین ورود به سیستم خواهد بود. به طور پیش فرض (زمانی که دستور بدون پارامتر وارد می شود) عناصر فایل / var / log / lastlogبه ترتیب شماره شناسه کاربری نمایش داده می شود. اگر پارامتر -u login-name را مشخص کنید، فقط اطلاعات مربوط به زمان آخرین ورود کاربر مشخص شده نمایش داده می شود. با تعیین پارامتر -t days فقط رکوردهای روزهای آخر را دریافت خواهید کرد. اگر کاربر اصلاً وارد سیستم نشده باشد، رشته "** Never Logged in **" به جای نام ترمینال و زمان آخرین ورود نشان داده می شود.

    هنگام اجرای دستور آخرین لاگدر یک کامپیوتر کند، در برخی موارد ممکن است به نظر برسد که دستور گیر کرده است. این به این دلیل اتفاق می افتد که حتی اگر فقط دو کاربر در سیستم (روت و کاربر) ثبت نام کرده باشند، در فایل / var / log / lastlogهنوز جا برای هر چه بیشتر کاربرانی که بتوانند روی سیستم کار کنند وجود دارد. بنابراین در پرونده / var / log / lastlogممکن است بین شماره شناسه کاربرانی که وارد سیستم شده اند فاصله زیادی وجود داشته باشد. از آنجایی که هنگام مشاهده چنین فواصل، برنامه اطلاعاتی را روی صفحه نمایش نمی دهد و تصور "انجماد" ظاهر می شود.

    برای نمایش اطلاعات در مورد افرادی که در حال حاضر در سیستم کار می کنند، از دستورات استفاده کنید w, کهو کاربران... تیم کاربرانزمانی استفاده می شود که شما فقط می خواهید بدانید کدام یک از کاربران در حال حاضر در سیستم کار می کنند، اما علاقه ای به اینکه از کدام ترمینال وصل شده و چه کار می کند، ندارید. اگر می خواهید بدانید چه کسی از کدام ترمینال وارد شده است، از دستور استفاده کنید که... این دستور اطلاعات یک فایل را خروجی می کند / var / run / utmp... می توانید آن را از یک فایل داده خروجی کنید / var / log / wtmp(یا هر فایل دیگری که برای آن منطقی است) اگر نام آن فایل را در خط فرمان مشخص کنید. اما در خروجی، شما همچنان فقط نام کاربری، نشانی از پایانه ای که کاربر از آن وارد شده است، زمان ورود به سیستم، و اگر از رایانه راه دور وارد شده باشد، نام آن رایانه را خواهید دید.

    به طور قابل توجهی اطلاعات بیشتری با دستور نمایش داده می شود w... در خروجی آن، زمان فعلی، مدت زمان کارکرد سیستم، تعداد کاربرانی که در حال حاضر در سیستم مشغول به کار هستند و میانگین بارگذاری سیستم در آخرین دقیقه، 5 و 15 دقیقه را مشاهده خواهید کرد. سپس، برای هر کاربر، چاپ می کند:

  • نام کاربری،
  • نام ترمینال،
  • نام میزبان راه دور
  • زمان سپری شده از ورود،
  • زمانی که در طی آن از این ترمینال استفاده نمی شود (زمان بیکار)،
  • کل زمان صرف شده توسط تمام فرآیندهای راه اندازی شده از این ترمینال (گراف JCPU)،
  • زمانی که در طی آن آخرین فرآیند شروع شده توسط کاربر (گراف PCPU) اجرا می شود،
  • اطلاعاتی در مورد اینکه کدام برنامه در حال حاضر توسط کاربر اجرا می شود (به صورت خط فرمان برای شروع یک فرمان با تمام پارامترها).

    همانطور که قبلا ذکر شد، دستور wاطلاعات ذخیره شده در یک فایل را خروجی می کند utmp... به هر حال، راهنما مردمی گوید که کاربران عادی باید از دسترسی نوشتن به فایل خودداری کنند utmpاز آنجایی که بسیاری برنامه های سیستمی(به دلایلی غیرقابل توضیح) به یکپارچگی آن بستگی دارد. اگر به هر کاربری اجازه دهید در فایل utmp بنویسد، خطر گیج شدن فایل های آمار سیستم و ایجاد تغییرات در فایل های سیستم را دارید.

    فایل های گزارش برنامه های دیگر

    علاوه بر فایل هایی که قبلا توضیح دادیم، فایل های پروتکل دیگری نیز وجود دارند که توسط برنامه های جداگانه ایجاد می شوند. نمونه های معمولی پروتکل های دیمون هستند. سامبا, ftpdیا httpdکه در فایل های جداگانه نگهداری می شوند. برخی از این برنامه ها پروتکل های خود را در زیر شاخه های دایرکتوری ایجاد می کنند / var / log /دیگران پروتکل ها را در جای دیگری نگه می دارند. و ساختار این فایل ها ممکن است به طور قابل توجهی با ساختار فایل های ایجاد شده توسط سیستم متفاوت باشد. syslog... به عنوان مثال، من چند خط از لاگ سرور می دهم آپاچیدر حال اجرا بر روی رایانه من: 192.168.36.21 - - "GET / ve / papers / new / log / HTTP / 1.1" 200 1774 "-" "Mozilla / 5.0 (X11; U; Linux i686; ru-RU; rv: 1.0 . 0) Gecko / 20020530 "192.168.36.21 - -" GET /icons/back.gif HTTP / 1.1 "304 -" - "" Mozilla / 5.0 (X11; U; Linux i686; ru-RU; rv: 1.0.0) Gecko / 20020530 "192.168.36.21 - -" GET /icons/folder.gif HTTP / 1.1 "304 -" - "" Mozilla / 5.0 (X11; U; Linux i686; ru-RU; rv: 1.0.0) Gecko / 20020530 "192.168.36.21 - -" GET /icons/text.gif HTTP / 1.1 "304 -" - "" Mozilla / 5.0 (X11; U; Linux i686; ru-RU; rv: 1.0.0) Gecko / 20 "2005 192.168.36.21 - -" GET /ve/papers/new/log/protok_lovim.htm HTTP / 1.1 "200 46597" http: // linux / ve / papers / new / log / "" Mozilla / 5.0 (X11; U ; Linux i686; ru-RU; rv: 1.0.0) Gecko / 20020530 "192.168.36.21 - -" GET /bugtraq.css HTTP / 1.1 "404 279" http: // linux / ve / papers / new / protok_lovim / htm "" Mozilla / 5.0 (X11; U; Linux i686; ru-RU; rv: 1.0.0) Gecko / 20020530 "192.168.36.21 - -" GET /img/bug1.gif HTTP / 1.1 "404" : // linux / ve / papers / new / lo g / protok_lovim.htm "" Mozilla / 5.0 (X11; U; لینوکس i686; ru-RU; rv: 1.0.0) Gecko / 20020530 "192.168.36.21 - -" GET /img/title.gif HTTP / 1.1 "404 281" http: //linux/ve/papers/new/log/protok_lovim.ht "" /5.0 (X11; U; Linux i686; ru-RU; rv: 1.0.0) Gecko / 20020530 "همانطور که می بینید، ساختار این فایل گزارش به طور قابل توجهی با آنچه در گزارش های سیستم دیدیم متفاوت است.

    سرور سامبا، علاوه بر پروتکل عملیات سرور اصلی، در زیر شاخه ایجاد می کند / var / log / sambaتعدادی فایل لاگ برای موارد مختلف، به ویژه فایل های جداگانه برای هر یک از کاربرانی که مجاز به استفاده از منابع ارائه شده توسط این سرور هستند. دو رکورد زیر از یکی از این فایل ها گرفته شده است:

    Smbd / service.c: make_connection (550) linux (192.168.36.10) اتصال به سرویس عمومی به عنوان کاربر kos (uid = 500، gid = 500) (pid 1366) smbd / service.c: close_cnum (550) لینوکس (192). 36.10) اتصال بسته به سرویس عمومی این مثال ها نشان می دهد که اگر بتوانید کمی به زبان انگلیسی بخوانید و کمی از ساختار رکوردها درک داشته باشید، می توانید اطلاعات مفید زیادی را از فایل های گزارش استخراج کنید. فقط باید از کل رسوبات "سنگ ضایعات" استخراج شود - فایل های ثبت متوالی عظیم، که یک کار غیر ضروری است. بنابراین، ابزارهای نرم افزاری ویژه ای برای تجزیه و تحلیل پروتکل توسعه یافت.

    ابزارهایی برای پردازش پروتکل ها

    بسیاری از برنامه ها و اسکریپت های مختلف برای تجزیه و تحلیل پروتکل توسعه یافته اند. من خودم را محدود خواهم کرد توضیح مختصردو وسیله از این قبیل: ساعت طولیو نمونه.

    ساعت طولییک اسکریپت پرل است که همراه با توزیع استاندارد لینوکس Red Hat است. درست در حین آماده سازی این مقاله، نسخه 4.1 این برنامه در وب سایت توسعه دهنده (و کرک بائر است) منتشر شد.

    ایده اصلی پشت این برنامه این است که فایل log از فیلتری عبور می‌کند که تمام خطوط (یعنی پیام‌ها) را که دارای یک معیار معین هستند از فهرست استخراج می‌کند. نتایج از طریق ایمیل برای کاربر مشخص شده ارسال می شود (پیش فرض ریشه است). فیلترها را می توان به هر زبان برنامه نویسی نوشت، اما نویسنده بسته Perl را ترجیح می دهد. فیلترها باید طوری نوشته شوند که داده ها را از stdin بخوانند و نتیجه را به stdout ارسال کنند.

    راه اصلی استفاده ساعت طولیشامل یک پیوند به اسکریپت اصلی ( /etc/log.d/scripts/logwatch.pl) به دایرکتوری /etc/cron.daily که باعث اجرای روزانه می شود ساعت طولیبا پارامترهای پیش فرض به پیوند نامی داده می شود که با "00" شروع می شود (مثلاً 00-logwatch) به طوری که اسکریپت قبل از logrotate اجرا شود.

    اما می توانید اسکریپت را از خط فرمان نیز اجرا کنید. البته اگر پارامتر خروجی اطلاعات را تغییر نداده اید، نتیجه کار آن را باید در صندوق پستی ابرکاربر جستجو کرد. اگر می خواهید این نتایج را روی صفحه ببینید، باید پارامتر خط فرمان را تنظیم کنید --چاپ- ارائه گزارش به stdout.

    فرمت عمومی راه اندازی اسکریپت:

    /etc/log.d/scripts/logwatch.pl [--detailمرحله ] [--ورود به سیستم فایلگروه سیاهههای مربوط ] [--سرویسنام سرویس ] [--چاپ] [--mailtoآدرس ] [--صرفه جویینام فایل ] [--بایگانی] [-- محدودهفاصله زمانی ]

    پارامترهای پیش‌فرض در فایل /etc/log.d/logwatch.conf ذخیره می‌شوند، نظراتی که در آن به شما امکان می‌دهد معنی پارامترهای خط فرمان را درک کنید:

    • LogDir - دایرکتوری مربوط به آن که نام فایل در نظر گرفته می شود.
    • MailTo - به چه کسی گزارش ارسال شود.
    • چاپ - به جای ارسال یک گزارش از طریق پست، آن را به stdout صادر کنید.
    • ذخیره - به جای ارسال گزارش از طریق پست، آن را در فایل مشخص شده ذخیره کنید.
    • آرشیو - نه تنها نسخه های فعلی سیاههها، بلکه نسخه های قدیمی ایجاد شده توسط logrotate را نیز پردازش می کند.
    • محدوده - پردازش بازه زمانی مشخص شده: همه، امروز، دیروز (روز تقویم دیروز)؛
    • جزئیات - سطح جزئیات گزارش: از 0 تا 10 یا کم، متوسط، زیاد.
    • سرویس - نام همه یا فیلتر از /etc/log.d/scripts/services/ (فیلترهای متعددی را می توان مشخص کرد).
    • LogFile - همه یا نام گروه گزارش (گروه های متعدد را می توان مشخص کرد).

    اطلاعات بیشتر در مورد اسکریپت ساعت طولیدر پیدا خواهید کرد.

    این مقاله اسکریپت دیگری را برای پردازش فایل‌های گزارش که در توزیع لینوکس Mandrake گنجانده شده است، توضیح می‌دهد. این اسکریپت نام دارد نمونه("Simple WATCHer") و به زبان پرل نیز نوشته شده است.

    مدیریت کار نمونهبه طور پیش فرض با استفاده از یک فایل پیکربندی واحد انجام می شود $ HOME / .swatchrc... این فایل حاوی متن نمونه (به شکل عبارت منظم) است که نمونهفایل های گزارش را جستجو می کند. هر یک از این الگوها توسط یک عمل دنبال می شود که نمونهاگر متنی را پیدا کرد که با الگوی مطابقت دارد، باید آن را بگیرد.

    به عنوان مثال، ممکن است بخواهید هر بار که برای یک نام فایل بسیار طولانی به وب سرور خود حمله سرریز بافر را انجام می دهید، یک هشدار دریافت کنید. و می دانید که در چنین مواردی در فایل log /var/apache/error.logپیامی با عبارت "نام فایل خیلی طولانی است" ظاهر می شود. در این صورت به فایل شما .swatchrcیادداشت زیر باید درج شود:

    Watchfor / نام فایل خیلی طولانی است / نامه [ایمیل محافظت شده]، موضوع = BufferOverflow_attempt

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

    در خاتمه این بخش، مایلم یادآوری کنم که وب سایت SecurityLab.ru (http://www.securitylab.ru/tools/?ID=22111) حاوی لیستی از پیوندها به سایت های ابزارهای نرم افزاری مختلف برای پروتکل های پردازش است. با توضیح مختصری در مورد این ابزار. می توانید برنامه های مختلفی را آزمایش کنید و برنامه ای را که مناسب شماست انتخاب کنید.

    چرخش فایل های گزارش

    مطمئناً متوجه خواهید شد که اگر سیستم به شدت مورد استفاده قرار گیرد، فایل های گزارش به سرعت رشد می کنند. که مستلزم هدر رفتن فضای دیسک است. و مشکل "رام کردن" پروتکل ها به وجود می آید. لینوکس Red Hat این مشکل را با اسکریپت برطرف می کند. logrotateکه در دایرکتوری قرار دارد /etc/cron.dailyو بنابراین توسط دیمون شروع می شود کرونروزانه. این اسکریپت به شما امکان می دهد تا بیش از گزارش های سیستم را پردازش کنید syslog، بلکه هر برنامه دیگری.

    اسکریپت logrotateرشد فایل های log را نظارت می کند و به اصطلاح چرخش این فایل ها را در صورت تجاوز از اندازه مشخص شده (یا پس از اتمام بازه زمانی مشخص شده) فراهم می کند. چرخش چیزی نیست جز کپی پی در پی نسخه های قبلی فایل های آرشیو، چیزی شبیه به این:

  • messages.2 -> messages.3
  • messages.1 -> messages.2
  • messages.0 -> messages.1
  • messages -> messages.0
    و ایجاد یک فایل پیام های جدید برای ضبط پیام های بعدی.

    لیست فایل هایی که باید توسط اسکریپت پردازش شوند logrotateو پارامترهای این پردازش توسط فایل های پیکربندی تعیین می شود که می تواند چندین مورد باشد. نام فایل های پیکربندی در خط فرمان راه اندازی اسکریپت تنظیم شده است (برای پارامترهای راه اندازی به زیر مراجعه کنید). در لینوکس Red Hat، فایل های پیکربندی پیش فرض برای logrotateفایل استفاده شده /etc/logrotate.conf، که ممکن است چیزی شبیه به این باشد:

    چرخش هفتگی 4 ایجاد فشرده شامل /etc/logrotate.d / var / log / wtmp / var / log / lastlog (ماهانه ایجاد 0664 root utmp rotate 1)

    این فایل مانند هر فایل پیکربندی اسکریپت است. logrotateاز چندین بخش تشکیل شده است. بخش اول پارامترهای جهانی (یکی در هر خط) را تعریف می کند که پارامترهای پیش فرض را برای همه گزارش ها تنظیم می کند. بخش های زیر پارامترهای محلی را برای یک سری از فایل های گزارش تعریف می کند. نام این فایل ها در خط اول بخش ذکر شده است و سپس پارامترهای محلی در پرانتزهای فرفری تنظیم می شوند که فقط در هنگام پردازش فایل های مشخص شده (همچنین یک پارامتر در هر خط) موثر هستند. نام فایل های گزارش را می توان با قوانین پوسته نقل قول کرد اگر حاوی فاصله یا سایر کاراکترهای خاص باشد. می‌توانید چندین نام فایل یا الگوهای نام فایل را که با فاصله از هم جدا شده‌اند مشخص کنید (الگوها نیز از قوانین پوسته پیروی می‌کنند). پردازش هر بخش به عنوان یک عمل واحد در نظر گرفته می شود. خطوطی که با کاراکتر "#" شروع می شوند، نظرات هستند. پارامترهای محلی بر پارامترهای جهانی اولویت دارند.

    در مثال داده شده از فایل پیکربندی، ابتدا پارامترهای سراسری توضیح داده شده و سپس در یک بخش جداگانه، پارامترهای پردازش فایل های / var / log / wtmp و / var / log / lastlog توضیح داده شده است. علاوه بر این، در بین پارامترهای جهانی، پیوندی به دایرکتوری داده می شود /etc/logrotate.d، که در آن هر بسته پارامترهای محلی را برای گزارش های خود می نویسد.

    در قسمت پارامترهای سراسری ابتدا یکی از پارامترهای زیر مشخص می شود که معیار چرخش فایل را مشخص می کند:

  • روزانه- تغییر نسخه های سری روزانه اتفاق می افتد،
  • هفتگی- تغییر نسخه به صورت هفتگی رخ می دهد،
  • ماهانه- تغییر نسخه ماهانه اتفاق می افتد،
  • اندازه بایت - تغییر نسخه در صورتی رخ می دهد که اندازه گزارش از تعداد بایت های مشخص شده بیشتر باشد. می توانید از پسوندهای "k" - کیلوبایت - و "M" - مگابایت استفاده کنید)

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

    پارامتر چرخاندن عدد را می توان هم در بین پارامترهای جهانی و هم در بین پارامترهای محلی یافت و تعیین می کند که چه تعداد از نسخه های قدیمی باید نگهداری شوند. اگر عدد 0 باشد، نسخه های آرشیو شده پروتکل ایجاد نمی شوند.

    اگر پارامتر تنظیم شده باشد فشرده کردنسپس نسخه های قدیمی با استفاده از gzip فشرده می شوند و در صورت مشخص شدن بدون فشرده سازی- کوچک نمی شوند. پارامتر فشرده سازی cmdبه شما اجازه می دهد تا مشخص کنید کدام برنامه فشرده سازی مورد استفاده قرار می گیرد (gzip به طور پیش فرض)، و از فشرده سازی cmdبرنامه رفع فشرده سازی (ungzip به طور پیش فرض) را تنظیم می کند. فشرده سازی هاپارامترهای برنامه فشرده سازی را تنظیم می کند. پیش فرض "-9" است، یعنی. حداکثر فشرده سازی برای gzip با استفاده از پارامتر متن فشردهمی توانید پسوند فایل های فشرده و پارامتر را تغییر دهید افزونه پسوند پسوندی را برای افزودن به نام فایل ها در حین چرخش (قبل از پسوند فشرده سازی) مشخص می کند.

    در میان کلمات کلیدی موجود در فایل های پیکربندی، کلمات پس چرخشو قبل از چرخشکه به عنوان پرانتز باز برای گنجاندن اسکریپت های پوسته در فایل های پیکربندی عمل می کنند. تمام خطوط فایل پیکربندی از خط پس چرخشبه خط پایان نامهبه عنوان دستورات پوسته پس از فرآیند تغییر نسخه فایل log اجرا می شوند. بر این اساس، تمام خطوط از خط قبل از چرخشبه خط پایان نامهقبل از چرخش فایل های گزارش اجرا می شوند. با کمک این اسکریپت ها می توانید رویه های مختلفی را برای پردازش فایل های گزارش در حین چرخش سازماندهی کنید.

    با استفاده از سایر پارامترهای فایل پیکربندی، می توانید حقوق دسترسی به فایل های گزارش را لغو کنید (اگر این پارامتر مشخص نشده باشد، از ویژگی های فایل log قدیمی استفاده می شود). نشان دهید که برای چه کسی در مورد اشتباهات در عملکرد سیستم ورود پیام ارسال شود. یک نسخه بایگانی از گزارش را به کاربر مشخص شده ارسال کنید. دایرکتوری را تنظیم کنید که پروتکل ها در طول تغییر نسخه به آن منتقل می شوند (دایرکتوری باید در همان دایرکتوری قرار گیرد دستگاه فیزیکی as / var / log) یا لیستی از پسوندهای حذف را برای دایرکتوری مشخص کنید عبارتند از... شرح مفصلی از این ویژگی ها و پارامترها (و همچنین مواردی که ذکر نشده است) را می توانید در زیر فرمان پیدا کنید مرد لوگرت کردن.

    همانطور که قبلا ذکر شد، فایل های پیکربندی اضافی logrotateرا می توان در خط فرمان راه اندازی اسکریپت مشخص کرد. می توانید تعداد دلخواه نامی را برای فایل های پیکربندی یا دایرکتوری ها تعیین کنید. نام فایل ها و دایرکتوری ها در این لیست به سادگی با فاصله از هم جدا می شوند. ترتیب نام ها در لیست مهم است زیرا پارامترهای مشخص شده در فایل پیکربندی زیر مقادیر پارامترهای مشخص شده در فایل قبلی... ترتیب فایل ها در دایرکتوری پیکربندی تعریف نشده است.

    علاوه بر این، پارامترهای زیر را می توان در خط فرمان راه اندازی مشخص کرد:

    • - حالت اشکال زدایی، هیچ تغییر واقعی ایجاد نمی شود،
    • - حتی اگر تغییراتی ایجاد کنید logrotateنیازی نمی بیند - زمانی استفاده می شود که تغییراتی در لیست گزارش های پردازش شده وجود دارد،
    • مرد لاگ ساعت
    • میک بائر، "پنگوئن پارانوئید: نمونه: نظارت خودکار گزارش برای افراد هوشیار اما تنبل"
    • RFC 3164. C. Lonvick، پروتکل BSD Syslog، آگوست 2001.
    • RFC 3195. D. New, M. Rose, Reliable Delivery for syslog, نوامبر 2001.
    • مطابق. S.Lapshansky، "دیو سیستم را نظارت می کند"
    • دنیس کولیسنیچنکو،

    پروتکل syslog و نرم افزار پشتیبانی تضمین می کند که اطلاعات رویداد در گزارش سیستم (لاگ ها، کنسول سیستم) نوشته می شود و همچنین به سرور ورود به سیستم از طریق شبکه منتقل می شود، بسته به منبع و شدت پیام ها مرتب شده و پردازش می شود. این مقاله پروتکل syslog، پیاده سازی آن در Solaris و Linux (syslogd)، Cisco IOS و ابزارهای کمکی: logrotate، logwatch را شرح می دهد.

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

    پروتکل syslog هیچ گونه حفاظتی در برابر جعل پیام ارائه نمی دهد. حتی بدتر، استفاده از پروتکل UDP به مهاجمان اجازه می دهد تا از طرف هر میزبانی پیام ارسال کنند. شبکه محلی باید توسط یک صفحه نمایش (IOS ACL، ipchains) از دریافت بسته هایی با آدرس های محلی جعلی (اگرچه این مانع از ارسال پیام های جعلی از داخل شبکه محلی نمی شود) و از دریافت بسته ها از خارج در پورت 514 / udp محافظت شود. موارد شناخته شده ای از سرریز دیسک با پیام های نادرست وجود دارد.

    پروتکل syslog و UDP تحویل تضمینی را ارائه نمی دهند (پیام ها می توانند در طول ازدحام شبکه از بین بروند یا رهگیری شوند، پیام های خراب بدون هشدار حذف می شوند)، ترتیب تحویل صحیح (پیام مربوط به پایان فرآیند ممکن است قبل از پیام شروع آن باشد) ، تحویل اولویت.

    پیام‌ها محرمانه نمی‌مانند زیرا به صورت متنی واضح ارسال می‌شوند.

    اگر هنگام پیکربندی مولد پیام، آدرس اشتباه جمع کننده یا رله را مشخص کنید، هیچ پیام خطایی وجود نخواهد داشت - پیام ها حذف می شوند (یا در گزارش شخص دیگری نوشته می شوند؛).

    ابزار محافظت در برابر حلقه زدن انتقال پیام ها توسط رله های پیکربندی نادرست ارائه نشده است.

    RFC 3195 پروتکل جدیدی را روی TCP (syslog-conn، 601) پیشنهاد می‌کند تا از تحویل در ترتیب صحیح اطمینان حاصل کند. اجرا برای من مشخص نیست. ترکیبی عظیم از XML، دستورات به سبک SMTP و کدهای بازگشتی، و سرصفحه‌های MIME (BEEP) که در پیام‌های سیستم ثبت استاندارد پیچیده شده‌اند. دو حالت استفاده می شود - RAW (آنالوگ پروتکل UDP فعلی) و COOKED (پیام ها بر اساس فیلدها ساختار می یابند). BEEP امکان احراز هویت، یکپارچگی و محرمانه بودن را فراهم می کند (SASL، TLS).

    پیش نویس RFC علامت syslog ارائه احراز هویت، سفارش، یکپارچگی پیام و تشخیص پیام گمشده را با تولید پیام های ویژه حاوی امضای دیجیتال بلوکی از پیام های قبلی، حفظ پروتکل و فرمت syslog استاندارد و استفاده از UDP پیشنهاد می کند. استفاده شده توسط SHA1، OpenPGP DSA.

    پورت 514 / UDP برای دریافت پیام ها استفاده می شود. همچنین توصیه می شود از پورت منبع 514 برای پیام رسانی استفاده کنید. پیام یک رشته متنی است و نمی تواند بیش از 1024 بایت طول داشته باشد، در غیر این صورت مجاز به کوتاه کردن یا حتی دور انداختن آن است. حتی یک پیام نادرست ارسال شده به پورت 514 باید به عنوان پیام سیستم ثبت در نظر گرفته شود. با این حال، اگر رله پیام را بیشتر ارسال کند، باید هدرهای استاندارد را به آن اضافه کند (در همان زمان، احتمالاً آن را به 1024 بایت کاهش دهد) - USER، NOTICE، زمان محلی آن و نام ساده منبع پیام.

    پیام با یک فیلد PRI آغاز می‌شود که سطح تسهیلات و شدت پیام را رمزگذاری می‌کند. به دنبال آن زمان (TIMESTAMP)، فاصله، نام میزبان یا آدرس IP در نماد اعشاری (HOSTNAME)، فاصله، متن پیام دلخواه (MSG) در US-ASCII (0x20 - 0x7e) قرار می‌گیرد.

    نام میزبان (ساده، نه FQDN!) همانطور که برای تولید کننده پیام شناخته شده است نوشته می شود. اگر دستگاه دارای چندین رابط با آدرس های IP مختلف باشد، می توان از هر یک از آنها به عنوان نام یا آدرس میزبان استفاده کرد.

    متن پیام (MSG) معمولاً حاوی یک برچسب (TAG) است که برنامه یا فرآیندی را که پیام را صادر کرده و متن پیام (CONTENT) را مشخص می کند. برچسب می تواند شامل حروف و اعداد لاتین باشد. ابتدای متن پیام با اولین کاراکتر ویژه مشخص می‌شود، معمولاً یک کولون یا براکت مربع باز. به عنوان مثال، Cisco IOS از یک شماره پیام متوالی و به دنبال آن یک دونقطه به عنوان برچسب استفاده می کند، و یونیکس از یک نام برنامه ساده استفاده می کند (بدنه پیام با شماره فرآیند در براکت ها و دو نقطه شروع می شود).

    syslogdپیام ها را از پورت 514 / UDP و از منابع محلی (سوکت / توسعه / گزارش) دریافت می کند، بسته به منبع پیام ها و سطح شدت آنها را مسیریابی می کند. به شما امکان می دهد پیام ها را به گزارش خروجی، خروجی به کنسول، به ترمینال، ارسال به سرور دیگری ارسال کنید. یک منبع اضافی از نوع MARK معرفی شده است (علامت های معمولی، اطلاعات)

    هر خط از گزارش شامل یک رکورد پیام واحد است که شامل فیلدهایی است که با فاصله از هم جدا شده اند:

    • تاریخ در قالب متن استاندارد (فیلد TIMESTAMP از پیام syslog)
    • نام میزبان (fqdn یا مختصر، فیلد HOSTNAME از پیام syslog)
    • متن پیام (فیلدهای TAG و CONTENT از پیام syslog)

    پارامترهای راه اندازی:

    • اضافی-گوش دادن-سوکت (برای دیمون هایی که chroot انجام می دهند مفید است؛ ممکن است چندین وجود داشته باشد)
    • (حالت اشکال زدایی)
    • پیکربندی-فایل-نام (پیش فرض، /etc/syslog.conf)
    • -h(رفتار معمول را تغییر دهید که به موجب آن پیام های دریافت شده از میزبان های راه دور برای ارسال به میزبان راه دور ارسال نمی شوند تا از حلقه زدن جلوگیری شود)
    • فهرست میزبان (فهرست میزبان هایی که نام آنها نباید به عنوان FQDN نوشته شود، با دو نقطه از هم جدا شده اند)
    • -m دقایق (فاصله برای ضبط های موقت معمولی؛ به طور پیش فرض - 20؛ اگر 0 است، اصلاً انجام ندهید)
    • -n
    • گوش دادن-سوکت (پیش فرض: / توسعه دهنده / ورود به سیستم)
    • -r(اجازه دریافت پیام از هاست های راه دور؛ فایروال باید کمی باز باشد؛ syslog برای 514 / udp باید در / غیره / سرویس ها تعریف شود)
    • -s فهرست دامنه (نام دامنه های مشخص شده را از نام هاست جدا کنید؛ با دو نقطه از هم جدا شوند؛ به طور پیش فرض دامنه ای که با دامنه سرور syslog مطابقت دارد کوتاه شده است)
    • -v
    • -ایکس(منع تعیین نام میزبان با آدرس آن، جلوگیری از بن بست هنگام کار بر روی همان هاست با سرور DNS)

    فایل های استفاده شده:

    • /etc/syslog.conf- فایل پیکربندی (در هنگام راه اندازی بر اساس پارامتر تغییر می کند )
    • / توسعه دهنده / ورود به سیستم- سوکتی که پیام های محلی از آن خوانده می شود (در هنگام راه اندازی بر اساس پارامتر تغییر می کند )
    • /var/run/syslogd.pid- شناسه فرآیند

    واکنش به سیگنال ها:

    • SIGHUP - راه اندازی مجدد (همه فایل ها را می بندد، فایل پیکربندی را دوباره می خواند)
    • SIGTERM - خاموش شدن
    • SIGINT، SIGQUIT - اگر اشکال زدایی غیرفعال است، خارج شوید
    • SIGUSR1 - فعال / غیرفعال کردن اشکال زدایی (فقط هنگام استفاده از سوئیچ -d)

    به صورت روت اجرا می شود. مجوزهای فایل را تغییر نمی دهد. اگر مجبور به ایجاد یک فایل شود، این کار را با مجوزهای 644 انجام می دهد. اگر لازم است دسترسی به گزارش را محدود کنید، فایل مربوطه باید به صورت دستی ایجاد شود (یا مجوزها را تغییر دهید). مشکلات خاصی ایجاد می کند logrotate.

    این مجموعه ای از قوانین مسیریابی پیام است. هر قانون شامل یک انتخابگر و عمل است که با زبانه ها (Solaris 5 در سیستم های قدیمی تر) یا فاصله ها (لینوکس) از هم جدا شده اند. پس از دریافت پیامی برای نوشتن در گزارش (از klogd، از یک برنامه محلی یا راه دور)، syslogd بررسی می کند که آیا پیام با الگوی تعیین شده توسط انتخابگر مطابقت دارد یا خیر. در صورت وجود، عمل مشخص شده در قانون انجام می شود. برای یک پیام m. تعداد دلخواه از اقدامات انجام شده است (یعنی پردازش پیام در اولین موفقیت متوقف نمی شود).

    انتخابگر دارای دو بخش است که با یک نقطه از هم جدا می شوند: منبع پیام و شدت. حروف بزرگ و کوچک یکی هستند. همچنین می توانید از اعداد استفاده کنید (به /usr/include/syslog.h مراجعه کنید). علاوه بر منابع تعریف شده در syslog.3 می توانید مشخص کنید علامت گذاری(مهر زمانی معمولی) امنیت(مترادف منسوخ شده برای اعتبار). علاوه بر سطوح شدت تعریف شده در syslog.h، می توانید استفاده کنید هشدار دهد(مترادف برای هشدار), خطا(مترادف برای اشتباه کن), وحشت(مترادف برای ظهور کند). پیام هایی با سطحی برابر یا بالاتر از سطح مشخص شده در انتخابگر و منبعی برابر با سطح مشخص شده در انتخابگر معتبر تلقی می شوند. یک ستاره قبل از یک نقطه مربوط به هر منبع، بعد از یک نقطه - به هر سطح. کلمه هیچ یکبعد از نقطه - هیچ سطحی برای منبع داده شده وجود ندارد. می توانید چندین منبع را در یک انتخابگر مشخص کنید (با کاما از هم جدا شده اند). انتخابگرهای چندگانه را می توان در یک خط مشخص کرد. معناشناسی واضح نیست: اگر از انتخابگرهای مثبت استفاده می کنید، منطقی است یااگر منفی ( هیچ یکو یک علامت تعجب)، سپس منطقی و.

    در syslogd جدید (لینوکس)، سطح می تواند با علامت مساوی قبل از آن باشد - فقط پیام هایی با سطح مشخص شده (اما نه بالاترین) با انتخابگر مطابقت دارند. علامت تعجب - پیام هایی با سطح مساوی یا بزرگتر مطابقت ندارند. علامت تعجب و مساوی با پیام های دارای سطح برابر با سطح مشخص شده مطابقت نخواهد داشت.

    به عنوان یک اقدام، می توانید مشخص کنید:

    • نام فایل معمولی (مسیر کامل از ریشه)، منهای جلوی نام، همگام سازی رکورد را غیرفعال می کند
    • کانال های نامگذاری شده - fifo (یک خط عمودی در مقابل نام قرار می گیرد)، خود کانال باید باشد قبل از شروع syslogd با دستور mkfifo ایجاد شده است
    • ترمینال یا کنسول
    • @hostname (ارسال پیام برای ثبت از راه دور)
    • لیستی از کاربران (با کاما از هم جدا شده اند) که پیام به پایانه های آنها ارسال می شود
    • یک ستاره برای ارسال پیام به تمام پایانه ها (دیوار)

    هنگام تجزیه یک فایل پیکربندی syslogdآدرس را مقایسه می کند لگوست(تعریف شده در / etc / host، نه از طریق DNS) با آدرس رایانه شما و در صورت مطابقت، متغیر را تعریف می کند. LOGHOST... سپس syslog.conf از طریق پردازنده ماکرو m4 (1) عبور داده می شود. اساساً از این مورد استفاده می شود تا بتوان از همان فایل پیکربندی روی هاست های کلاینت و سرور (از دیدگاه syslog) استفاده کرد.

    مراحل شروع و توقف: /etc/init.d/syslog(پیوندهای آن از دایرکتوری های /etc/rc?.d). شماره فرآیند در ذخیره می شود /etc/syslog.pid.

    klogd پیام‌های هسته را می‌خواند (از طریق / proc / kmsg یا تماس‌های سیستم)، سطح را تعیین می‌کند، آدرس‌های دستور را به نام برنامه‌ها ترجمه می‌کند و پیامی را به syslogd می‌فرستد.

    پارامترهای راه اندازی:

    • سطح -c(پیام های این سطح و کمتر جدی به syslog ارسال می شود و پیام های جدی تر به کنسول خروجی می شود؛ به طور پیش فرض - 7؛ 0 نمی تواند مشخص شود)
    • (حالت اشکال زدایی)
    • نام فایل (به جای syslog به فایل مشخص شده وارد شوید)
    • -من(نمادهای بارگذاری مجدد ماژول در klogd از قبل در حال اجرا، باید هر بار که یک ماژول بارگیری یا تخلیه می شود استفاده شود؛ امیدواریم نسخه های فعلی insmod، rmmod و modprobe خودشان این کار را انجام دهند)
    • -من(بارگذاری مجدد نمادهای هسته و ماژول در klogd از قبل در حال اجرا)
    • -k نام فایل (از فایل مشخص شده به عنوان جدول نماد هسته استفاده کنید /boot/System.map)
    • -n(به پس‌زمینه نروید، لازم است از ابتدا اجرا شود)
    • -o(حالت یکبار مصرف - تمام پیام های انباشته شده در بافر هسته را وارد کنید و از آن خارج شوید)
    • (در هر صورت، جدول نماد ماژول را در زمان ترجمه آدرس بارگیری مجدد کنید - ممکن است هسته نتواند این کار را انجام دهد)
    • -s(فقط از تماس های سیستمی استفاده کنید و برای دریافت پیام های اصلی به آدرس / proc / kmsg نروید)
    • -v(نمایش نسخه و پایان)
    • -ایکس(آدرس را به نام تبدیل نکنید)
    • -2 (پیام های خرابی هسته - اوه! - دو بار صادر می شود: قبل از تبدیل آدرس ها به نام - برای ksymoops - و بعد از آن)

    سطوح پیام هسته (تعیین شده توسط تعداد در براکت های زاویه و تبدیل به شدت سیستم ثبت، بدون تغییر در خروجی فایل):

    • KERN_EMERG - 0 (سیستم غیرقابل استفاده است)
    • KERN_ALERT - 1 (اقدامی باید فوراً انجام شود)
    • KERN_CRIT - 2 (شرایط بحرانی)
    • KERN_ERR - 3 (شرایط خطا)
    • KERN_WARNING - 4 (شرایط هشدار)
    • KERN_NOTICE - 5 (شرایط عادی اما قابل توجه)
    • KERN_INFO - 6 (اطلاعاتی)
    • KERN_DEBUG - 7 (پیام های سطح اشکال زدایی)

    واکنش به سیگنال ها:

    • SIGINT، SIGKILL، SIGTERM و SIGHUP - خاموش شدن
    • SIGTSTP - ورود به سیستم را متوقف کنید
    • SIGCONT - رزومه، احتمالا انتخاب دیگری
    • منبع پیام ها (/ proc / kmsg یا تماس های سیستمی)
    • SIGUSR1 - بارگذاری مجدد نمادهای ماژول ها
    • SIGUSR2 - نمادهای هسته و ماژول را دوباره بارگیری کنید

    شماره فرآیند در ذخیره می شود /var/run/klogd.pid.

    شروع ورود به سیستم: openlog- پیشوند استاندارد اضافه شده به همه پیام های بعدی نشان داده شده است (معمولاً نام برنامه، شماره فرآیند در براکت های مربع و دو نقطه). منبع و گزینه ها کلکسیون- پایان ورود به سیستم. syslog- logging (منبع، شدت و قالب رشته را مانند printf مشخص می کند).

    logrotate(نسخه 3.2-1 / 3.3.2-1 / 3.5.9) - مبارزه با سیاهههای مربوط به رشد: چرخش (نسخه سازی)، فشرده سازی، حذف و ارسال. روزانه توسط کرون اجرا می شود ( /etc/cron.daily/logrotate) و به شما امکان می دهد گزارش ها را در صورت تجاوز از اندازه مشخص شده یا در بازه زمانی مشخص، پردازش کنید. به شما امکان می‌دهد نه تنها گزارش‌های ثبت سیستم، بلکه هر برنامه دیگری را نیز پردازش کنید. مولفه های:

    • [-d](حالت اشکال زدایی، هیچ تغییر واقعی ایجاد نمی شود)
    • [-f](تغییرات ایجاد کنید حتی اگر logrotate نیازی به آن نبیند - در صورت تغییر در لیست گزارش های پردازش شده استفاده می شود)
    • [-s نام فایل State ] (وضعیت فعلی گزارش ها در این فایل بین اجراها، به طور پیش فرض ذخیره می شود - /var/lib/logrotate.status)
    • نام های پیکربندی (نام ها با فاصله از هم جدا شده اند؛ ترتیب مهم است؛ اگر نام دایرکتوری مشخص شده باشد، هر فایل موجود در آن یک فایل پیکربندی در نظر گرفته می شود؛ RH از یک فایل استفاده می کند. /etc/logrotate.confو دایرکتوری /etc/logrotate.d)

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

    مولفه های:

    • فشرده کردن | بدون فشرده سازی(نسخه های قدیمی تر با gzip فشرده یا فشرده نشده اند)
    • فشرده سازی cmd(برنامه فشرده سازی، gzip را به طور پیش فرض تنظیم می کند)
    • از فشرده سازی cmd(برنامه رفع فشار را به طور پیش فرض تنظیم می کند - ungzip)
    • متن فشرده(پسوند فایل های فشرده را تنظیم می کند)
    • فشرده سازی ها(پارامترهای برنامه فشرده سازی را تنظیم می کند؛ پیش فرض "-9" است، یعنی حداکثر فشرده سازی برای gzip)
    • کپی کوتاه کردن | nocopytruncate(معمولاً نسخه قدیمی تغییر نام داده و نسخه جدیدی از گزارش ایجاد می‌شود؛ زمانی که این پارامتر تنظیم می‌شود، logrotate گزارش را در یک فایل جدید کپی می‌کند و سپس فایل قبلی را کوتاه می‌کند؛ اگر برنامه ایجاد کننده گزارش نتواند آن را ببندد استفاده می‌شود؛ رکوردهای ایجاد شده بین کپی کردن و کوتاه کردن از بین رفته است. اما اگر برنامه‌ای که لاگ را ایجاد می‌کند، به جای حالت افزودن، به سادگی با استفاده از یک اشاره‌گر داخلی روی یک فایل بنویسد، آیا کمکی می‌کند؟)
    • ايجاد كردن [ حقوق دسترسی مالک گروه] | ایجاد نمی کند(بلافاصله پس از تغییر نام نسخه قدیمی مجله و قبل از تماس پس چرخشیک گزارش جدید با ویژگی های مشخص شده ایجاد می شود - مجوزها مانند chmod.2 به صورت octal تنظیم می شوند. اگر ویژگی‌ها مشخص نشده باشند، از لاگ قدیمی گرفته می‌شوند)
    • روزانه(تغییر نسخه در سری روزانه اتفاق می افتد)
    • تأخیر فشرده سازی | فشرده سازی گره(بعضی از برنامه ها فورا لاگ را نمی بندند، در این صورت فشرده سازی باید به چرخه بعدی موکول شود)
    • خطاها پست الکترونیک (برای چه کسی گزارش اشکال ارسال شود)
    • افزونه پسوند (پسوند اضافه شده به نام فایل ها را هنگام چرخش قبل از پسوند فشرده سازی تنظیم می کند)
    • خالی | اطلاع رسانی(نسخه ها را تغییر دهید حتی اگر فایل خالی باشد؛ این پیش فرض است)
    • عبارتند از نام فایل | فهرست-نام (به صورت متنی یک فایل یا همه فایل‌ها را از دایرکتوری مشخص شده جایگزین کنید؛ زیرشاخه‌ها، فایل‌های خاص و فایل‌هایی با پسوندهای فهرست موارد استثنا شامل نمی‌شوند؛ نمی‌توانند در یک بخش استفاده شوند)
    • پست الکترونیکی آدرس | nomail(زمانی که تغییر نسخه باعث می شود که لاگ قدیمی حذف شود، سپس آن را به آدرس مشخص شده ارسال کنید)
    • پست اول(نسخه حذف شده ژورنال را ارسال نکنید، بلکه نسخه اول را ارسال کنید)
    • پست الکترونیکی(نسخه حذف شده گزارش را بفرستید؛ این پیش فرض است)
    • missingok | nomissingok(در صورت عدم وجود گزارش از ارسال پیام خطا خودداری کنید)
    • ماهانه(تغییر نسخه هر ماه اتفاق می افتد)
    • olddir فهرست راهنما | noolddir(در طول تغییر نسخه، گزارش به دایرکتوری مشخص شده منتقل می شود؛ باید در همان دستگاه فیزیکی باشد)
    • پس چرخش پایان نامهبه عنوان دستورات پوسته پس از فرآیند ارتقا اجرا می شوند)
    • قبل از چرخش(همه خطوط بعدی تا خط پایان نامهقبل از فرآیند ارتقا اجرا می شوند)
    • چرخاندن عدد (چند نسخه قدیمی نگه دارید؛ اگر 0 باشد، هیچ کدام)
    • اندازه بایت (تغییر نسخه در صورتی رخ می دهد که اندازه گزارش از تعداد مشخص شده بیشتر باشد؛ می توانید از پسوندهای "k" - کیلوبایت - و "M" - مگابایت استفاده کنید)
    • اسکریپت های مشترک | nosharedscripts(اجرای دستورات قبل از چرخشو پس چرخشفقط یک بار برای همه فایل های توضیح داده شده در بخش)
    • تابوکست [+ ] پسوند-لیست (مشخص کردن لیستی از پسوندهای استثنا برای عبارتند از; اگر علامت مثبت مشخص شده باشد، افزودن، در غیر این صورت جایگزینی. پیش‌فرض‌ها: rpmorig، .rpmsave، .rpmnew، "، v"، .swp و "~")
    • هفتگی(تغییر نسخه هر هفته اتفاق می افتد)

    در تحویل RH /etc/logrotate.confپارامترها و پارامترهای جهانی را برای / var / log / wtmp و / var / log / lastlog توصیف می کند و به دایرکتوری اشاره می کند. /etc/logrotate.d، که در آن هر بسته پارامترهای محلی را برای گزارش های خود می نویسد.

    logwatch چارچوبی برای نوشتن برنامه ها (به نام فیلتر) برای استخراج اطلاعات مفید از لاگ های متعدد، بزرگ و متنوع (نه فقط syslog) است. "بسته" حاوی چندین فیلتر است که برای لینوکس Red Hat طراحی شده است (نوعی نسخه قدیمی، زیرا inetd به جای xinetd ذکر شده است)، اما شما باید خودتان آنها را برای یک موقعیت خاص تطبیق دهید. آخرین تغییر توسط نویسنده در سپتامبر 2000 انجام شد، بنابراین نیازی به انتظار برای توسعه بیشتر نیست.

    فیلترها را می توان به هر زبان برنامه نویسی نوشت، اما نویسنده بسته perl را ترجیح می دهد. فیلترها باید طوری نوشته شوند که داده ها را از stdin بخوانند و نتیجه را به stdout ارسال کنند. قبل از فراخوانی فیلتر، متغیرهای محیط تنظیم می‌شوند: LOGWATCH_DATE_RANGE، LOGWATCH_DETAIL_LEVEL، LOGWATCH_TEMP_DIR، LOGWATCH_DEBUG. برنامه اصلی نیز به زبان پرل نوشته شده است: /etc/log.d/scripts/logwatch.pl(/etc/log.d/logwatch، / usr / sbin / logwatch و /etc/cron.daily/00-logwatch پیوندهای نمادین به آن هستند).

    فهرست راهنما /etc/log.d/conf/logfiles/حاوی فایل های پیکربندی گروه های گزارش است که سوابق سرویس های نگهداری شده در آنها ذخیره می شود. هر گروه در یک فایل جداگانه توضیح داده شده است اسم گروه.conf، که در آن تنظیم شده است:

    • LogFile = نام فایل حاوی لاگ یا الگوی نام. چندین نام یا الگو را می توان مشخص کرد. نام های m. نسبت به LogDir
    • Archive = نام فایل ایجاد شده توسط logrotate نسخه بایگانی شده لاگ یا یک الگوی نامگذاری. چندین نام یا الگو را می توان مشخص کرد. نام های m. نسبت به LogDir
    • نام فیلترها ( فقط یک بار، اگرچه دیگری نشان داده شده است!) از جانب /etc/log.d/scripts/shared/مانند
      *فیلتر-نام = مولفه های به عنوان مثال، برای فیلتر کردن گزارش بر اساس تاریخ، اگر در قالب استاندارد syslog نوشته شده است، از خط استفاده کنید:
      * ApplyStdDate =

    فهرست راهنما /etc/log.d/conf/services/حاوی فایل های پیکربندی برای سرویس هایی است که logwatch ورودی های گزارش آنها را پردازش می کند. هر سرویس در یک فایل جداگانه توضیح داده شده است نام سرویس.conf، که در آن تنظیم شده است:

    • LogFile = نام گروه ثبت نام
    • فیلتر نام از /etc/log.d/scripts/shared/مانند
      *فیلتر-نام = مولفه های قبل از فیلتر سرویس
    • $محیط-متغیر-نام = معنی

    فهرست راهنما /etc/log.d/scripts/logfiles/حاوی فیلترهایی برای پردازش گروه‌های گزارش است: هنگام پردازش گروهی از گزارش‌ها، تمام فایل‌های موجود در فهرست /etc/log.d/scripts/logfiles/ اسم گروه به عنوان فیلتر استفاده می شود

    فهرست راهنما /etc/log.d/scripts/services/حاوی فیلترهایی برای پردازش سوابق خدمات خاص است.

    فهرست راهنما /etc/log.d/scripts/shared/حاوی فیلترهای عمومی مورد استفاده در فایل های پیکربندی گروه ورود به سیستم:

    • applicationstddate - اگر در قالب syslog نوشته شده باشد، گزارش را بر اساس تاریخ مورد نیاز فیلتر می کند (اینجا و در فیلترهای خصوصی بر اساس تاریخ، LANG = قبل از فراخوانی تاریخ را وارد کنید، در غیر این صورت Mar به هیچ وجه با Mar منطبق نیست؛)
    • Expandrepeat - خطوط "آخرین پیام تکرار شده" را به تعداد متناظر خطوط پیام از خط قبلی تبدیل می کند.
    • onlycontains - فقط خطوط گزارشی را که حاوی رشته مشخص شده هستند باقی می گذارد (من نقل قول ها را در اطراف "$ *" قرار دادم)
    • onlyservice - خطوط مربوط به سرویس مشخص شده را از log در قالب syslog استخراج می کند (نام سرویس به عنوان یک پارامتر ارسال می شود)
    • حذف - فقط خطوط ورود به سیستم را با فرمت syslog که شامل خط مشخص شده نیستند ( من نقل قول ها را در اطراف "$ *" قرار دادم و remove1، remove2، و غیره را انجام دادم. از آنجایی که متوجه نشدم چگونه چندین زیرالگو برای egrep در یک خط مشخص کنم; به هر حال، پارامترها در پوسته جایگزین می شوند، بنابراین از کاراکترهای ویژه نیز نمی توان استفاده کرد)
    • removeheaders - حذف فیلدهای استاندارد (تاریخ، زمان، نام میزبان، برچسب سرویس و شماره فرآیند)
    • removeservice - خطوطی را از ورود به سیستم در قالب syslog استخراج می کند که به سرویس مشخص شده مرتبط نیستند (نام سرویس به عنوان یک پارامتر ارسال می شود)

    پارامترهای پیش‌فرض در فایل /etc/log.d/conf/logwatch.conf ذخیره می‌شوند (/etc/log.d/logwatch.conf یک پیوند نمادین به آن دارد)، نظراتی که در آنها به شما امکان می‌دهد معنی مولفه های:

    • LogDir - دایرکتوری که نام فایل ها به آن در نظر گرفته می شود
    • MailTo - به چه کسی گزارش ارسال شود
    • چاپ - به جای ارسال یک گزارش از طریق پست، آن را به stdout صادر کنید
    • ذخیره - به جای ارسال گزارش از طریق پست، آن را در فایل مشخص شده ذخیره می کند
    • آرشیو - از نسخه‌های گزارش‌های تولید شده توسط logrotate استفاده کنید
    • محدوده - فاصله زمانی در نظر گرفته شده: همه، امروز، دیروز (روز تقویم دیروز)
    • جزئیات - سطح جزئیات گزارش: از 0 تا 10 یا کم، متوسط، زیاد
    • سرویس - نام همه یا فیلتر از /etc/log.d/scripts/services/ (فیلترهای متعددی را می توان مشخص کرد)
    • LogFile - همه یا نام گروه گزارش (گروه های متعدد را می توان مشخص کرد)

    پارامترهای راه اندازی:

    • --جزئیات مرحله (سطح جزئیات گزارش: بالا، متوسط ​​یا پایین)
    • --ورود به سیستم فایل گروه سیاهههای مربوط (فقط گزارش‌های این گروه را پردازش کنید؛ گروه با یک نام نمادین در فایل پیکربندی مشخص می‌شود؛ چندین گروه را می‌توان مشخص کرد)
    • --سرویس نام سرویس (فقط ورودی‌های مربوط به این سرویس را در گزارش‌ها پردازش کنید؛ سرویس با یک نام نمادین در فایل پیکربندی مشخص می‌شود؛ چندین سرویس را می‌توان مشخص کرد؛ نام همهپردازش تماس‌های سوابق برای همه خدمات)
    • --چاپ(گزارش به stdout)
    • --mailto آدرس (ارسال گزارش به آدرس مشخص شده)
    • --صرفه جویی نام فایل (گزارش را در فایل مشخص شده بنویسید)
    • -- آرشیوها(نه تنها نسخه های فعلی گزارش ها، بلکه نسخه های قدیمی ایجاد شده توسط logrotate را نیز پردازش کنید)
    • --دامنه فاصله زمانی (فقط آن دسته از ورودی‌های گزارش‌ها را پردازش کنید که به بازه زمانی معین مربوط می‌شوند: دیروز, امروز, همه)

    کاربرد اصلی گنجاندن یک فایل 00-logwatch (شروع از "00" برای اجرا قبل از logrotate) در فهرست /etc/cron.daily است که باعث می شود logwatch روزانه با گزینه های پیش فرض اجرا شود.

    متأسفانه همه فیلترها به گونه ای طراحی شده اند که لاگ ها روی همان میزبانی که سرویس در حال اجراست نوشته می شود.

    همه گزارش‌ها در یک کامپیوتر نگهداری می‌شوند (اگر تمایلات پارانوئیدی دارید، می‌توانید گزارش‌ها را همزمان روی دو سرور ضبط کنید).

    مطابقت بین نام رسمی منبع و دستگاه یا برنامه واقعی:

    • local0 - سیسکو
    • local3 - ftp (نام منبع خاصی وجود دارد، اما Solaris 2.5 آن را نمی داند)
    • local4 - برای حسابداری محفوظ است
    • local5 - POP3 / IMAP
    • local6 - tac_plus>

    صفحه ای برای پورت 514 / udp باید روی سرور باز باشد (شما می توانید آدرس های منبع بسته ها را محدود کنید، اما این فقط از تصادف کمک می کند). شروع syslogd (پارامترها در /etc/rc.d/init.d/syslog یا / etc / sysconfig / syslog) باید با کلیدهای "-r -m 0" (و همچنین "-x" اگر همان رایانه است شروع شود. در حال اجرا سرور DNS). klogd را با سوئیچ های "-2 -c 1" شروع کنید. تنظیم Syslog.conf:

    • * .crit - پیام های سطح شدت CRIT و بالاتر باید به پایانه ها ارسال شوند و در یک فایل جداگانه (chmod 600) نوشته شوند، پیام های شما باید به سرور پشتیبان ارسال شود. sendmail پیام های مربوط به مشکلات دریافت نامه را مهم می داند
    • kern - یک فایل کرن برای تمام سطوح پیام ایجاد کنید (chmod 600)
    • نامه - ایجاد یک فایل ایمیل برای پیام های تمام سطوح (بدون همگام سازی)
    • auth، authpriv - ایجاد یک فایل امن برای پیام های تمام سطوح (chmod 600)
    • اخبار - در فهرست اخبار، یک فایل جداگانه برای هر سطح شدت ایجاد کنید (اشکال زدایی بدون همگام سازی)
    • cron - یک فایل cron برای پیام های همه سطوح ایجاد کنید (cron در RH 6.2 و Solaris 2.5 نمی توانند از syslog استفاده کنند)
    • local0 - یک فایل جداگانه برای هر سطح شدت در فهرست سیسکو ایجاد کنید (خطا و زیر بدون همگام سازی)
    • local3 - در فهرست ftp، یک فایل جداگانه برای هر سطح شدت ایجاد کنید (اطلاعات و اشکال زدایی بدون همگام سازی)
    • local5 - فایل imap.log را برای پیام های تمام سطوح ایجاد کنید
    • local6 - یک فایل tac_plus.log برای پیام های تمام سطوح ایجاد کنید
    • local7 - فایل boot.log (پیام هایی هنگام بوت شدن سیستم و شروع یا توقف syslogd و klogd)
    • تمام پیام های سطح INFO و بالاتر که وارد یکی از فایل های تعریف شده در بالا نمی شوند، در فایل پیام ها بنویسید (chmod 600)

    در رایانه های مشتری، syslog را پیکربندی کنید تا همه پیام ها به سرور syslog ارسال شوند، پیام های خطا در / var / log / syslog تکرار شوند، پیام های وضعیت بحرانی به کنسول، پایانه های کاربر کپی شوند. در ماشین‌های لینوکس نیز پیام‌های بوت را به فایل محلی (local7، boot.log) تخلیه می‌کنند. سرور سیستم لاگ پشتیبان باید پیام های مهمی را از شبکه دریافت کند و آنها را در یک فایل بنویسد (حفره در صفحه، سوئیچ راه اندازی "-r").

    logrotate: برای همیشه نگه دارید، نسخه ها را تا حد امکان به ندرت تغییر دهید (ماهانه، به جز squid)، در فهرست های جداگانه (به جز squid) تخلیه کنید و فشرده کنید (در حالت تاخیری، به جز ftpd، linuxconf، sendfax)، خطاها و فایل های حذف شده را برای من ارسال کنید. مطابقت پارامترها برای syslog.

    قرار دادن علامت لوله (|) در مقابل نام فایل به شما امکان استفاده از آن را می دهد fifo (اول وارد - اولین خروج،اولین آمد - اولین بار بیرون آمد) یا لوله به نامبه عنوان یک گیرنده برای پیام ها قبل از شروع (یا راه اندازی مجدد) syslogd، باید با استفاده از دستور mkfifo یک fifo ایجاد کنید. گاهی اوقات fifos برای اهداف اشکال زدایی استفاده می شود.

    ترمینال و کنسول

    ترمینالی مانند / dev / console.

    دستگاه از راه دور

    برای ارسال پیام به میزبان دیگر، قبل از نام میزبان با علامت @ قرار دهید. توجه داشته باشید که پیام ها از میزبان دریافت کننده فوروارد نمی شوند. (برای اینکه این انتساب روی کلاینت و سرور موجود در فایل کار کند / و غیره / خدماتخط باید نوشته شود syslog 514 / udpو پورت UTP 514 باز است)

    لیستی از کاربران

    یک لیست جدا شده با کاما از کاربرانی که پیام‌ها را دریافت می‌کنند (اگر کاربر وارد سیستم شده باشد). این اغلب شامل کاربر ریشه می شود.

    همه کاربران ثبت نام شده

    برای اطلاع همه کاربران ثبت نام شده با دستور دیوار، از علامت ستاره (*) استفاده کنید.

    نمونه ای از بی عارضه syslog.conf:

    # خروجی تمام پیام های هسته به کنسول. # kern * / dev / console # همه گزارش‌ها در سطح اطلاعات یا بالاتر، به جز پیام‌های ایمیل، و # پیام‌های احراز هویت و پیام‌های cron daemon را ثبت نکنید! * .info؛ mail.none؛ authpriv.none؛ cron.none / var / log / messages # پیام‌های حاوی # اطلاعات احراز هویت محرمانه را بدون در نظر گرفتن سطح آنها در یک فایل جداگانه بنویسید. authpriv * / var / log / safe # همه پیام‌های سیستم پستی باید در یک فایل جداگانه نوشته شوند. نامه * - / var / log / maillog # پیام‌های زمان‌بندی گزارش به / var / log / cron cron * / var / log / cron # پیام‌های اضطراری باید فوراً دریافت شوند # همه کاربران سیستم * .emerg * # ذخیره پیام‌ها اخبار مربوط به سطح crit و بالاتر در یک فایل جداگانه. uucp, news.crit / var / log / spooler # پیام های بوت را در boot.log local7 ذخیره کنید * /var/log/boot.log

    مانند بسیاری از فایل های پیکربندی، نحو به شرح زیر است:

    • خطوطی که با # شروع می شوند و خطوط خالی نادیده گرفته می شوند.
    • نماد * می تواند برای نشان دادن همه دسته ها یا همه اولویت ها استفاده شود.
    • کلمه کلیدی ویژه none نشان می دهد که هیچ گزارشی برای این دسته نباید برای این عمل انجام شود.
    • خط فاصله در جلوی نام فایل (مانند / var / log / maillog در این مثال) نشان می دهد که گزارش نباید پس از هر ورودی همگام شود. در صورت خرابی سیستم، ممکن است اطلاعات خود را از دست بدهید، اما غیرفعال کردن همگام سازی عملکرد را بهبود می بخشد.

    در سینتکس فایل کانفیگ، می توانید اولویت را قبل از اولویت قرار دهید امضا کردن!برای نشان دادن اینکه اقدام نباید اعمال شود، از این سطح و بالاتر... به همین ترتیب، اولویت را می توان به علامت =برای نشان دادن اینکه این قانون فقط در آن سطح اعمال می شود، یا != برای نشان دادن اینکه این قانون برای همه سطوح به جز این یکی اعمال می شود. برخی از نمونه ها در زیر نشان داده شده است (مثال های دیگر را می توان در man syslog.conf یافت):

    # ارسال تمام پیام های هسته به / var / log / kernel. # ارسال همه پیام های مهم و بالاتر به دستگاه sysloger راه دور و به کنسول # ارسال همه اطلاعات، اطلاعیه ها و پیام های هشدار به / var / log / kernel-info # kern. * / Var / log / kernel kern.crit @sysloger kern .crit / dev / console kern.info؛ kern.! err / var / log / kernel-info # ارسال همه پیام‌های سیستم ایمیل به جز سطح اطلاعات در / var / log / mail. پست. *؛ پست.! = اطلاعات / var / ورود / نامه

    من سعی کردم کار syslogd را تا حد امکان واضح در نمودار نشان دهم:

    راه اندازی دیمون syslogd

    دیمون ورود به سیستم در مرحله اولیه سازی سیستم با استفاده از یک اسکریپت شروع می شود /etc/rc.d/init.d/syslog، با این حال، برای تنظیم پارامترهای راه اندازی، نیازی به تنظیم این اسکریپت نیست - با شروع نسخه 7.2، گزینه های راه اندازی از یک فایل پیکربندی جداگانه خوانده می شوند. / etc / sysconfig / syslog (/ etc / default / syslogدر دبیان).

    در اینجا برخی از آنها ممکن است گزینه های راه اندازی دیمون syslogd:

    • -a / پوشه / سوکت- تعیین یک سوکت گوش دادن اضافی (فراموش نکنید ابتدا یک سوکت ایجاد کنید)
    • - حالت اشکال زدایی. در این حالت، دیمون به پس‌زمینه نمی‌رود و همه پیام‌ها را به ترمینال فعلی ارسال می‌کند.
    • پیکربندی-فایل-نام... نام یک فایل پیکربندی جایگزین را برای استفاده به جای /etc/syslog.conf پیش‌فرض مشخص می‌کند.
    • -l لیست میزبان- تنظیم لیستی از میزبان هایی که نام آنها نباید با ذکر نام دامنه کامل (FQDN - Full Qwalified Domain Name) ثبت شود.
    • - دقیقه دقیقه- sysklogd که بدون این گزینه راه اندازی می شود، هر 20 دقیقه پیام های دسته علامت (مهر زمانی) را ثبت می کند. با استفاده از گزینه -m می توانید فاصله بین علامت ها را تغییر دهید یا صدور چنین پیام هایی را به طور کامل لغو کنید.
    • سوکت -p- تنظیم یک سوکت یونیکس جایگزین (به جای گوش دادن به طور پیش فرض / توسعه / ورود)؛
    • -r- اجازه دریافت پیام از میزبان های راه دور؛
    • -ایکس- ممنوعیت تعیین نام میزبان با آدرس آن برای جلوگیری از انجماد هنگام کار بر روی همان هاست با سرور DNS.
    • -v- نمایش نسخه و پایان کار

    پس از راه اندازی دیمون syslogd، یک فایل وضعیت تولید می شود / var / lock / subsys / syslogطول صفر و فایل با شناسه فرآیند /var/run/syslogd.pid.

    با استفاده از دستور
    kill -SIGNAL «cat / var / run / syslogd.pid».

    قابل ارسال است به دیمون syslogdیکی از سیگنال های زیر: SIGHUP- راه اندازی مجدد دیو؛ SIGTERM- اتمام کار؛ SIGUSR1- فعال / غیرفعال کردن حالت اشکال زدایی

    در واقع دو دیمون ورود به سیستم در حال اجرا هستند - syslogdو klogd... هر دو دیمون در بسته گنجانده شده است sysklogd.

    دیمون klogdمسئول ثبت وقایع رخ داده در هسته سیستم... نیاز به یک دیمون klogd جداگانه به این دلیل است که هسته نمی تواند از تابع استاندارد syslog استفاده کند. نکته این است که کتابخانه های استاندارد C (شامل کتابخانه ای که تابع syslog را شامل می شود) فقط برای استفاده در نظر گرفته شده است. برنامه های کاربردی معمولی... از آنجایی که کرنل به عملکرد گزارش نیز نیاز دارد، شامل کتابخانه های خود است که در دسترس برنامه ها نیستند. بنابراین، هسته از مکانیسم تولید پیام خود استفاده می کند.

    دیمون klogdبرای سازماندهی پردازش این پیام ها طراحی شده است. اصولاً می تواند این پردازش را کاملاً مستقل و مستقل از syslogd انجام دهد، مثلاً با نوشتن این پیام ها در یک فایل، اما در بیشتر موارد از تنظیمات پیش فرض klogd استفاده می شود که در آن همه پیام های هسته به همان syslogd ارسال می شوند. اهریمن، دیو.

    چرخش خودکار (به روز رسانی فایل های کامل) و بایگانی لاگ ها

    با گذشت زمان، فایل log تمایل به رشد دارد، به خصوص با کار فشرده هر سرویس. بر این اساس، شما باید بتوانید اندازه لاگ ها را کنترل کنید. این کار با دستورات logrotateکه معمولا انجام می شود کرون دیمون... در مقالات بعدی در مورد کار cron صحبت خواهم کرد. هدف اصلی دستورات logrotateتهیه نسخه پشتیبان از گزارش‌ها و ایجاد گزارش‌های جدید تمیز است. چندین نسل از گزارش‌ها حفظ می‌شوند، و زمانی که آخرین گزارش نسل به تاریخ انقضا برسد، می‌توان آن را بایگانی (فشرده) کرد. نتیجه را می توان از طریق پست، به عنوان مثال، برای مسئول نگهداری آرشیو ارسال کرد.

    برای تعیین ترتیب چرخش و بایگانی لاگ ها استفاده کنید فایل پیکربندی /etc/logrotate.conf ... برای مجلات مختلف، می توانید فرکانس متفاوتی را تنظیم کنید، به عنوان مثال، روزانه، هفتگی یا ماهانه، علاوه بر این، می توانید تعداد نسل های انباشته شده را تنظیم کنید و همچنین مشخص کنید که آیا نسخه های آرشیو برای مسئول بایگانی ارسال می شود یا خیر. و اگر چنین است، چه زمانی. در ذیل نشان داده شده است به عنوان مثال فایل /etc/logrotate.conf:

    # پارامترهای "پیش‌فرض" ابتدا تنظیم می‌شوند (گزینه‌های جهانی) # به‌روزرسانی فایل‌های گزارش هفتگی هفتگی # نگه داشتن آرشیو گزارش‌ها برای 4 هفته گذشته چرخش 4 # ایجاد یک فایل جدید (خالی) پس از چرخش (به‌روزرسانی) ایجاد # بدون نظر می‌خواهید فایل‌های ذخیره‌شده فشرده شوند #compress # فعال کردن تنظیمات چرخش از دایرکتوری مشخص شده عبارتند از /etc/logrotate.d # ذخیره نکنید wtmp یا btmp - تنظیمات چرخش داده‌های log به شرح زیر است: / var / log / wtmp (missingok ایجاد ماهانه 0664 root utmp rotate 1) / var / log / btmp (missingok ماهانه ایجاد 0664 root utmp rotate 1) # گزارش سیستم خاص را می توان در زیر پیکربندی کرد

    گزینه های جهانی در ابتدا قرار می گیرند فایل logrotate.conf... اگر چیز خاصی در جای دیگر مشخص نشده باشد به طور پیش فرض استفاده می شوند. در مثال، چرخش مجلات رخ می دهد هفتگیو نسخه های پشتیبان برای نگهداری می شوند چهارهفته ها به محض چرخش ژورنال، یک مجله جدید به طور خودکار به جای ژورنال قدیمی ایجاد می شود. فایل Logrotate.confممکن است حاوی مشخصات فایل های دیگر باشد. بنابراین، شامل تمام فایل های دایرکتوری می شود /etc/logrotate.d.

    این مثال همچنین حاوی قوانین خاصی برای / var / log / wtmpو / var / log / btmp(ذخیره اطلاعات مربوط به تلاش های موفق و ناموفق برای ورود به سیستم)، که به صورت ماهانه چرخش می شوند. اگر فایل ها از دست رفته باشند، هیچ پیام خطایی نمایش داده نمی شود. یک فایل جدید ایجاد می شود و تنها یک نسخه پشتیبان ذخیره می شود.

    در این مثال زمانی که نسخه پشتیبان به آخرین نسل می رسد، حذف می شود زیرا تعریف نشده است که با آن چه باید کرد.

    پشتیبان‌گیری از لاگهمچنین می‌توان زمانی که لاگ‌ها به اندازه معینی رسیدند، و اسکریپت‌ها را می‌توان از مجموعه‌ای از دستورات تولید کرد تا قبل یا بعد از عملیات پشتیبان‌گیری اجرا شوند. مثال:

    / var / log / پیام ها (5 نامه را بچرخانید [ایمیل محافظت شده]اندازه 100k postrotate / usr / bin / killall -HUP syslogd endscript)

    در این مثال، چرخش / var / log / پیام هازمانی تولید می شود که به 100 کیلوبایت برسد. پنج نسخه پشتیبان جمع‌آوری می‌شود و زمانی که قدیمی‌ترین نسخه پشتیبان منقضی می‌شود، به آن پست می‌شود [ایمیل محافظت شده]کلمه دستور postrotate یک اسکریپت را قادر می‌سازد تا پس از تکمیل چرخش با ارسال یک سیگنال HUP، دیمون syslogd را مجددا راه‌اندازی کند. کلمه دستور endscript برای خاتمه دادن به اسکریپت و همچنین در صورت موجود بودن اسکریپت prerotate مورد نیاز است. برای اطلاعات بیشتر به صفحات logrotate man مراجعه کنید.

    مولفه هایدر فایل پیکربندی داده شده است logrotate.conf:

    • فشرده کردن| بدون فشرده سازی(نسخه های قدیمی تر با gzip فشرده یا فشرده نشده اند)
    • فشرده سازی cmd(برنامه فشرده سازی، gzip را به طور پیش فرض تنظیم می کند)
    • از فشرده سازی cmd(برنامه رفع فشار را به طور پیش فرض تنظیم می کند - ungzip)
    • متن فشرده(پسوند فایل های فشرده را تنظیم می کند)
    • فشرده سازی ها(پارامترهای برنامه فشرده سازی را تنظیم می کند؛ پیش فرض "-9" است، یعنی حداکثر فشرده سازی برای gzip)
    • کپی کوتاه کردن| nocopytruncate(معمولاً نسخه قدیمی تغییر نام داده و نسخه جدیدی از گزارش ایجاد می‌شود؛ زمانی که این پارامتر تنظیم می‌شود، logrotate گزارش را در یک فایل جدید کپی می‌کند و سپس فایل قبلی را کوتاه می‌کند؛ اگر برنامه ایجاد کننده گزارش نتواند آن را ببندد، استفاده می‌شود؛ رکوردهای ایجاد شده بین کپی کردن و کوتاه کردن از بین می‌رود؛ اما اگر برنامه‌ای که گزارش را ایجاد می‌کند، به جای حالت الحاق، به سادگی با استفاده از یک اشاره‌گر داخلی روی یک فایل بنویسد، آیا کمکی می‌کند؟)
    • ايجاد كردن[گروه مالک مجوز] | ایجاد نمی کند(بلافاصله پس از تغییر نام نسخه قدیمی مجله و قبل از فراخوانی postrotate، یک مجله جدید با ویژگی های مشخص شده ایجاد می شود - مجوزها مانند chmod.2 به صورت octal تنظیم می شوند؛ اگر هیچ مشخصه ای مشخص نشده باشد، از قدیم گرفته می شود. مجله)
    • روزانه(تغییر نسخه در سری روزانه اتفاق می افتد)
    • تأخیر فشرده سازی| فشرده سازی گره(بعضی از برنامه ها فورا لاگ را نمی بندند، در این صورت فشرده سازی باید به چرخه بعدی موکول شود)
    • خطاهاپست الکترونیک(برای چه کسی گزارش اشکال ارسال شود)
    • افزونهپسوند(پسوند اضافه شده به نام فایل ها را هنگام چرخش قبل از پسوند فشرده سازی تنظیم می کند)
    • خالی| اطلاع رسانی(نسخه ها را تغییر دهید حتی اگر فایل خالی باشد؛ این پیش فرض است)
    • عبارتند ازنام فایل| directory-name (به صورت متنی یک فایل یا همه فایل‌ها را از فهرست مشخص شده جایگزین کنید؛ زیرشاخه‌ها، فایل‌های خاص و فایل‌هایی با پسوندهای فهرست موارد استثنا شامل نمی‌شوند؛ نمی‌توانند در یک بخش استفاده شوند)
    • پست الکترونیکیآدرس| nomail(زمانی که تغییر نسخه باعث می شود که لاگ قدیمی حذف شود، سپس آن را به آدرس مشخص شده ارسال کنید)
    • پست اول(نسخه حذف شده ژورنال را ارسال نکنید، بلکه نسخه اول را ارسال کنید)
    • پست الکترونیکی(نسخه حذف شده گزارش را بفرستید؛ این پیش فرض است)
    • missingok| nomissingok(در صورت عدم وجود گزارش از ارسال پیام خطا خودداری کنید)
    • ماهانه(تغییر نسخه هر ماه اتفاق می افتد)
    • olddirفهرست راهنما| noolddir(در طول تغییر نسخه، گزارش به دایرکتوری مشخص شده منتقل می شود؛ باید در همان دستگاه فیزیکی باشد)
    • پس چرخش(همه خطوط بعدی تا خط پایانی به عنوان دستورات پوسته پس از فرآیند تغییر نسخه اجرا می شوند)
    • قبل از چرخش(همه خطوط بعدی تا خط پایانی قبل از فرآیند تغییر نسخه اجرا می شوند)
    • چرخاندنعدد(چند نسخه قدیمی نگه دارید؛ اگر 0 باشد، هیچ کدام)
    • اندازهبایت(تغییر نسخه در صورتی رخ می دهد که اندازه گزارش از تعداد مشخص شده بیشتر باشد؛ می توانید از پسوندهای "k" - کیلوبایت - و "M" - مگابایت استفاده کنید)
    • اسکریپت های مشترک| nosharedscripts(دستورات prerotate و postrotate را فقط یک بار برای تمام فایل های توضیح داده شده در بخش اجرا کنید)
    • تابوکست[+] پسوند-لیست(مشخص کردن لیستی از پسوندهای مستثنی برای include؛ اگر علامت مثبت مشخص شده باشد، پس افزودن، در غیر این صورت جایگزینی؛ به طور پیش فرض: rpmorig.، rpmsave.، rpmnew.، "، v، .swp و "~")
    • هفتگی(تغییر نسخه هر هفته اتفاق می افتد)

    کاوش و نظارت بر سیاهههای مربوط

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

    # کمتر / var / log / پیام ها # grep "ppp" / var / log / messages | tail Dec 17 16:34:25 proxy pppd: اتصال قطع شد. 17 دسامبر 16:34:25 پروکسی pppd: خروج. 17 دسامبر 16:35:57 پروکسی pppd: LCP توسط همتا خاتمه یافت (^ P] kV ^ @

    ممکن است کامپیوتر همیشه کار نکند و مثلاً در شب خاموش شود. بنابراین، رکوردها در / var / log / پیام ها به صورت دوره ای از راه اندازی رایانه تا خاموش شدن ذخیره می شوند، این را می توان از پیام ها مشاهده کرد:

    17 دسامبر 08:32:56 syslog-server syslogd 1.4-0: راه اندازی مجدد. Dec 17 08:32:56 syslog-server syslog: syslogd موفق شد دسامبر 17 08:32:56 syslog-server هسته: klogd 1.4-0، منبع ورود = / proc / kmsg شروع شد. 17 دسامبر 08:32:56 syslog-server syslog: start klogd موفق شد

    Dec 17 08:32:56 syslog-server kernel: Kernel line command: auto BOOT_IMAGE = linux ro root = 303 BOOT_FILE = / boot / vmlinuz-2.4.2-2 Dec 17 08:32:56 syslog-server kernel: Memory: 125652k / 130560k موجود (1365k کد هسته، 4200k رزرو شده، 92k داده، 236k init، 0k بالا)

    همچنین در این فایل می‌توانید اطلاعاتی در مورد حافظه دیسک (شامل اطلاعات هندسه دیسک، ساختار پارتیشن و وقفه‌های استفاده شده)، اطلاعات دستگاه‌های جانبی، شروع خدمات و سرویس‌های فردی، اطلاعات مربوط به اتصال سیستم‌های فایل و پیام‌هایی درباره ورود کاربر به سیستم را بیابید. به عنوان پیام های خطا

    گاهی ممکن است لازم باشد گزارش های سیستم نظارتبه منظور جستجوی رویدادهای جاری به عنوان مثال، می توانید سعی کنید یک رویداد نادر را در لحظه وقوع آن ثبت کنید. در این حالت می توانید از دستور استفاده کنید دمبا گزینه برای ردیابی محتویات syslog. مثال:

    # tail -f / var / log / messages | grep syslog-server Dec 17 16:46:09 syslog-server pppd: pptpd-logwtmp.so ip-up ppp0 maikop 94.77.0.150 Dec 17 16:46:09 syslog-server pppd: اسکریپت /ipppp / و غیره تمام شد (pid 12552)، وضعیت = 0x0 Dec 17 16:46:49 syslog-server pptpd: CTRL: Client 85.175.197.65 اتصال کنترلی آغاز شد 17 دسامبر 16:46:49 syslog-server pptpd: CTRL، شروع به فراخوانی باز کردن GRE) 17 دسامبر 16:46:49 syslog-server pppd: پلاگین /usr/lib/pptpd/pptpd-logwtmp.so بارگیری شد.

    علاوه بر فایل های log مشخص شده در /etc/syslog.conf، فایل های دیگری نیز وجود دارد، به عنوان مثال، فایلی که اطلاعات مربوط به فرآیند بوت سیستم را قبل از شروع syslogd ذخیره می کند و همچنین فایل هایی که فرمت باینری دارند و اطلاعات را ذخیره می کند. به ترتیب در مورد آخرین ورود کاربر ورود، همه ورودهای موفق کاربر، و همه ورود ناموفق کاربر. همچنین دایرکتوری / var / log / می‌تواند حاوی فایل‌های log دیمون‌ها مانند وب سرور یا سرور پراکسی باشد. فرمت این فایل ها شبیه گزارش های syslogd است.

    در نهایت، من می خواهم تاکید کنم که این پروتکل چندان امن نیست، tk. syslog هیچ وسیله ای برای محافظت در برابر جعل پیام ندارد. بدتر از آن، استفاده از UDP به مهاجمان اجازه می دهد تا از طرف هر میزبانی پیام ارسال کنند. شبکه محلی شما باید در برابر دریافت بسته‌هایی با آدرس‌های محلی جعلی (اگرچه این مانع از ارسال پیام‌های جعلی از داخل شبکه محلی شما نمی‌شود) و دریافت بسته‌هایی در خارج از پورت 514 / udp بررسی شود. موارد شناخته شده ای از سرریز دیسک با پیام های نادرست وجود دارد.

    پروتکل syslog و UDP تحویل تضمینی را ارائه نمی دهند (پیام ها می توانند در طول ازدحام شبکه از بین بروند یا رهگیری شوند، پیام های خراب بدون هشدار حذف می شوند)، ترتیب تحویل صحیح (پیام مربوط به پایان فرآیند ممکن است قبل از پیام شروع آن باشد) ، تحویل اولویت.

    پیام‌ها محرمانه نمی‌مانند زیرا به صورت متنی واضح ارسال می‌شوند.

    اگر هنگام پیکربندی مولد پیام، آدرس اشتباه جمع کننده یا رله را مشخص کنید، هیچ پیام خطایی وجود نخواهد داشت - پیام ها حذف می شوند (یا در گزارش شخص دیگری نوشته می شوند).

    چندین پروژه برای بهبود پروتکل syslog پیشنهاد شده است. به عنوان مثال، RFC 3195 یک سیستم گزارش گیری مبتنی بر TCP (syslog-conn) را پیشنهاد می کند تا اطمینان حاصل شود که پیام ها به ترتیب صحیح تحویل داده می شوند. پروژه syslog-sign پیشنهاد می‌کند تا با ایجاد پیام‌های ویژه حاوی امضای دیجیتالی بلوک پیام‌های قبلی، ضمن حفظ پروتکل و فرمت syslog استاندارد و با استفاده از UDP، احراز هویت، سفارش، یکپارچگی پیام و شناسایی پیام‌های مفقود را فراهم کند.

    بیایید خلاصه کنیم:

    لینوکس دارای یک دیمون واحد است که مسئول ثبت رویدادها در سیستم محلی و سیستم های راه دور است. همه رویدادها از سوکت / dev / log، پورت UDP - 514، و همچنین از "helper" - شبح klogd، که پیام‌هایی را از هسته ارسال می‌کند، جمع‌آوری می‌شوند. تمام پیام‌های جمع‌آوری‌شده توسط دیمون syslogd از طریق قوانین موجود در فایل /etc/syslog.conf فیلتر شده و طبق قوانین در مقصدهای مناسب توزیع می‌شوند. فایل های گزارش به صورت دوره ای "قطع" می شوند. فرکانس توسط فایل logrotate.conf و دستور logrotate تعیین می شود که توسط زمانبند سیستم - cron اجرا می شود.

    برای امروز کافی است. امیدوارم همه چیز را تا حد امکان واضح توصیف کرده باشم. با گذشت زمان، مقاله را تکمیل خواهم کرد!

    با احترام، مک سیم!

    سرگی سوپرونوف

    نکات FreeBSD: استفاده از syslog

    - ببخشید رفقا من همه حرکات رو نوشته ام!

    اوستاپ گفت: «دفتر در حال نوشتن است.

    I. Ilf، E. Petrov "12 صندلی".

    ثبت کار هر سیستم و بالاتر از همه سرور یکی از مهم ترین اجزای مدیریت است. در هنگام بروز مشکلاتی در سیستم، ابتدا در فایل های گزارش است که ما به آن نگاه می کنیم. از آنجا ما اطمینان حاصل می کنیم که این یا آن برنامه همانطور که انتظار می رود کار می کند. هنگام توسعه برنامه های کاربردی وب، فایل log به مهم ترین منبع اطلاعات اشکال زدایی تبدیل می شود. ویژگی های دیمون syslog که مسئول ثبت اطلاعات سیستم است، مورد بحث قرار خواهد گرفت.

    syslog چیست

    Syslog یک سرویس متمرکز است که اطلاعات گزارش را از اجزای مختلف سیستم عامل و فرآیندهای کاربر جمع آوری و ثبت می کند. برنامه های شخص ثالث معمولاً می توانند به تنهایی با فایل های گزارش کار کنند، اگرچه بسیاری از آنها را می توان برای کار با دیمون syslogd پیکربندی کرد. از مزایای استفاده از syslog می توان به توانایی کنترل فرآیند جمع آوری اطلاعات لازم با استفاده از یک فایل پیکربندی واحد اشاره کرد که از سازگاری فایل های log دریافتی اطمینان حاصل می کند و در نتیجه مدیریت آنها را ساده می کند.

    سرویس syslog توسط daemon syslogd ارائه می شود که به طور خودکار هنگام راه اندازی سیستم راه اندازی می شود. دائماً در حافظه است و منتظر پیام های سایر فرآیندها است و آنها را مطابق با تنظیمات خود پردازش می کند.

    هر پیام با یک سطح و یک امکانات مشخص می شود. سطح، میزان اهمیت پیام را از نظر عملکرد سیستم مشخص می کند. فایل syslog.h سطوح (اولویت های) زیر را تعریف می کند:

    جدول 1. سطوح پیام

    مرحله

    شرح

    ظهور، وحشت

    حالت پانیک

    هشدار

    شرایطی که نیاز به توجه فوری دارد

    کریت

    شرایط بحرانی

    خطا، خطا

    سایر خطاهای کاری

    هشدار، هشدار

    هشدارها

    اطلاع

    پیام هایی که خطا نیستند اما باید به آنها توجه کرد

    اطلاعات

    پیام های اطلاعاتی (عملکرد عادی)

    اشکال زدایی

    اطلاعات اشکال زدایی

    جدول 1 سطوح پیام را به ترتیب نزولی فهرست می کند. این ترتیب بعداً در بحث نحو فایل پیکربندی مورد نیاز خواهد بود.

    نشانگرهای سطح پیام نوشته شده در یک خط (مثلاً emerg و panic) مترادف هستند و می توان از هر یک از آنها استفاده کرد. با این حال، وحشت، خطا، و هشدار (ذکر شده در جدول دوم) منسوخ شده است و باید در هنگام ویرایش فایل پیکربندی اجتناب شود. به جای آن از emerg، err و warning استفاده کنید.

    منابع احتمالی پیام در جدول 2 فهرست شده است:

    جدول 2. منابع پیام ها

    منبع

    شرح

    هسته

    پیام های هسته

    auth، authpriv

    امنیت

    پیام های امنیتی (به عنوان مثال از یک فایروال)

    کنسول

    پیام‌ها به کنسول (/ dev / console)

    syslog

    پیام های بومی Syslog

    کرون

    پیام های زیرسیستم کرون

    پیام های سرویس زمان

    نوشته ها سرورهای FTP

    چاپ پیام های زیر سیستم

    پست الکترونیکی

    پیام های خدمات پستی

    اخبار

    پیام های سرویس خبری

    uucp

    نوشته ها UUCP

    اهریمن، دیو

    پیام هایی از دیگر شیاطین در حال اجرا در سیستم

    کاربر

    کاربر پیام ها را پردازش می کند

    local0 - local7

    قابل استفاده برای نیازهای مختلف کاربر (گاهی اوقات توسط سیستم نیز استفاده می شود)

    هنگام پیکربندی یک برنامه کاربردی برای کار با سرویس syslog، بررسی کنید که از کدام امکانات استفاده می کند. برخی از برنامه ها به شما این امکان را می دهند که خودتان منبع را مشخص کنید. به عنوان مثال، clamd daemon (فرایند اصلی آنتی ویروس clamav) به طور پیش فرض از local6 استفاده می کند، اما به شما امکان می دهد منبع دیگری را تعیین کنید (پارامتر LogFacility در فایل پیکربندی). در برخی موارد، ترکیب پیام‌های آن با پیام‌های سرویس‌های پستی، با مشخص کردن LOG_MAIL به عنوان منبع، می‌تواند مفید باشد.

    گزینه های راه اندازی دیمون

    لیست کاملی از گزینه های راه اندازی را می توانید در صفحه syslogd man پیدا کنید. در اینجا ما تنها تعدادی از آنها را بررسی می کنیم.

    Syslog می‌تواند پیام‌های دریافتی را در فایل‌های گزارش بنویسد (که معمولاً در فهرست / var / log قرار دارند)، آنها را به کنسول یا یک پایانه کاربر متصل ارسال کند، آنها را به یک میزبان راه دور ارسال کند، یا آنها را به یک ابزار خارجی لوله کند. در حال پردازش.

    برای شبکه، syslog از پورت های 514 (UDP و TCP) استفاده می کند. Syslogd که بدون پارامترهای اضافی راه اندازی شده است، به این پورت ها برای پیام های دریافتی گوش می دهد. سوئیچ -s پیام‌های دریافتی را غیرفعال می‌کند، اما سوکت‌هایی در پورت‌های 514 هنوز برای اتصالات خروجی ایجاد می‌شوند تا syslogd بتواند پیام‌ها را به میزبان‌های راه دور ارسال کند. دوبرابر کردن کلید (-ss) همچنین اتصالات خروجی را رد می کند.

    به طور پیش‌فرض، syslogd با سوئیچ -s شروع می‌شود (به /etc/defaults/rc.conf، پارامتر syslogd_flags مراجعه کنید)، بنابراین اتصالات ورودی رد می‌شوند. اگر می خواهید از سرویس syslog سرور خود برای سرویس دهی به چندین ماشین استفاده کنید، خط زیر را به /etc/rc.conf اضافه کنید:

    syslogd_flags = ””

    این مقدار تنظیم شده در /etc/defaults/rc.conf را لغو می کند تا syslogd بتواند اتصالات ورودی را مدیریت کند. طبیعتاً در این حالت لازم است از سطح امنیتی لازم اطمینان حاصل شود، به استثنای امکان نوشتن هر چیزی توسط هاست های خارجی در لاگ های شما. سوئیچ -a به شما امکان می دهد محدودیت هایی را برای اتصالات ورودی تنظیم کنید (به man syslogd مراجعه کنید). یک فایروال به درستی پیکربندی شده نیز نقش مهمی ایفا می کند.

    سوئیچ مفید دیگر، -l، به شما امکان می دهد تا فایل های سوکت اضافی را که syslogd به آنها گوش می دهد، علاوه بر پیش فرض / var / run / log، مشخص کنید. به عنوان مثال، این سوئیچ مورد نیاز است تا syslog بتواند برنامه های در حال اجرا در یک محیط chroot را مدیریت کند. به طور خاص، این نام از زمان BIND 9 به این صورت است. در FreeBSD 5.3، syslogd با کلیدهای زیر شروع می شود:

    # ps -wax | grep syslog

    321 ?? Ss 0: 01.67 / usr / sbin / syslogd -l / var / run / log -l / var / named / var / run / log -s

    نحو فایل پیکربندی

    ورود به سیستم در فایل /etc/syslog.conf پیکربندی شده است. ناگفته نماند که فقط کاربر root می تواند آن را ویرایش کند. این فایل شامل دو نوع رشته است - بیایید آنها را "فیلترها" و "قوانین" بنامیم.

    رشته فیلتر برنامه یا میزبانی را مشخص می کند که قوانین زیر را برای پیام های ارسالی اعمال کند. فیلتری مانند "! Prog" (یا "#! Prog") نشان می دهد که خطوط زیر به گزارش های تولید شده توسط برنامه prog مشخص شده اشاره دارد. مترادف این ورودی "! + Prog" است. برعکس، خط "! -Prog" به این معنی است که قوانین زیر برای همه پیام ها به جز پیام هایی که از برنامه prog می آیند اعمال می شود. لیست کردن چندین برنامه که با کاما از هم جدا شده اند مجاز است، در حالی که علامت "+" یا "-" برای کل لیست اعمال می شود.

    اگر رشته فیلتر به عنوان "+ hostname" مشخص شود، میزبان مشخص شده به عنوان منبع پیام هایی که باید توسط قوانین بعدی پردازش شوند استفاده می شود. همانطور که در مورد برنامه ها، نماد "-" نشان می دهد که قوانین برای همه پیام ها به جز پیام هایی که از میزبان مشخص شده می آیند اعمال می شود. می توانید لیستی از هاست ها را مشخص کنید که با کاما از هم جدا شده اند.

    کاراکتر "*" مشخص شده به عنوان یک برنامه یا میزبان، فیلتر قبلی تنظیم شده را لغو می کند. یعنی قوانین مشخص شده بعد از چنین خطی برای همه پیام ها اعمال می شود. فیلترهای دارای نام میزبان یا برنامه مستقل از یکدیگر هستند و می توانند همزمان کار کنند. برای مثال:

    # قوانین موجود در اینجا برای همه پیام ها اعمال می شود

    میزبان من

    # قوانین برای همه پیام های my.host اعمال می شود

    متمرکز ساز

    # قوانین برای پیام های لاگر با my.host اعمال می شود (فیلتر میزبان ادامه دارد)

    # قوانین برای پیام های su با my.host اعمال می شود

    # قوانین برای پیام‌های su از هر میزبانی اعمال می‌شود (فیلتر میزبان لغو می‌شود، فیلتر برنامه ادامه می‌یابد)

    # قوانین برای همه پیام ها اعمال می شود (فیلتر برنامه نیز لغو شده است)

    خطوط قوانین به شرح زیر است:

    facility.CMPlevel مقصد

    در اینجا تسهیلات منبع پیام است ("*" مخفف هر منبعی است)، سطح سطح پیام هایی است که مطابق با این قانون پردازش می شوند. کلمه سرویس "none" که به جای سطح مشخص شده است، دستور می دهد پیام ها را از این منبع کاملاً حذف کنید.

    CMP - عملیات مقایسه (نمادهای ">"، "<», «=», «>=», «<=», а также символ отрицания «!»). Если символ сравнения не указан, подразумевается «больше или равно», то есть обрабатываются все сообщения уровня level и выше.

    مقصد مشخص می‌کند که این پیام در کجا ذخیره شود. این می تواند یک فایل گزارش (مسیر کامل نشان داده شده است، که با "/" شروع می شود)، آدرس سرور راه دور (با نماد "@" شروع می شود)، یک نام کاربری (پیام ها به ترمینالی که این کاربر به آن ارسال می شود، ارسال می شود. وصل است). همچنین، پیام را می توان برای پردازش به یک برنامه خارجی ارسال کرد که برای آن از علامت لوله "|" استفاده می شود.

    چند نمونه از قوانین

    تمام پیام های هسته به فایل kern.log ارسال می شود.

    هسته * /var/log/kern.log

    همه پیام های خطا و همچنین پیام های emerg، alert و crit در all-err.log قرار می گیرند. به خط فاصله جلوی نام فایل لاگ توجه کنید. به طور پیش‌فرض، پیام‌ها در حافظه بافر می‌شوند و با پر شدن بافر روی دیسک نوشته می‌شوند. این باعث کاهش بار روی فایل سیستم می شود، اما می تواند باعث از بین رفتن برخی از اطلاعات در هنگام خرابی دستگاه شود. خط فاصله جلوی نام فایل باعث می‌شود که شبح syslogd بلافاصله پیام‌ها را روی دیسک بنویسد.

    * .err - / var / log / all-err.log

    پیام های اشکال زدایی از فرآیندهای کاربر به ترمینالی که کاربر vasya در حال حاضر به آن متصل است، خروجی خواهد شد.

    user.debug vasya

    همه پیام های اخبار و سرویس های ایمیل به پورت 514 دستگاه syslog.host.ru ارسال می شود.

    ایمیل *، اخبار * @ syslog.host.ru

    همه پیام های خدمات چاپ زیر هشدار در فایل مشخص شده قرار می گیرند. همانطور که قبلا گفته شد، پیش فرض بزرگتر یا مساوی با مقایسه است، و! آن را وارونه می کند، و آن را با "کمتر" جایگزین می کند. اگر نیاز به حذف یک سطح خاص دارید، باید از ساختار "! =" استفاده کنید.

    lpr.! هشدار /var/log/printers.log

    پیام‌های سطح اشکال‌زدایی (و فقط پیام‌های اشکال‌زدایی) با سطح تسهیلات 0 و سطح 3 به تمام پایانه‌های متصل خروجی می‌شوند.

    level0، level3. = اشکال زدایی *

    پیام‌های Time Service که بالاتر از حد بحرانی هستند (یعنی emerg و alert) و کمتر یا برابر با اخطار (اخطار، اطلاعات و اشکال‌زدایی) هستند به پایانه‌های ntpuser و root ارسال می‌شوند.

    ntp.> crit،<=notice ntpuser,root

    همه پیام‌های هشدار به جز پیام‌های مربوط به خدمات پستی در فایل warn.log نوشته می‌شوند.

    *. = هشدار، mail.none /var/log/warn.log

    در این حالت، تمام پیام‌های دارای سطح بیشتر یا مساوی با crit برای کاربر root ایمیل می‌شوند.

    * .crit | mail -s "پیام حیاتی" ریشه

    همانطور که می بینید، فرمت فایل پیکربندی اجازه می دهد چندین سطح، منبع و مقصد در یک خط فهرست شوند، که باعث انعطاف پذیری بیشتر پیکربندی می شود. برای اعمال تغییرات پس از ویرایش، باید یک سیگنال HUP به فرآیند syslogd ارسال کنید:

    # kill –HUP «cat / var / run / syslog.pid».

    لازم به ذکر است که اگر این یا آن پیام تحت عملکرد چندین خط در فایل پیکربندی قرار گیرد، مطابق با هر یک از آنها پردازش می شود. مثال:

    نامه * / var / log / maillog

    *. = err /var/log/error.log

    در این حالت، پیام‌های mail.err هم به maillog و هم به error.log می‌روند.

    استراتژی فایل پیکربندی

    در پایان بررسی پرونده پیکربندی، چند کلمه در مورد استراتژی های تدوین آن خواهم گفت. علاوه بر "اگر فقط کار می کند" بسیار محبوب، دو مورد اصلی را می توان متمایز کرد که ما به طور مشروط آنها را "بر اساس منبع" و "بر اساس هدف" می نامیم.

    • اولین استراتژی، که می توان در تعدادی از توزیع های گنو/لینوکس مشاهده کرد، نوشتن یک قانون متفاوت برای هر منبع پیام است (یا گروهی از قوانین اگر قرار است پیام های سطوح مختلف به طور متفاوتی پردازش شوند). مزیت آن سادگی تعیین محل نوشته شدن پیام های سرویس های خاص است.
    • استراتژی «بر اساس مقصد» این است که در صورت امکان، تنها یک خط برای هر «گیرنده» یک پیام، مانند یک فایل، ایجاد شود. این رویکردی است که مخصوصاً توسط FreeBSD اتخاذ شده است. در نتیجه، شما به راحتی می توانید تعیین کنید که چه اطلاعاتی در یک فایل log خاص ثبت شده است، اما، برای مثال، مقصد پیام های هسته باید از کل فایل پیکربندی جمع آوری شود.

    ابزار چوبگیر

    این سیستم شامل یک ابزار لاگر است که به شما امکان می دهد مستقیماً از خط فرمان پیام ها را به سرویس syslog ارسال کنید. استفاده از آن هنگام آزمایش قوانین پیکربندی و همچنین در توسعه اسکریپت ها برای ثبت کار آنها راحت است. مثال ها:

    user $ logger -p user.err "خطا در برنامه کاربر!"

    کاربر $ logger -h syslog.host.ru "تست کنید"

    مثال اول یک پیام کاربر تسهیلات در سطح خطا ارسال می کند که طبق فایل پیکربندی پردازش می شود. فرمان دوم پیامی به میزبان راه دور ارسال می کند، سطح منبع و پیش فرض روی user.notice تنظیم می شود.

    استفاده از مکانیزم چرخش

    مکانیسم ورود به سیستم مورد بحث در بالا هیچ نوع مدیریت فایل لاگ را ارائه نمی دهد. پیام ها به سادگی در آنها طبق قوانین توضیح داده شده در فایل پیکربندی قرار می گیرند. این به این معنی است که فایل های گزارش به طور مداوم رشد می کنند و اگر کاری انجام نشود، دیر یا زود تمام فضای موجود در پارتیشن مربوطه را پر می کنند. برای جلوگیری از این، مکانیسم چرخش استفاده می شود.

    به عنوان مثال، به محض اینکه فایل debug.log از 100 مگابایت بیشتر شود، به debug.log.0 تغییر نام داده و در debug.log.0.bz2 بسته بندی می شود. به جای آن یک debug.log جدید ایجاد می شود. سپس وقتی حجم فایل جدید به 100 مگابایت رسید، debug.log.0.bz2 به debug.log.1.bz2 تغییر نام داده و روال بالا تکرار می شود. سیستم فقط تعداد معینی از فایل های آرشیو را ذخیره می کند و قدیمی ترین آنها را حذف می کند. این چرخش است.

    ابزار Newsyslog

    در FreeBSD، چرخش توسط ابزار newsyslog مدیریت می شود که به طور پیش فرض در ابتدای هر ساعت توسط cron daemon اجرا می شود. با ویرایش فایل / etc / crontab می توانید دوره چرخش را تغییر دهید.

    پارامترهای چرخش مشخص شده در مثال بالا (اندازه فایل، بسته بندی)، و همچنین تعدادی دیگر، در فایل پیکربندی /etc/newsyslog.conf تنظیم شده اند. برای هر فایلی که نیاز به چرخش دارد، شامل یک خط از نه فیلد است: نام فایل، مالک و گروه، حقوق دسترسی، بیشترین تعداد در نام فایل بایگانی، حداکثر اندازه فایل، دوره چرخش، پرچم‌های اضافی و مسیر PID. فایل برنامه برای ارسال سیگنال پس از چرخش و شماره سیگنال ارسالی. (ممکن است نیاز به ارسال سیگنال به یک فرآیند داشته باشید، برای مثال، اگر فرآیند فایل log را همیشه باز نگه دارد؛ در غیر این صورت، توصیفگر فایل استفاده شده با فایل جدید ایجاد شده مطابقت نخواهد داشت.) برخی از فیلدها را می توان حذف کرد. در اینجا دو مثال کامل و معمولی آورده شده است:

    / var / log / ریشه pflog: چرخ 600 3 100 * JB /var/run/pflog.pid 1

    طبق این قانون، فایل pflog باید به محض اینکه حجم آن از 100 مگابایت (فیلد پنجم) فراتر رفت، بدون توجه به زمان ("*" در فیلد ششم) بازنویسی شود. فایل‌های بایگانی دارای نام‌هایی مانند pflog.X.bz2 (pflog.0.bz2، pflog.1.bz2 و غیره) خواهند بود و X نمی‌تواند بیشتر از سه باشد (پارامتر 3 در قسمت چهارم). پرچم J نشان می دهد که فایل بایگانی باید با استفاده از ابزار bzip2 فشرده شود. به لطف پرچم B، پیام‌های سرویس مربوط به چرخش به فایل‌های بایگانی‌شده و تازه ایجاد شده اضافه نمی‌شوند، زیرا فایل به‌عنوان باینری درک می‌شود. فایل جدید ایجاد شده متعلق به کاربر ریشه و گروه چرخ خواهد بود (این قسمت ممکن است حذف شده باشد زیرا این مالک پیش فرض است). مجوزها روی rw ------- (مقدار عددی 600) تنظیم می شوند، به این معنی که فقط مالک می تواند این فایل را بخواند و بنویسد. در نهایت، یک سیگنال 1 (HUP) به فرآیند ارسال می‌شود که PID آن در /var/run/pflog.pid ذخیره می‌شود تا فایل گزارش آن دوباره باز شود.

    / var / log / maillog 640 7 * @ T00 J

    این قانون پارامترهای چرخش را برای فایل maillog مشخص می کند: صرف نظر از اندازه (یک ستاره در قسمت پنجم)، فایل هر شب در ساعت 00:00 بازنویسی می شود (man newsyslog.conf فرمت تعیین زمان را با جزئیات توضیح می دهد) . بایگانی باید بسته بندی شود، 8 آرشیو آخر ذخیره می شود (با اعداد از 0 تا 7 شامل)، فایل جدید ایجاد شده متعلق به کاربر ریشه خواهد بود (مقدار پیش فرض، بنابراین فیلد مالک حذف می شود) و دارای rw است. -r ----- مجوزها.

    می‌توانید از ابزارهای zcat و bzcat (به ترتیب برای gzip و bzip2) برای مشاهده فایل‌های گزارش بسته‌شده استفاده کنید. Midnight Commander به طور خودکار ابزارهای مناسب را فراخوانی می کند.

    پس از ویرایش فایل newsyslog.conf، نیازی به ارسال سیگنال به جایی نیست - دفعه بعد که newsyslog فراخوانی شود، پیکربندی دوباره خوانده می شود.

    توجه داشته باشید که ابزار newsyslog به شبح syslogd متصل نیست. یعنی می توان از آن برای چرخاندن هر فایلی که به آن نیاز دارد استفاده کرد. اگر چرخش برای سیاهه هایی که برنامه به تنهایی نگهداری می کند فعال باشد (مثلاً برای لاگ های clamd یا squid)، سپس به مشخص کردن مالک و حقوق دسترسی توجه ویژه ای داشته باشید. تعیین نادرست آنها می تواند منجر به این واقعیت شود که پس از چرخش برنامه ای که به عنوان یک کاربر غیرمجاز راه اندازی شده است قادر به نوشتن در فایل جدید ایجاد شده نخواهد بود.

    جمع بندی

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