ورود سیستم به لینوکس فایل پیکربندی دیمون syslogd ثبت شبکه

فهرستی از شیاطین رایج یونیکس/لینوکس، در سیستم عامل ویندوز، سرویس هایی نامیده می شوند که می توانند در تغییرات مختلف یونیکس/لینوکس استفاده شوند. نام های شبح یونیکس/لینوکس اغلب با حرف ختم می شوند دبه عنوان مخفف انگلیسی. اهریمن، دیو می‌توانید با استفاده از دستور top یا ps aux بررسی کنید که آیا فرآیند/دیمون در حال اجرا است.

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

فرآیند / دیمون توضیحات فرآیند/شبح
حسابرسی شدauditd یک جزء ممیزی برای سیستم های لینوکس است. یک گزارش حسابرسی روی دیسک را حفظ می کند که با استفاده از دستورات ausearch و aureport قابل مشاهده است. دستور auditctl به شما امکان می دهد قوانین حسابرسی را پیکربندی کنید. علاوه بر این، هنگام راه اندازی، قوانین موجود در فایل /etc/audit.rules بارگذاری می شوند. برخی از پارامترهای خود دیمون را می توان در فایل auditd.conf پیکربندی کرد.
acpidacpid (ACPI event daemon) - یک شبح برای پاسخ دادن به رویدادهای ACPI، به عنوان مثال، پاسخ به فشار دادن دکمه روشن/خاموش یا بستن درب لپ تاپ. مدیریت انرژی و تعامل بین لینوکس و بایوس از طریق ACPI (پیکربندی پیشرفته و رابط قدرت) و APM. حالت‌های "خواب" ACPI: S1 - همه چیز می‌خوابد، CPU در حالت حداقل فعالیت. S3 - "Suspend to RAM" - همه چیز به حالت خواب می رود، CPU خاموش می شود. S4 - "Suspend to Disk" حالت تخلیه روی دیسک ذخیره می شود، سیستم خاموش می شود، پس از روشن شدن سیستم از محل قبلی خود بازیابی می شود. S5 - خاموش شدن نرم افزار. http://acpid.sourceforge.net/
atdصف کار را در (1) اجرا می کند
autofsقالب جدول نصب خودکار نقشه‌های نصب خودکار می‌توانند فایل‌ها یا جداول NIS باشند که توسط جدول اصلی نصب خودکار ارجاع می‌شوند (به auto.master(5) مراجعه کنید). جداول مکان را توصیف می کنند سیستم های فایل، که به طور خودکار در نقاط نصب پایه (تنظیم شده در فایل auto.master) نصب می شوند. این سند فرمت جدول خورشید را توصیف می کند؛ برای سایر قالب ها (به عنوان مثال هزیود) این سند قابل اجرا نیست.

جداول را می توان به سرعت ویرایش کرد - این تغییرات در عملیات بعدی با این جدول در نظر گرفته می شود.اما این در مورد جدول اصلی auto.master صدق نمی کند!

زیستیبرای حل و فصل درخواست های کلاینت NFS در ارتباط با nfsd راه دور کار می کند.
فروشنده گواهیدیمون certmonger گواهی ها را برای انقضا نظارت و بررسی می کند و می تواند به صورت اختیاری گواهی ها را با استفاده از یک CA تمدید کند. می تواند کل فرآیند ثبت نام را از تولید کلید تا ثبت و تمدید مدیریت کند.
cgconfigاین اسکریپت ابزار cgconfigparser را اجرا می کند که سیستم فایل گروه کنترل (cgroup) را تجزیه و پیکربندی می کند. برای تجزیه و تحلیل از فایل پیکربندی /etc/cgconfig.conf و پارامترهای تعریف شده در آن استفاده می شود.
cgredدیمون قوانین cgroup را مدیریت می کند :)
cpufreqاسکریپت ماژول های هسته را برای کنترل فرکانس پردازنده بارگذاری می کند.
cpuspeedفرکانس CPU را برای صرفه جویی در مصرف انرژی تغییر می دهد. بسیاری از لپ تاپ ها و رایانه های شخصی رومیزی مدرن از این فناوری پشتیبانی می کنند. کاربران با پردازنده های Pentium-M، Centrino، AMD PowerNow، Transmetta، Intel SpeedStep، Athlon-64، Athlon-X2، Intel Core 2 می توانند از آن استفاده کنند. به کاربران لپ تاپ توصیه می شود این دیمون را فعال نگه دارند. اگر می خواهید CPU از مقدار فرکانس ثابت استفاده کند، این دیمون را غیرفعال کنید.
crond
فنجانسرور چاپ. مانند دسترسی به چاپگرهای راه دور، دسترسی به چاپگرهای محلی، دسترسی از خارج به چاپگرهای محلی.
dbusسیستم ارتباط بین فرآیندی ( آنالوگ گسترده تر CORBA و DCOP)
dbus-daemonدیمون برای کار با گذرگاه داده
dhcpdDaemon برای تعیین پویا پیکربندی TCP/IP برای مشتریان.
dnsmasqدیمونی که نام های DNS را کش می کند و یک سرور DHCP ارائه می دهد.
earlysyslogاجرای daemon syslog امکان ورود به سیستم را فراهم می کند.
اوایل xdmراه اندازی سرور X
صدادیمون صدا، با پشتیبانی از دسترسی از راه دور به کارت صدا
esdسرور صدا برای مدیر پنجره Enlightenment و محیط GNOME. ESD جریان های صوتی چندین برنامه را که به طور همزمان اجرا می شوند مخلوط می کند و جریان حاصل را به کارت صدا ارسال می کند. متعلق به پکیج esound می باشد.
فامیلFAM ( مانیتور تغییر فایل) - مانیتور تغییر فایل. دیمون FAM توسط محیط های دسکتاپ مانند GNOME، Xfce و KDE برای ردیابی و نمایش تغییرات ایجاد شده در سیستم فایل استفاده می شود. در بسته فام گنجانده شده است. دارای توضیحات در wiki.archlinux.org.
فن کنترلکنترل سرعت چرخش کولر پردازنده. بخشی از lm_sensors.
fbsetاسکریپت مورد نیاز برای کار بافر فریم. عملیات خود را، از جمله بارگذاری ماژول های هسته، پیکربندی می کند.
جشنوارهشیطانی که به برنامه های خواندن متن اجازه کار می دهد.
انگشتییک رابط شبکه برای پروتکل انگشت برای استفاده با فرمان انگشت فراهم می کند.
firstbootاین سرویس فقط مختص فدورا است. پس از نصب فقط یک بار برای نصب پس از نصب (تنظیم رمز عبور ریشه، افزودن کاربران و غیره) اجرا می شود. پس از نصب سیستم غیرفعال می شود.
ftpdسرویس انتقال فایل از طریق پروتکل FTP.
کارکردیکی از اسکریپت های اولیه سازی سیستم Arch Linux. این توابع را توصیف می کند که مقادیر مورد استفاده در هنگام بارگیری در سطح 3 را نادیده می گیرند. اسکریپت تنها در صورتی استفاده می شود که کاربر از سطح اجرا 5 استفاده کند. این بخشی از initscripts است.
gpmسرور ماوس برای کنسول و xterm. موجود در بسته بندی به همین نام.
gpsdرابط برای ارتباط با تجهیزات GPS. اکثر کاربران می توانند آن را خاموش کنند.
هالدمون، هالHAL مخفف Hardware Abstraction Layer می باشد. یک سرویس حیاتی برای جمع آوری اطلاعات در مورد تجهیزات از منابع مختلف. توصیه می شود آن را فعال بگذارید.
مکثاسکریپت خاموش و راه اندازی مجدد
توقف.محلیاسکریپتی که دستورات آن باید قبل از شروع خاموش شدن یا راه اندازی مجدد اجرا شوند.
سالممحدوده دمای عملکرد مادربرد/پردازنده و سرعت خنک کننده را تنظیم می کند. این یکی از اجزای lm_sensors است.
heimdal-kdcمرکز توزیع کلید موجود در بسته heimdal.
httpdدیمون وب سرور آپاچی.
initیک برنامه یونیکس که تمام فرآیندهای دیگر را ایجاد می کند.

به طور پیش فرض، شبح init دارای 7 سطح اجرا است که هر کدام مجموعه ای از خدمات سیستم از پیش تعریف شده را اجرا می کنند.

سطوح اجرا:
0 - خاموش شدن سیستم
1 - حالت عملکرد تک کاربره
2-5 - حالت های عملکرد چند کاربره سیستم

جزئیات بیشتر در مورد سطوح اجرا: کمتر /etc/inittab

inetdدرخواست های شبکه را رصد می کند. اگر درخواست معتبر باشد، یک فرآیند پس‌زمینه برای سرویس دهی به درخواست شروع می‌شود. برخی از سیستم ها از نسخه توسعه یافته استفاده می کنند - xinetd
iptablesفایروال استاندارد در لینوکس به ویژه برای ارتباط مستقیمبه اینترنت (از طریق کابل، DSL، T1). در صورت استفاده از فایروال سخت افزاری (Netgear، Linksys، D-Link و غیره) توصیه نمی شود.
جدول های ip6سرویس iptables با استفاده از پروتکل IPv6 کار می کند. اگر پشتیبانی IPv6 را غیرفعال کرده اید، این سرویس باید غیرفعال شود. در غیر این صورت، توصیه می شود آن را فعال بگذارید.
ایرداIrDA برای پشتیبانی از دستگاه هایی که از طریق مادون قرمز کار می کنند مورد نیاز است ( لپ تاپ، رایانه شخصی، تلفن همراه، ماشین حساب (یادداشت مترجم: ماشین حساب؟ o_O)، و غیره. اکثر کاربران می توانند آن را خاموش کنند.
irexecdشیطان برای مادون قرمز. همراه lirc-utils.
irqbalance, irq_balancerدر سیستم های چند پردازنده ای برای توزیع وقفه ها بین پردازنده ها استفاده می شود. کاربرانی که کامپیوتر/لپ‌تاپ‌های چند پردازنده‌ای ندارند، می‌توانند این دیمون/سرویس را غیرفعال کنند. فعال کردن این سرویس بر روی یک کامپیوتر تک پردازنده هیچ تاثیری نخواهد داشت. در رایانه های جدید با بیش از یک پردازنده (Intel Core 2 Duo، AMD X2)، این سرویس باید فعال باشد.
آیومندیمون مسئول نصب خودکار دستگاه ها در سیستم (سی دی ها، درایوهای USB و غیره) است.
جک، جک-کیت اتصال صوتیسرور صوتی
جکسکپشتیبانی از راه اندازی و اجرای برنامه های کاربردی در جاوا - JAR. در صورت نصب جاوا از Sun در دسترس خواهد بود. این اختیاری است و می توان آن را غیرفعال کرد.
جوی استیکاسکریپتی که ماژول‌های هسته را برای کار کردن جوی استیک بارگذاری می‌کند.
kadmindDaemon برای تعیین حساب هایی که به پایگاه داده Kerberos دسترسی دارند و سطح دسترسی آنها. یکی از اجزای پکیج heimdal است.
kdumpkdump - نمایش داده های ردیابی هسته. این دستور فایل های ردیابی هسته تولید شده با ktrace(1) را در قالب قابل خواندن توسط انسان نمایش می دهد. به طور پیش فرض، فایل ktrace.out در فهرست فعلی نمایش داده می شود.
kbdراه اندازی صفحه کلید در ترمینال مجازی.
kdmKDM ( مدیر نمایش KDE) یکی از برنامه های موجود در بسته kdebase است ( همراه با KDE) که امکان ورود از طریق رابط گرافیکی را فراهم می کند.
kpasswdDaemon برای تغییر رمز عبور در Kerberos. یکی از اجزای پکیج heimdal است.
ksysguarddشبح KDE برای نظارت بر سیستم.
libvirtdدیمون برای مدیریت ماشین‌ها و شبکه‌های مهمان QEMU.
libvirt- مهماناسکریپتی که سیستم عامل مهمان را هنگام خاموش شدن به حالت خواب می فرستد و هنگام بارگذاری آن ها را بیدار می کند.
lircdشبح LIRC سیگنال هایی را که از پورت مادون قرمز می آیند رمزگشایی می کند. همراه lirc-utils.
lircmdدیمون LIRC سیگنال های ماوس را ترجمه می کند. همراه lirc-utils.
lvm2-مانیتوردیمون برای نظارت بر LVM (مدیریت حجم منطقی). توصیه می شود اگر از LVM استفاده می کنید، در غیر این صورت آن را غیرفعال کنید.
lpd"Line Printer Daemon" - این پروتکل برای مدیریت قرقره چاپ استفاده می شود.
خانمدیمون دستگاه های MD (RAID نرم افزاری در لینوکس) را نظارت می کند.
mdmonitor و mdmpdاین دو دیمون در سیستم‌های ذخیره‌سازی با آرایه‌های RAID (آرایه اضافی از دیسک‌های ارزان/مستقل) استفاده می‌شوند. Mdmonitor راه اندازی، توقف و راه اندازی مجدد mdadm (نظارت و مدیریت دستگاه چند مسیره)، یک سرویس نرم افزاری نظارت و مدیریت RAID است. تنها زمانی باید این سرویس را اجرا کنید که سیستم شما دارای دستگاه های RAID باشد.
باس پیامسرویس ارتباط بین پردازشی برای لینوکس. اجزای مهمزیرا به D-BUS متصل است. به شدت توصیه می شود آن را فعال بگذارید.
microcode_ctl، microcode.ctlسرویسی که به شما امکان می دهد سیستم عامل یک پردازنده اینتل (Pentium Pro، PII، Celeron، PIII، Xeon، Pentium 4 و غیره) را به روز کنید. هر بار که دانلود می کنید به روز رسانی ها ثبت می شود. فقط در صورت داشتن پردازنده اینتل باید فعال شود.
mcelog، mcelogdبرای نظارت بر مشکلات سخت افزاری در ساخت های لینوکس 64 بیتی، استفاده از بسته mcelog راحت است که وضعیت MCE (Exception Check Exception) را در CPU های AMD و Intel تجزیه و تحلیل می کند، که می تواند مشکلات حافظه و حافظه پنهان CPU، خطاهای تبادل داده ها را نشان دهد. CPU و چیپست مادربرد.
mpdپخش کننده موسیقی Daemon - پخش کننده موسیقیداشتن معماری سرویس گیرنده-سرور که موسیقی را از یک دایرکتوری مشخص پخش می کند.
چند راههبرای نظارت بر دستگاه های Multi-Path، یعنی درایوهایی که با بیش از یک کنترلر یا روش قابل دسترسی هستند، استفاده می شود.
mysqld، mysqlشبح پایگاه داده MySQL
nfsdفرآیند درخواست اپراتور NFS برای سیستم های مشتری. از لحاظ تاریخی، هر شبح nfsd هر بار یک درخواست را پشتیبانی می کند، بنابراین چندین نسخه راه اندازی می شود.
نت کنسولبه شما امکان می دهد کنسول را از طریق شبکه به دستگاه دیگری صادر کنید. ممکن است به طور پیش فرض غیرفعال باشد.
netfsدر طول بوت، به طور خودکار فایل سیستم های موجود در شبکه را نصب می کند ( NFS، Samba و دیگران). اکثر کاربران دسکتاپ و/یا لپ تاپ می توانند آن را خاموش کنند.
شبکهدیمون مسئول ایجاد و پیکربندی رابط های شبکه محلی (LAN) است.
کنترل از راه دور شبکهمانند مورد قبلی، اما علاوه بر این، رابط های بی سیم را افزایش می دهد
nfs، nfslockاین سرویس ها یک سیستم فایل شبکه استاندارد را برای سیستم عامل های یونیکس/لینوکس و BSD ارائه می دهند. اگر نیاز به باز کردن دسترسی از طریق NFS دارید، آن را فعال بگذارید، در غیر این صورت می توانید آن را خاموش کنید.
nginxnginx یک وب سرور و سرور پروکسی ایمیل است که بر روی سیستم عامل های مشابه یونیکس اجرا می شود.
nmbdسامبا استفاده می شود. سامبا را در زیر ببینید.
nscdدیمون سروری که نام ها و رمزهای عبور استفاده شده توسط سرویس هایی مانند NIS، NIS+، LDAP، hesiod را ذخیره می کند. قابل خاموش شدن است.
nslcdشبح سرویس نام محلی LDAP.
ntpdشبح NTP که همگام سازی زمان را از طریق شبکه مدیریت می کند. xntpd مجهز به نسخه 3 استاندارد NTP است.
ntpdate
oddjobdشبح oddjobd سرویس com.redhat.oddjob را در گذرگاه پیام در سراسر سیستم ارائه می دهد. هر تسهیلاتی که oddjobd فراهم می کند به عنوان یک روش D-Bus جداگانه ارائه می شود.
openntpdسرور و کلاینت برای همگام سازی زمان.
openvpnیک روش امن برای ایجاد VPN ارائه می دهد. برای اطلاعات اضافی OpenVPN را ببینید. در صورت عدم استفاده توسط NetworkManager ممکن است غیرفعال شود.
pcmciaپشتیبانی از کارت های توسعه استاندارد pcmcia را ارائه می دهد. معمولا فقط در لپ تاپ ها استفاده می شود.
pcscdاز کارتخوان ها و کارت های هوشمند پشتیبانی می کند. اگر کارت خوان یا کارت هوشمند ندارید، می توانید این سرویس را خاموش کنید. اغلب در لپ تاپ ها موجود است.
ذخیرهاز دسترسی به پورت های واقعی برای سرویس های مختلف RPC جلوگیری می کند و به برنامه های رزرو شده اولویت می دهد. اطلاعات دقیق تر را می توانید در صفحه مرد portreserve پیدا کنید. توصیه می شود آن را فعال بگذارید.
powerfailاین اسکریپت زمانی اجرا می شود که پیام های UPS شناسایی شوند
پسوندبرنامه مدیریت پست فیکس
pppdدیمون پروتکل نقطه به نقطه
pppاسکریپتی برای کار با دیمون pppd.
psacctفرآیندهای هسته لینوکس را مدیریت می کند. مشغول نظارت است.
هسته های پاکسازیاسکریپت برای حذف خودکارهسته های قدیمی ( در /etc/zypp.conf پیکربندی شده است)
quota_nldسهمیه شبح پیام شبکه
خاماسکریپت ماژول های دستگاه خام را بارگیری می کند.
rdiscشبح کشف دروازه شبکه، rdisc، به عنوان یک کلاینت پروتکل کشف دروازه ICMP عمل می کند. rdisc هنگام بوت فراخوانی می شود تا جداول مسیریابی شبکه را با دروازه های پیش فرض بدست آورد.
تاریخاین سرویس برای همگام سازی کامپیوتر با سرور زمان هنگام بوت شدن مورد نیاز است سیستم عامل. می تواند غیر فعال شود.
restorecondبرای بازیابی زمینه و نظارت بر سیاست SELinux مربوط به فایل ها استفاده می شود. این سرویس مورد نیاز نیست، اما هنگام استفاده از SELinux توصیه می شود.
rngdrngd - بررسی و تغذیه داده های تصادفی از دستگاه سخت افزاری به دستگاه تصادفی هسته. به معنای واقعی کلمه می توان آن را به عنوان یک شیطان ترجمه کرد که داده های تصادفی را از دستگاه های سخت افزاری برای هسته دستگاه های تصادفی بررسی و دریافت می کند - چقدر باهوش است :) ، دیمون تولید کننده اعداد تصادفی ، به زبان روسی شیطان تولید اعداد تصادفی.
rpcbindDaemon برای مدیریت RPC هایی که توسط سرویس های دیگر (مانند NFS یا NIS) استفاده می شوند. شبیه پورت مپ کار می کند. در صورتی که هیچ سرویس دیگری به آن وابسته نباشد، می تواند غیرفعال شود.
rpcgssd، rpcidmapd، rpcsvcgssdNFS v4 (سیستم فایل شبکه) استفاده می شود. اگر به NFS v4 نیاز ندارید غیرفعال کنید. http://ru.wikipedia.org/wiki/Network_File_System
rsyslogrsyslog برای جمع‌آوری و پردازش راحت گزارش‌های سیستم خدمت می‌کند و خود را به عنوان یک ماژول syslogd توسعه یافته برای سیستم های یونیکسو لینوکس که بر امنیت و قابلیت اطمینان تمرکز دارد و همچنین دارای چند رشته پیشرفته است. Rsyslog طیف گسترده ای از ویژگی ها را ارائه می دهد که با کلیک بر روی پیوند - ویژگی های RSyslog می توانید آنها را پیدا کنید. http://www.rsyslog.com/module-Static_Docs-view-f-features.html.phtml
rsyncrsync ( همگام سازی از راه دور) برنامه ای برای سیستم عامل های یونیکس مانند است که دایرکتوری ها و فایل ها را در چندین مکان همزمان می کند و ترافیک را به حداقل می رساند و در صورت لزوم از رمزگذاری داده ها استفاده می کند. rsync به عنوان جایگزینی برای rcp و scp ایجاد شد. ادامه مطلب...
ساسلاتددیمون سرور احراز هویت SASL. SASL ( احراز هویت ساده و لایه امنیتی) قابلیت احراز هویت در پروتکل های مبتنی بر اتصالات راه دور را فراهم می کند.
سامبا، smbdدیمون سرور سامبا.
ارسال ایمیلاز سرویس IMAP یا POP3 محلی پشتیبانی می کند، آن را فعال بگذارید. این سرویس ممکن است برای اطلاع رسانی در مورد فعالیت دیمون ها/سرویس های مختلف مفید باشد که می تواند از طریق cron یا ارسال نامه از اسکریپت های PHP ارائه شود.
حسگردیمون از lm_sensors اطلاعات را از حسگرهای مختلف جمع آوری می کند.
حسگرهااسکریپتی که در صورت لزوم، ماژول های هسته لازم را برای کار با lm_sensors بارگذاری می کند.
دیوار ساحلیاسکریپتی برای مدیریت دیوار آتش ساحلی.
باریکمدیر ورود برای X.
هوشمنددیمون SMART دیسک ها را مانیتور می کند. برای پیش بینی خرابی ها و نظارت بر درایوها یا مشکلات هارد دیسک استفاده می شود. به طور معمول، کاربران به این دیمون نیازی ندارند، اما همچنان توصیه می شود (به ویژه برای سرورها) آن را فعال نگه دارند.
smbدیمون SAMBA برای باز کردن مشترک مورد نیاز است دسترسی شبکهبه فایل های روی لینوکس برای کاربران ویندوز. اگر دستگاه های ویندوزی در شبکه خود دارید که باید به فایل ها دسترسی داشته باشند، باید فعال شود.
مالشدیمونی که ماهانه اطلاعات را برای جمع آوری آمار برای کمک به توسعه دهندگان ارسال می کند. آمار در دسترس همه است. کاربرانی که می خواهند به توسعه دهندگان کمک کنند باید این سرویس را فعال کنند.
snmpd، snmptrapdارائه پشتیبانی از SNMP ( پروتکل مدیریت شبکه ساده) که می تواند برای مدیریت و پیکربندی دستگاه هایی مانند هاب شبکه، سرورها، چاپگرها و غیره استفاده شود. و غیره می تواند غیرفعال شود، اما ممکن است برای اجرای خدمات چاپ HP ( hplip).
ماهی مرکبدیمون پروکسی Squid.
sshdبه درخواست های پوسته ایمن از مشتریان گوش می دهد. SSH به سایر کاربران اجازه می دهد تا از طریق شبکه از رایانه دیگری وارد شوند و برنامه هایی را روی رایانه شما اجرا کنند که معمولاً برای مدیریت از راه دور استفاده می شود. این می تواند یک خطر امنیتی بالقوه باشد. در ایستگاه های کاری که به دسترسی از راه دور نیاز ندارند، توصیه می شود آن را خاموش کنید.
sssdSSSD ( سیستم امنیت خدمات دیمون) امکان دسترسی به مکانیسم های احراز هویت از راه دور را فراهم می کند. این امر مرز بین شبکه و احراز هویت محلی را محو می کند و امکان استفاده از مکانیسم های مختلف را فراهم می کند. اطلاعات مربوط به کاربران توسط پایگاه داده ای به نام دامنه منتقل می شود و می تواند منبع داده برای احراز هویت از راه دور باشد. مکانیسم‌های متعددی مجاز هستند که به سرورهای متعدد اجازه می‌دهند فضاهای نام متفاوتی را پیاده‌سازی کنند. اطلاعات دریافتی با استفاده از رابط های استاندارد NSS و PAM در اختیار برنامه های کاربردی خارجی قرار می گیرد.

SSSD به‌عنوان مجموعه‌ای از سرویس‌ها اجرا می‌شود که مستقل از برنامه‌ای است که آنها را فراخوانی می‌کند، بنابراین برنامه‌ها نیازی به راه‌اندازی اتصالات خود به دامنه‌های راه دور ندارند، و همچنین نیازی به دانستن اینکه کدام شبح/سرویس در حال استفاده است، ندارند. ذخیره محلی اطلاعات گروه و داده های هویت بدون در نظر گرفتن منبع داده اجازه می دهد ( LDAP، NIS، IPA، DB، Samba و غیره) به کار آفلاین ادامه دهید، که در کل بهره وری را بهبود می بخشد. SSSD ممکن است به چندین ارائه دهنده از یک نوع اجازه دهد ( به عنوان مثال LDAP).

svnserveدیمون سرور svn.
sysstatبسته Sysstat شامل ابزارهایی برای نظارت بر عملکرد سیستم و منابع استفاده شده است.
مبادله کنندهفرآیند محلی را در فضای مبادله کپی می کند تا صفحه حافظه فیزیکی هسته را تعمیر کند. sched نیز نامیده می شود.
syslogdفرآیند سیستم برای ضبط پیام های مختلف سیستم.
همگام سازیبه صورت دوره ای با حافظه سیستمایجاد فایل های سیستمی.
syslog-ngدیمون گزارش های سیستم را نگه می دارد.
udev-postمدیر دستگاه سیستم مورد استفاده توسط udev. به طور پیش فرض، udev از تعداد زیادی قوانین، رفتارها و مجوزها برای دستگاه ها پشتیبانی می کند. با استفاده از این سرویس می توانید قوانین را با خیال راحت مدیریت کنید. توصیه می شود آن را فعال بگذارید.
vhandصفحات حافظه را برای استفاده توسط سایر فرآیندها آزاد می کند. همچنین به عنوان "دیمون سرقت صفحه" نیز شناخته می شود.
vsftpdvsftpd ( Very Secure FTP Daemon - Very Secure FTP Daemon) - سرور FTP از IPv6 و SSL پشتیبانی می کند.

vsftpd به طور پیش‌فرض در بسیاری از سیستم‌عامل‌های شبه یونیکس استفاده می‌شود، همچنین مخازن رسمی ftp.openbsd.org، ftp.freebsd.org، ftp.debian.org، ftp.redhat.com را ارائه می‌کند و در هسته رسمی لینوکس FTP استفاده می‌شود. سرور

وبمینسرویس مدیریت سیستم از طریق مرورگر ( رابط وب).
بادگیرسرویسی که به شما کمک می کند در شبکه متمایز شوید نام های کامپیوترزیر کنترل ویندوز. می توان از آن برای کنترل استفاده کرد حساب هاویندوز با حساب های لینوکس. به طور معمول، اکثر کاربران به این دیمون نیازی ندارند و می توانند آن را غیرفعال کنند.
wpa_supplicantبرای کار با سرویس مورد نیاز است کارت های بی سیمکه برای اتصال به نقاط دسترسی ( سرورهای VPN یا Radius) به رمزگذاری WPA نیاز دارد. اکثر کاربران می توانند آن را غیرفعال کنند.
xfsdفونت های X11 را برای مشتریان راه دور ارائه می دهد.
سیب زمینی شیرینسرویس به روز رسانی بسته های RPM نصب شده بر روی سیستم. در درجه اول در فدورا کور استفاده می شود.
ypbindاین سرویس برای احراز هویت NIS از طریق شبکه استفاده می شود. اگر از احراز هویت NIS استفاده نمی شود، می توانید آن را غیرفعال کنید.
zvbidسرویسی که دسترسی از دستگاه های V4L یا V4L2 به چندین برنامه را فراهم می کند. به عنوان مثال، یک کارت برای گرفتن Hauppage می تواند از این سرویس استفاده کند، در موارد دیگر می توان آن را خاموش کرد.

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

اگر هیچ توضیحی از سرویس در man name_daemon help وجود ندارد، پس ممکن است دیمون/سرویس یک ویروس باشد، در این مورد، فایل اجرایی Whereis name_daemon را جستجو کنید و آن را برای تجزیه و تحلیل به آزمایشگاه ویروس ارسال کنید - این کار را می توان بدون نصب آنتی ویروس از طریق رابط وب انجام داد، به عنوان مثال http://vms.drweb.com/online/، http://www.esetnod32.ru/.support/scanner/ یا https://www.virustotal.com/.

بارگیری خودکار دیمون ها/سرویس های یونیکس/لینوکس

در زیر آمده است دستورالعمل های دقیقبرای مدیریت راه اندازی دیمون ها/خدماتدر رایج ترین تغییرات/نسخه های سیستم عامل یونیکس مانند مانند CentOS Linux، Debian Linux و BSD نوع OS. در سایر تغییرات/نسخه‌های سیستم‌عامل‌های شبه یونیکس، مدیریت بارگذاری خودکار دیمون‌ها/سرویس‌ها رویه مشابهی دارد، اگرچه ممکن است تفاوت‌های جزئی یا حتی اساسی داشته باشد!

بارگیری خودکار دیمون ها/سرویس ها در لینوکس CentOS

CentOS سطوح بار را تعریف کرده استطبق اصل System V و رنگ آمیزی می شوند در فایل /etc/inittab، کمتر /etc/inittab را بخوانید.

دایرکتوری ها برای هر سطح بارگذاری نامگذاری شده و در پوشه /etc/rc.d قرار دارند.

در هر یک از دایرکتوری هایی که مربوط به یک سطح بارگذاری خاص است، اسکریپت ها، یا بهتر است بگوییم پیوندهایی به آنها، با دستورالعمل هایی برای راه اندازی دیمون/برنامه/سرویس وجود دارد، و خود اسکریپت ها با دستورالعمل هایی برای شروع دیمون/برنامه/سرویس در آن قرار دارند. دایرکتوری /etc /rc.d/init.d

با اجرای کمتر /etc/rc.d/init.d/mysqld یا کمتر /etc/rc.d/init.d/sshd می‌توان نمونه‌ای از اسکریپت‌هایی را که راه‌اندازی daemon/program/service را کنترل می‌کنند، مشاهده کرد. معمولاً اسکریپت‌هایی که راه‌اندازی یک daemon/program/service را کنترل می‌کنند در /etc/rc.d/init.d/ ظاهر می‌شوند و پس از نصب نرم‌افزار به دایرکتوری‌های سطح اجرا مرتبط می‌شوند، و وضعیت آنها خاموش/روشن استبرای هر سطح اجرا توسط ابزار chkconfig کنترل می شود.

با دستور chkconfig --list می توانید ببینید که کدام دیمون ها در سطوح مختلف اجرا اجرا می شوند. می‌توانید با استفاده از دستور chkconfig --level 345 mysqld روشن و به ترتیب chkconfig --level 345 mysqld را خاموش کنید، chkconfig –del service_ name برای حذف یک سرویس، chkconfig service_name را فعال کنید. برای فعال یا غیرفعال کردن یک سرویس در همه سطوح، خاموش می شود.

در مورد اضافه کردن اسکریپت به راه اندازی، پس برای دانلود خودکاراسکریپت ها توسط /etc/rc.local ارائه می شوند، در /etc/rc.local کافی است مسیر کامل را به اسکریپت اضافه کنید، به عنوان مثال: /root/scripts/script.sh یا /bin/sh /root/scripts/script.sh. اگر پس از نصب نرم افزار، اسکریپت کنترل راه اندازی در /etc/rc.d/init.d/ وجود نداشته باشد. برنامه مورد نظر، سپس آسان تر است که خط اولیه/راه اندازی آن را به /etc/rc.local اضافه کنید.

ابزاری به نام ntsysv برای مدیریت سطوح اجرا وجود دارد، man ntsysv.

بارگیری خودکار دیمون ها/سرویس ها در لینوکس دبیان

دایرکتوری های هر سطح بوت در لینوکس دبیان نیز نامگذاری شده اند rc0.d، rc1.d، rc2.d، rc3.d، rc4.d، rc5.d، rc6.dولی، واقع شدهدیگر در فهرست /etc/rc.d نیست، اما در ریشه دایرکتوری /etc

اسکریپت هایی با دستورالعمل هایی برای شروع دیمون/برنامه/سرویس وجود داشت، یا بهتر بگوییم پیوندهای نمادین به آنها در دایرکتوری های /etc/rc?.d قرار دارند که علامت کجاست؟ مربوط به سطح بار، و خود اسکریپت ها به همراه دستورالعمل هایی برای راه اندازی daemon/program/service در پوشه /etc/init.d قرار دارند.. نمونه ای از چنین skipt که بر اساس آن می توانید خود را بنویسید، در فایل کمتر /etc/init.d/skeleton یافت می شود.

در زیر توضیحی درباره اطلاعات سرویس مورد استفاده در قالب اسکریپت /etc/init.d/skeleton ارائه خواهیم داد:

  • ارائه می دهد:اشیاء ارائه شده توسط این اسکریپت (arg1, agr2, ...) را به گونه ای توصیف می کند که وقتی اسکریپت با آرگومان شروع اجرا می شود، این اشیاء وجود دارند و بنابراین اسکریپت های دیگری در init وجود دارند که نیاز به وجود این موارد دارند. اشیاء قادر خواهند بود در مراحل دیرتر شروع به کار کنند. معمولاً می‌توانید از نام اسکریپت به عنوان شیء استفاده کنید، اما می‌توانید از نام سرویسی که جایگزین آن می‌شود نیز استفاده کنید. اشیاء مجازی در اینجا نشان داده نمی شوند. آنها خارج از اسکریپت های init.d تعریف می شوند
  • مورد نیاز-شروع:اشیایی را که برای اجرای اسکریپت باید وجود داشته باشند را مشخص می کند. در صورت لزوم، می توانید از اشیاء مجازی به شرح زیر استفاده کنید. اگر اشیاء مشخص نشده باشند، می توان اسکریپت را بلافاصله پس از شروع، بدون نیاز به اتصال سیستم های فایل محلی، شروع گزارش سیستم و غیره راه اندازی کرد.
  • مورد نیاز-توقف:اشیاء مورد استفاده توسط سرویس را که توسط اسکریپت ارائه شده است را مشخص می کند. شی ارائه شده توسط این اسکریپت باید قبل از تکمیل اشیاء لیست شده در اینجا تکمیل شود تا از تداخل جلوگیری شود. به طور معمول، همان اشیاء در اینجا مانند Required-Start نشان داده می شوند
  • باید شروع کرد:اشیایی را مشخص می کند که در صورت وجود، باید قبل از سرویس ارائه شده توسط این اسکریپت راه اندازی شوند. این امکان وابستگی های ضعیف را فراهم می کند که در صورت در دسترس نبودن اشیاء باعث از کار افتادن سرویس نمی شود. همانطور که در زیر توضیح داده شده است می توانید در صورت نیاز از اشیاء مجازی استفاده کنید.
  • باید متوقف شود:اشیایی را مشخص می کند که در صورت وجود، باید بعد از آن متوقف شوند از این سرویس. به طور معمول، همان اشیاء در اینجا مانند Should-Start مشخص می شوند
  • شروع پیش فرض:سطوح اجرا را که اسکریپت باید در آن شروع شود (توقف شود) به طور پیش فرض تنظیم می کند. به عنوان مثال، اگر سرویس باید فقط در سطوح 3، 4 و 5 شروع شود، "Default-Start: 3 4 5" و "Default-Stop: 0 1 2 6" را مشخص کنید.
  • توضیح کوتاه:شرح کوتاهی از عمل اسکریپت را مشخص می کند. محدود به یک خط
  • شرح:شرح دقیق تری از عمل اسکریپت را مشخص می کند. ممکن است در چندین خط باشد، در این صورت هر خط توضیحات باید با یک کاراکتر # و سپس یک کاراکتر تب یا حداقل 2 کاراکتر فاصله شروع شود. توضیحات قبل از خطی به پایان می رسد که با این شرط مطابقت ندارد.
  • X-Start-Before, X-Stop-After:وابستگی‌های معکوس را مشخص می‌کند که همان معنایی دارند که در بسته‌های مشخص‌شده در اینجا در should-start و should-stop مشخص شده‌اند.

کلیدواژه های ارائه، مورد نیاز و باید برای ردیابی وابستگی ها مهم هستند. بقیه استفاده نمی شود. Runlevels توسط برنامه به طور پیش فرض برای سازماندهی اسکریپت ها استفاده می شود ( به عنوان مثال، درج کنید) به منظور پیگیری کدام دایرکتوری rc؟.dهنگامی که یک سرویس برای اولین بار اضافه می شود به روز رسانی شود و باید هدف سرویس را منعکس کند. در اینجا برخی از اشیاء "مجازی" وجود دارد:

  • $local_fs- تمام فایل سیستم های محلی متصل هستند. همه اسکریپت هایی که در /var/ می نویسند باید به این بستگی داشته باشند مگر اینکه قبلاً به $remote_fs وابسته باشند.
  • شبکه $- شبکه سطح پایین، یعنی کارت های شبکه، ممکن است به معنای اجرای PCMCIA باشد
  • $نامدار- فرض بر این است که دیمون هایی که می توانند وضوح نام دامنه را ارائه دهند در حال اجرا هستند. به عنوان مثال، DNS، NIS+ یا LDAP
  • $portmap- دیمون ها سرویس پورت مپینگ SunRPC/ONCRPC را همانطور که در سال 1833 مشخص شده است (در صورت وجود) ارائه می دهند.
  • $remote_fs- تمامی فایل سیستم ها متصل هستند. اسکریپت هایی که باید در حین خاموش شدن سیستم اجرا شوند قبل از ارسال سیگنال kill به تمام فرآیندها باید به $remote_fs بستگی داشته باشند.
  • $syslog- گزارش سیستم در حال کار است
  • $time- زمان صحیح سیستم تنظیم شده است، به عنوان مثال، ntp یا rdate، یا RTC
  • همه $- اسکریپت را تا آنجا که ممکن است اجرا می کند

بارگذاری خودکار دیمون در لینوکس دبیان با استفاده از ابزار update-rc.d کنترل می‌شود که در man update-rc.d توضیح داده شده است. ابزار update-rc.d هیچ چیز دیگری به جز پیوندهای نمادین در /etc/rc?.d ایجاد یا حذف نمی کند.به اسکریپت های به اصطلاح init که شروع و توقف daemon/program/service را کنترل می کنند که در فهرست /etc/init.d قرار دارند.

اگر اسکریپت برای راه اندازی خودکار دیمون/سرویس به صورت دستی با استفاده از الگوی /etc/init.d/skeleton ایجاد شود.، سپس ابتدا باید آن را در فهرست /etc/init.d قرار دهید، سپس یک پیوند نمادین به این اسکریپت در فهرست /etc/rc?.d ایجاد کنید، کجا؟ - شماره سطح اجرا ( سطح بار سیستم). پیوند نمادین باید به این صورت باشد: S№№script_name، که در آن شماره شماره سفارش راه اندازی است، اگر می خواهید یک پیوند نمادین را ترک کنید اما اسکریپت را به طور موقت اجرا نکنید، پیوند نمادین باید به این وضعیت KNo. script_name تغییر یابد.

قبل از اینکه بتوان هر سطح اجرا را پردازش کرد، ابتدا تمام اسکریپت هایی که با حرف "" شروع می شوند، اجرا می شوند. ک" (این اسکریپت ها خدمات را متوقف می کنند، و سپس تمام اسکریپت هایی که با حرف "" شروع می شوند اجرا می شوند اس" (این اسکریپت ها خدمات را شروع می کنند). عدد دو رقمی بعد از حرف "S" یا "K" نشان دهنده ترتیب اجرای اسکریپت ها است.. اسکریپت هایی با تعداد کمتر ابتدا اجرا می شوند، به عنوان مثال: S01script_name ابتدا شروع می شود و S09script_name نهم راه اندازی می شود.

برای ایجاد یک پیوند نمادین، از برنامه ln -s file1 file2 استفاده کنید. جایی کهکلید -sدر مورد ایجاد یک پیوند نمادین صحبت می کند، فایل 1به یک فایل موجود اشاره می کند و file2نام پیوند جدید، اما به جای ایجاد پیوندهای نمادین به صورت دستی، می توانید از ابزار update-rc.d استفاده کنید که به طور خاص برای ایجاد پیوندهای نمادین در /etc/rc?.d به اسکریپت های /etc/init طراحی شده است. د

نحو update-rc.d به این صورت است: اضافه کردن با پارامترهای پیش فرض update-rc.d پیش‌فرض، حذف و توقف daemon/service update-rc.d -f حذف && update-rc.d توقف 20 2 3 4 5 . شروع و توقف دیمون ها/سرویس ها را می توان از طریق اسکریپت نام سرویس start|stop|restart کنترل کرد.

صادقانه بگویم، update-rc.d یک ابزار نسبتا غیر شفاف است، ابزار chkconfig راحت تر است، که به طور پیش فرض در لینوکس دبیان در دسترس نیست. برای نصب آن، ما باید مخازن اضافی اضافه کنیم، توصیه می شود فقط از مخازن رسمی بسته لینوکس دبیان استفاده کنید، تا انتهای لیست vi /etc/apt/sources.list، به عنوان مثال sources.list در Debian GNU/Linux 6.0.5 _Squeeze_ - Official i386:

# # deb cdrom:/ فشرده کردن سی‌درم اصلی deb:/ فشرده کردن deb اصلی http://security.debian.org/ squeeze/updates main deb-src http://security.debian.org/ squeeze/updates main # squeeze-updates ، که قبلاً به عنوان "فرار" شناخته می شد # یک آینه شبکه در حین نصب انتخاب نشد. ورودی های # زیر به عنوان نمونه ارائه شده اند، اما شما باید آنها را مطابق با # اصلاح کنید. برای شماآینه انتخابی # # deb http://ftp.debian.org/debian/ squeeze-updates main # deb-src http://ftp.debian.org/debian/ squeeze-updates main deb http://backports.debian.org/ debian-backports squeeze-backports deb اصلی http://ftp.debian.org/debian/ squeeze main #deb http://repo.yandex.ru/debian squeeze main contrib #deb http://mirror.yandex.ru/ مشارکت اصلی دبیان squeeze #deb http://mirror.yandex.ru/debian-multimedia/ squeeze main contrib

سپس لیست بسته ها را با آپدیت apt-get به روز کنید و chkconfig apt-get install chkconfig را نصب کنید و به عنوان جایگزین، می توانید sysv-rc-conf apt-get install sysv-rc-conf را نیز نصب کنید. نحوه استفاده از ابزار chkconfig در بالا ذکر شد، علاوه بر این، man sysv-rc-conf و man chkconfig را ببینید.

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

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

برای اجرای خودکار سایر اسکریپت ها و برنامه ها در لینوکس دبیان، می توانید از /etc/rc.local قدیمی خوب استفاده کنید.

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

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

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

اکثر فایل ها لاگ های لینوکسدر پوشه /var/log/ قرار دارند. می توانید با استفاده از دستور ls فایل های log را برای سیستم خود لیست کنید:

Rw-r--r-- 1 root root 52198 10 مه 11:03 alternatives.log
drwxr-x--- 2 root root 4096 نوامبر 14 15:07 apache2
drwxr-xr-x 2 root root 4096 25 آوریل 12:31 apparmor
drwx------ 2 root root 4096 5 مه 10:15 حسابرسی
-rw-r--r-- 1 root root 33100 10 مه 10:33 boot.log

در زیر به 20 فایل لاگ مختلف لینوکس که در فهرست /var/log/ قرار دارند نگاه می کنیم. برخی از این گزارش‌ها فقط در توزیع‌های خاصی یافت می‌شوند، برای مثال dpkg.log فقط در سیستم‌های مبتنی بر دبیان یافت می‌شود.

/var/log/messages- شامل لاگ های جهانی سیستم لینوکس، از جمله مواردی که هنگام راه اندازی سیستم ثبت می شوند. چندین نوع پیام در این لاگ ثبت می شود: ایمیل، cron، سرویس های مختلف، هسته، احراز هویت و غیره.

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

/var/log/auth.log- حاوی اطلاعاتی در مورد مجوز کاربر در سیستم، از جمله ورود به سیستم کاربر و مکانیسم های احراز هویت که استفاده شده است.

/var/log/boot.log- حاوی اطلاعاتی است که هنگام بوت شدن سیستم ثبت می شود.

/var/log/daemon.log- شامل پیام هایی از شیطان های پس زمینه مختلف است

/var/log/kern.log- همچنین حاوی پیام هایی از هسته است که در عیب یابی خطاها در ماژول های سفارشی ساخته شده در هسته مفید است.

/var/log/lastlog- اطلاعات مربوط به آخرین جلسه همه کاربران را نمایش می دهد. این یک فایل غیر متنی است و برای مشاهده آن باید از دستور lastlog استفاده کنید.

/var/log/maillog /var/log/mail.log- سیاهههای مربوط به سرور ایمیل در حال اجرا بر روی سیستم.

/var/log/user.log- اطلاعات از تمام سیاهههای مربوط در سطح کاربر.

/var/log/Xorg.x.log- ورود پیام سرور X.

/var/log/alternatives.log- اطلاعات در مورد عملکرد برنامه به روز رسانی جایگزین. اینها پیوندهای نمادین به دستورات یا کتابخانه های پیش فرض هستند.

/var/log/btmp- ورود فایل لینوکسحاوی اطلاعاتی درباره تلاش های ناموفق برای ورود به سیستم است. برای مشاهده فایل، استفاده از دستور last -f /var/log/btmp راحت است

/var/log/ cups- کلیه پیام های مربوط به چاپ و چاپگرها.

/var/log/anaconda.log- تمام پیام های ضبط شده در حین نصب در این فایل ذخیره می شود

/var/log/yum.log- تمام اطلاعات مربوط به نصب بسته را با استفاده از Yum ثبت می کند.

/var/log/cron- هر زمان که شبح Cron شروع به اجرای برنامه ای می کند، گزارش و پیام هایی از خود برنامه در این فایل می نویسد.

/var/log/secure- حاوی اطلاعات مربوط به احراز هویت و مجوز است. به عنوان مثال، SSHd همه چیز را در اینجا ثبت می کند، از جمله تلاش های ناموفق برای ورود.

/var/log/wtmp یا /var/log/utmp -لاگ های سیستم لینوکس , شامل یک گزارش از ورود کاربران است. با استفاده از دستور wtmp می توانید متوجه شوید که چه کسی و چه زمانی وارد سیستم شده است.

/var/log/faillog- ورود سیستم های لینوکس، شامل تلاش های ناموفق برای ورود به سیستم است. برای نمایش محتویات این فایل از دستور faillog استفاده کنید.

/var/log/mysqld.log- فایل های لاگ لینوکس از سرور پایگاه داده MySQL.

/var/log/httpd/ یا /var/log/apache2- فایل های لاگ سرور وب لینوکس 11 آپاچی. گزارش های دسترسی در فایل access_log و گزارش های خطا در error_log هستند

/var/log/lighttpd/ - لاگ های لینوکسوب سرور lighttpd

/var/log/conman/- فایل های لاگ مشتری ConMan،

/var/log/mail/- این دایرکتوری شامل لاگ های سرور ایمیل اضافی است

/var/log/prelink/- برنامه Prelink لینک کتابخانه ها و فایل های اجراییبرای سرعت بخشیدن به روند دانلود /var/log/prelink/prelink.log حاوی اطلاعاتی درباره فایل های .so است که توسط برنامه اصلاح شده اند.

/var/log/audit/- حاوی اطلاعات تولید شده توسط دیمون حسابرسی شده است.

/var/log/setroubleshoot/ - SE Linux از دیمون setroubleshootd (SE Trouble Shoot Daemon) برای گزارش مشکلات امنیتی استفاده می کند. این گزارش حاوی پیام هایی از این برنامه است.

/var/log/samba/- حاوی اطلاعات و گزارش‌هایی از سرور فایل سامبا است که برای اتصال به آن استفاده می‌شود پوشه های مشترکپنجره ها.

/var/log/sa/- حاوی فایل های .cap است که توسط بسته Sysstat جمع آوری شده است.

/var/log/sssd/- توسط شبح امنیتی سیستم که مدیریت می کند استفاده می شود دسترسی از راه دوربه دایرکتوری ها و مکانیسم های احراز هویت

مشاهده لاگ ها در لینوکس

برای مشاهده گزارش‌ها در لینوکس، استفاده از چندین ابزار خط فرمان راحت است رشته های لینوکس. این می تواند هر کسی باشد ویرایشگر متن، یا ابزار ویژه. به احتمال زیاد، برای مشاهده لاگ ها در لینوکس به حقوق ابرکاربر نیاز خواهید داشت. در اینجا دستوراتی وجود دارد که اغلب برای این اهداف استفاده می شود:

  • zgrep
  • zmore

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

ما به log /var/log/messages با قابلیت اسکرول نگاه می کنیم:

کمتر /var/log/messages

مشاهده لاگ های لینوکس در زمان واقعی:

tail -f /var/log/messages

فایل لاگ dmesg را باز کنید:

cat /var/log/dmesg

خطوط اول dmesg:

head /var/log/dmesg

ما فقط خطاهای /var/log/messages را خروجی می کنیم:

خطای grep -i /var/log/messages

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

شما می توانید برنامه را بر روی هر سیستمی که یک سرور X نصب شده است نصب کنید. همچنین، از هر ویرایشگر آزمایشی گرافیکی می توان برای مشاهده گزارش ها استفاده کرد.

نتیجه گیری

در پوشه /var/log می توانید تمام اطلاعات لازم در مورد عملکرد لینوکس را بیابید. از مقاله امروز شما به اندازه کافی یاد گرفته اید که بدانید کجا باید جستجو کنید و به دنبال چه چیزی باشید. اکنون مشاهده لاگ ها در لینوکس برای شما مشکلی ایجاد نمی کند. اگر سوالی دارید، در نظرات بپرسید!

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

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

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

«در روز کریسمس، زمانی که شیمومورا برای تعطیلات به نوادا اسکی رفت، یک نفر (ما قبلاً می‌دانیم کی بود) به اتاق فوق‌العاده امن او نفوذ کرد. کامپیوتر خانگیدر سولانا بیچ، کالیفرنیا، و شروع به کپی کردن فایل های خود - صدها فایل طبقه بندی شده - کرد. یکی از دانشجویان فارغ التحصیل در مرکز ابرکامپیوتر در سن دیگو، جایی که شیمومورا کار می کرد، متوجه تغییراتی در فایل های "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 cron پیام‌هایی از زمان‌بندی سیستم.
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، از طریق سوکت ارسال می شود /dev/logدیمون سیستم 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/messages نوشته می‌شوند، اما پیام‌های دسته‌های mail، authpriv و cron حذف می‌شوند (نوشته نشده‌اند).

فهرست 1. فایل /etc/syslog.confاز یک سیستم ساخته شده بر روی توزیع Red Hat Linux 7.1 (من فقط نظرات موجود در این فایل را به روسی ترجمه کردم و قوانین را به صورت پررنگ برجسته کردم).
# همه پیام ها را از هسته به کنسول چاپ کنید. #kern.* /dev/console# همه پیام‌ها را در سطح اطلاعات یا بالاتر ثبت کنید، # به‌جز پیام‌های سیستم پستی که حاوی # اطلاعات حساس از پیام‌های احراز هویت و پیام‌های cron daemon هستند. *.info;mail.none;authpriv.none;cron.none /var/log/messages# پیام های حاوی # اطلاعات احراز هویت حساس را بدون در نظر گرفتن سطح آنها در یک فایل جداگانه بنویسید. authpriv.* /var/log/secure# همه پیام های سیستم پستی نیز باید به طور جداگانه ضبط شوند. mail.* /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/messages. این فقط پیام‌هایی از دسته‌های ایمیل، authpriv و cron (که فایل‌های جداگانه برای آنها اختصاص داده شده‌اند) را شامل نمی‌شود. بیایید نگاهی به این فایل بیندازیم و از مثال آن استفاده کنیم تا ببینیم چه چیزی در فایل های log ثبت شده است.

فایل لاگ /var/log/messages

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

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

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

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

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: شروع 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=linux ro root=303 BOOT_FILE=/boot/vmlinuz-2.4.2-2
  • - اطلاعات در مورد نوع و ظرفیت پردازنده حافظه دسترسی تصادفی: 17 سپتامبر 08:32:56 هسته kos3: پردازنده 1594.849 مگاهرتز شناسایی شد. 17 سپتامبر 08:32:56 هسته kos3: حافظه: 125652k/130560k موجود (1365k کد هسته، 4200k رزرو شده، 92k داده، 236k init، 0k highmem) 17 سپتامبر 08:32:08:32:00:32:00. , 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 هسته kos3: hdc: CDROMSC -148C، درایو CD/DVD-ROM ATAPI 17 سپتامبر 08:32:56 هسته kos3: ide0 در 0x1f0-0x1f7,0x3f6 در irq 14 سپتامبر 17 08:32:56 هسته kos3: ide1-0x170 در 0x170 17 سپتامبر 08:32:56 هسته kos3: hda: 40132503 سکتور (20548 مگابایت) w/1819KiB Cache، CHS=2498/255/63، UDMA(100) Sep 17 08:32:Sekernelp1 Partition 08:32:56 هسته kos3: hda: hda1 hda2 hda3 hda4< hda5 hda6 hda7 >17 سپتامبر 08:32:56 هسته kos3: درایو(های) فلاپی: fd0 1.44M است
  • - اطلاعاتی درباره دستگاه های جانبی: Sep 17 08:32:56 kos3 kernel: usb-uhci.c: USB UHCI at I/O 0x1820, IRQ 11 Sep 17 08:32:56 kos3 kernel: usb-uhci.c: شناسایی 2 پورت 08: 17 سپتامبر 32:56 هسته kos3: ttyS00 در 0x03f8 (irq = 4) یک هسته kos3 16550A است. آداپتور اترنت مبتنی بر Intel(R) 8255x 17 سپتامبر 08:32:56 هسته kos3: آداپتور اترنت سریع Intel(R) PRO/100 - درایور قابل بارگیری، نسخه 1.5.6 17 سپتامبر 08:32:56 هسته kos3: PCI: Found 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 koszu 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:32:56 random3 kos مولد اعداد تصادفی: موفق شد 17 سپتامبر 08:32:41 kos3 rc.sysinit: پیکربندی پارامترهای هسته: موفق شد 17 سپتامبر 08:32:41 kos3 rc.sysinit: تنظیم فونت پیش فرض (cyr-sun16): موفق شد 17 سپتامبر 08: 41 kos3 rc.sysinit: فعال کردن پارتیشن های مبادله: موفقیت آمیز 17 سپتامبر 08:32:41 kos3 rc.sysinit: تنظیم نام میزبان kos3: موفقیت آمیز 17 سپتامبر 08:33:03 kos3 xinetd: شروع xinetd موفق شد 17 سپتامبر 17:32:00 : start gpm موفق شد 17 سپتامبر 08:33:05 kos3 crond: start crond موفق شد 17 سپتامبر 08:33:06 kos3 xfs: گوش دادن به پورت 7100 17 سپتامبر 08:33:06 kos3 xfs: start 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:32:56 MSDOS : 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 blocks 17 سپتامبر 08:32:42 kos3 fsck: /HOME: پاک، 6573/432864 فایل، 689090/863722 بلوک 17 سپتامبر 08:32:42 kos3 fsck: /usr: پاک، 55105/43286/329 فایل 17 08:32:42 kos3 rc.sysinit: بررسی سیستم های فایل با موفقیت انجام شد
  • - برخی از پیغام های خطا: Sep 17 08:32:42 kos3 mount: SMB Connection named Sep 17 08:32:42 kos3 mount: Packet send to 10.104.129.245(137) ERRNO=شبکه غیرقابل دسترسی است Sep 13: 04:08: نصب 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= user=root
  • - و در نهایت، پیام‌هایی که هنگام خاموش شدن رایانه ضبط می‌شوند، به عنوان مثال: 17 سپتامبر 10:30:07 kos3 rc: توقف جدول کلید: موفق شد 17 سپتامبر 10:30:07 kos3 قلم سرور: پایان 17 سپتامبر 10:30:08 kos3 xfs: توقف xfs موفق شد 17 سپتامبر 10:30:08 kos3 gpm: توقف gpm موفق شد 17 سپتامبر 10:30:08 kos3 xinetd: خروج... 17 سپتامبر 10:30:10 kos3 rpc.statd: سیگنال گرفت 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/messages)
    • -p facility.level- دسته بندی و اولویت پیام را تنظیم کنید (پیش فرض: user.notice)
    • -t برچسب - فیلد TAG را تنظیم کنید
    • سوکت -u- به جای فراخوانی syslogd پیامی به سوکت مشخص شده ارسال کنید
    • MSG- متن پیام

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

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

    ثبت شبکه

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

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

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

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

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

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

    پس از تنظیم گزینه های راه اندازی و فایل فراموش نکنید /etc/syslog.confدیمون را دوباره راه اندازی کنید زیرا بر خلاف cron, 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) در یک محیط محدود اجرا می شود (کروتینگ).
    • - حالت اشکال زدایی. در این صورت شیطان وارد نمی شود حالت پس زمینهو تمام پیام ها را به ترمینال فعلی خروجی می دهد.
    • -f config-file-nameنام یک فایل پیکربندی جایگزین را که به جای فایل پیش فرض استفاده می شود، مشخص می کند /etc/syslog.conf.
    • -hپیش فرض در sysklogdانتقال پیام های دریافتی از طریق شبکه به رایانه دیگری ممنوع است. این کار برای جلوگیری از انتقال بی پایان پیام ها در اطراف حلقه انجام می شود. گزینه -h به شما امکان می دهد رفتار معمول را تغییر دهید و اطمینان حاصل کنید که پیام های دریافت شده از میزبان های راه دور بیشتر از طریق شبکه منتقل می شوند (و خودتان مراقب حلقه های احتمالی باشید).
    • -l فهرست میزبان- لیستی از میزبان ها را مشخص می کند که نام آنها نباید با نام دامنه کامل نوشته شود (FQDN - Full Qualified Domain Name). نام های موجود در لیست با دو نقطه از هم جدا می شوند.
    • - دقیقه دقیقهبدون این گزینه راه اندازی شد sysklogdبه طور منظم (هر 20 دقیقه) پیام های دسته را در پروتکل ضبط می کند علامت، یعنی صرفاً مهرهای زمانی. با استفاده از گزینه -mمی‌توانید فاصله بین علامت‌ها را تغییر دهید یا صدور چنین پیام‌هایی را به طور کامل لغو کنید، که برای آن باید فاصله را روی صفر تنظیم کنید: -m 0.
    • -nدر پس زمینه محو نشوید. این گزینه در مواردی که syslogd توسط یک فرآیند راه اندازی و کنترل می شود مورد نیاز است init.
    • سوکت -pیک سوکت جایگزین یونیکس را مشخص می کند (به جای سوکت پیش فرض گوش دادن /dev/log). لطفا توجه داشته باشید: گزینه سوکت های اضافی را مشخص می کند و - جایگزین!
    • -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/messages، فقط در آنجا با پیام های دیگر برنامه ها جایگزین می شوند. تنها یک تفاوت قابل توجه وجود دارد: در فایل dmesgزمان و منبع پیام (نام میزبان و دسته پیام) مشخص نشده است. میزبان در اینجا همیشه "محلی" است و شروع شمارش زمان توسط آخرین راه اندازی مجدد رایانه تعیین می شود.

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

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

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

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

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

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

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

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

    هنگام اجرای دستور lastlogدر یک رایانه کند، در برخی موارد ممکن است به نظر برسد که دستور گیر کرده است. این به دلیل این واقعیت است که حتی اگر فقط دو کاربر در سیستم (روت و کاربر) ثبت نام کرده باشند، در فایل /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/2002 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/log/ 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 "http ://linux/ve/papers/new/log/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.htm" "Mozilla /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.16.2) متصل شوید (16.2) 36.10) اتصال بسته به سرویس عمومی مثال‌های بالا نشان می‌دهند که اگر بتوانید کمی انگلیسی بخوانید و درک درستی از ساختار رکوردها داشته باشید، می‌توانید مقدار زیادی از فایل‌های گزارش استخراج کنید. اطلاعات مفید. فقط باید از کل رسوبات "سنگ ضایعات" استخراج شود - فایل های پروتکل متوالی عظیم، که یک کار غیر ضروری است. از این رو ابزارهای نرم افزاری ویژه ای برای تحلیل پروتکل توسعه داده شده است.

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

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

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

    ایده اصلی پشت این برنامه این است که فایل log از طریق یک فیلتر عبور داده می شود، که از لاگ تمام خطوط (یعنی پیام ها) را انتخاب می کند که یک معیار معین را برآورده می کند. نتایج توسط پست الکترونیکبه کاربر مشخص شده (به طور پیش فرض - root). فیلترها را می توان به هر زبان برنامه نویسی نوشت، اما نویسنده بسته 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") و همچنین به زبان Perl نوشته شده است.

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

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

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

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

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

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

    البته شما درک می کنید که اگر سیستم به شدت مورد استفاده قرار گیرد، فایل های گزارش به سرعت رشد می کنند. که منجر به هدر رفتن فضای دیسک می شود. و مشکل "رام کردن" پروتکل ها به وجود می آید. در لینوکس Red Hat این مشکل توسط اسکریپت ها حل می شود logrotate، که در دایرکتوری قرار دارد /etc/cron.daily، و بنابراین توسط دیمون راه اندازی می شود cronروزانه. این اسکریپت به شما امکان می دهد نه تنها گزارش های سیستم را پردازش کنید 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 قدیمی استفاده می شود). نشان دهید که برای چه کسی باید پیام هایی در مورد اشتباهات در عملکرد سیستم ورود به سیستم ارسال شود. یک نسخه بایگانی شده از گزارش را برای کاربر مشخص شده ارسال کنید. دایرکتوری را تنظیم کنید که لاگ ها در طول تغییرات نسخه به آن منتقل شوند (دایرکتوری باید در همان دستگاه فیزیکی /var/log باشد) یا لیستی از پسوندهای حذف را برای دایرکتوری تنظیم کنید. عبارتند از. توصیف همراه با جزئیاتاین ویژگی ها و پارامترها (و همچنین مواردی که ذکر نشد) را با دستور پیدا خواهید کرد مرد لوگرت کردن.

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

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

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

    اقدامات دیمون syslogd توسط فایل پیکربندی /etc/syslog.conf کنترل می شود. این یک فایل متنی ساده است که در آن خطوط خالی و خطوط با # در موقعیت اول نادیده گرفته می شوند. فرمت فایل به شرح زیر است:

    <селектор> <действие>.

    مثلا،

    mail.err /var/log/mail.errors

    این خط تضمین می کند که تمام خطاهای ارسال نامه در فایل /var/log/mail.errors ثبت می شود.

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

    همانطور که قبلاً متوجه شدید، انتخابگر به صورت ترکیبی نوشته شده است. که در نمای کلیبه نظر می رسد وسیله ای است

    علاوه بر این، در زمینه<селектор>ممکن است شامل یک یا چند انتخابگر باشد که با نقطه ویرگول از هم جدا شده اند. یک انتخابگر می تواند شامل گروهی از امکانات باشد که با کاما از هم جدا شده اند. انتخابگر می تواند شامل کاراکترهای * و none باشد که به ترتیب به معنی "همه" و "هیچ چیز" هستند.

    نمونه های انتخابگر:

    سطح عمل

    معنی 1، یعنی 2. سطح عمل

    به معنی 1. سطح 1؛ یعنی 2. سطح 2 عمل

    *. سطح عمل

    *.سطح؛به معنی.هیچ عمل

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

    ابزار برنامه هایی که از آن استفاده می کنند

    هسته سیستم هسته

    فرآیندهای کاربر کاربر

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

    دیمون دیمون های سیستم

    auth امنیت و سیستم های اقتدار

    سیستم چاپ lpr

    سیستم تله کنفرانس خبری

    cron شبح cron

    local0-7 هشت سطح پیام محلی

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

    دیمون ftp ftpd

    *همه موارد فوق به معنی

    مقدار سطح سطح

    emerg موقعیت های اضطراری

    هشدار موقعیت های فوری

    بحران حالات بحرانی

    err شرایط خطا

    هشدار هشدارها

    توجه به شرایط غیر معمول

    اطلاعات پیام های اطلاعاتی

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

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

    رشته<действие>نشان می دهد که با پیام دریافتی چه باید کرد.

    توضیحات اقدام

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

    @machinename پیامی را به دیمون syslogd در ماشین مشخص شده ارسال کنید

    @IP_address همان، فقط آدرس IP دستگاه مشخص شده است

    user1، نمایش یک پیام بر روی صفحه نمایش کاربران مشخص شده...

    userN

    * نمایش یک پیام بر روی صفحه نمایش همه کاربران

    *.emerg /dev/console

    *.err;auth.notice /dev/console

    *.err;auth,mail,user.info /var/log/messages

    mail.err /var/log/mail.log

    mail.info @192.168.0.1

    در مورد سیستم syslog، باید به دستور logger اشاره کنیم که به شما امکان می دهد ورودی های سیستم را از اسکریپت های پوسته بنویسید.

    این دستور برای بررسی تغییرات ایجاد شده در فایل /etc/syslog.conf مفید است.

    local5.warning /var/log/local.log

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

    # logger -p local5.warning "تست محلی"

    به فایل /var/log/local.log نگاه کنید. اگر خط "تست محلی" وجود ندارد، به احتمال زیاد فراموش کرده اید که سیگنال HUP را به دیمون syslogd ارسال کنید.

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

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

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

    اوستاپ گفت: "دفتر می نویسد."

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

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

    syslog چیست

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

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

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

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

    مرحله

    شرح

    ظهور، وحشت

    حالت "هراس"

    هشدار

    شرایطی که نیاز به مداخله فوری دارد

    کریت

    شرایط بحرانی

    خطا، خطا

    سایر خطاهای عملیاتی

    هشدار، هشدار

    هشدارها

    اطلاع

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

    اطلاعات

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

    اشکال زدایی

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

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

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

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

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

    منبع

    شرح

    هسته

    پیام های هسته

    auth، authpriv

    امنیت

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

    کنسول

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

    syslog

    پیام های سیستم ثبت بومی

    cron

    پیام های کرون

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

    پیام ها سرورهای 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 مقصد

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

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

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

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

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

    kern.* /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 هدایت می‌شوند.

    mail.*,news.* @syslog.host.ru

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

    lpr.!warning /var/log/printers.log

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

    level0,level3.=debug *

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

    ntp.>crit،<=notice ntpuser,root

    همه پیام‌های سطح هشدار، به استثنای پیام‌هایی که از خدمات پستی می‌آیند، در فایل warn.log ثبت خواهند شد.

    *.=warning,mail.none /var/log/warn.log

    در این صورت تمام پیام هایی که سطح آنها بیشتر یا مساوی با crit باشد از طریق ایمیل برای کاربر root ارسال می شود.

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

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

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

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

    mail.* /var/log/maillog

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

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

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

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

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

    ابزار چوبگیر

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

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

    user$ logger -h syslog.host.ru "تست کنید"

    مثال اول پیامی با سطح کاربری err facility ارسال می کند که طبق فایل پیکربندی پردازش می شود. فرمان دوم پیامی به میزبان راه دور ارسال می کند، منبع و سطح پیش فرض روی 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 root:wheel 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 ذخیره می شود تا فایل log آن دوباره باز شود.

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

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

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

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

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

    جمع بندی

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