وقتی با مشکلی در عملکرد سرور خود مواجه می شوید، اولین کاری که می خواهید انجام دهید این است لاگ های لینوکس خود را بررسی کنید. در گزارش سیستم، میتوانید پیامهای تشخیصی مفیدی از اجزای مختلف سیستمعامل مانند هسته یا سرویسهای مختلف پیدا کنید، بنابراین به احتمال زیاد علت خرابی را در آنجا پیدا خواهید کرد.
هر پیامی در گزارش در نتیجه رویدادهای خاصی در سیستم عامل ایجاد می شود: از کاربر، مجوز تا خاموش شدن سرویس یا خرابی برنامه. این رویدادها بسته به اینکه چقدر بحرانی هستند اولویت های متفاوتی دارند. انواع رویدادهای زیر در لینوکس وجود دارد:
emerg- شکست، بالاترین اولویت؛alert- هشدار فوری؛crit- رویداد مهم؛err- خطای معمولی؛warn- هشدار معمولی؛notice- اطلاع رسانی؛info- پیام اطلاعاتی؛debug- اشکال زدایی اطلاعات؛
در حال حاضر، خدمات اصلی جمع آوری لاگ در لینوکس هستند rsyslog و systemd-journald. آنها با اکثر بسته های توزیع مدرن همراه هستند و به طور مستقل کار می کنند.
rsyslog
گزارش های این سرویس در "/ var / log /پوشه " به شکل فایل های متنی معمولی. پیام های گزارش بسته به نوع رویداد در فایل های مختلف قرار می گیرند. به عنوان مثال، "/var/log/auth.log” حاوی اطلاعاتی در مورد مجوز کاربران در سیستم است و ”/var/log/kern.log" حاوی پیامهای هسته است. نام فایلها میتواند در بستههای توزیع متفاوت باشد، بنابراین بیایید نگاهی به فایل پیکربندی بیندازیم تا متوجه شویم که کجاست./etc/rsyslog.d/50-default.conf".
این قوانین نشان می دهد که کدام فایل حاوی هر نوع پیام گزارش است. قسمت سمت چپ نوع پیام را به شکل زیر نمایش می دهد.[منبع]. [اولویت]” و قسمت سمت راست نام فایل لاگ را نمایش می دهد. هنگام نوشتن نوع پیام ”*"کاراکتر را می توان به آن اضافه کرد. به معنای مقدار خالی یا "هیچبیایید نگاهی دقیق تر به دو قانون اول بیندازیم.
“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”
قانون اول به این معنی است که تمام پیامهای دریافتی از مکانیسم مجوز ثبت میشوند:/var/log/auth.logفایل ". تمام تلاش های مجوز (اعم از موفقیت آمیز و غیر موفق) در این فایل ثبت می شود. قانون دوم نشان می دهد که همه پیام ها به جز پیام هایی که با مجوز مرتبط هستند در " ثبت می شوند./ var / log / syslogاین دو فایل معمولاً محبوبترین فایلها هستند. قوانین زیر مسیر ذخیرهسازی گزارشهای هسته را مشخص میکند.کرن.*گزارش های خدمات پستی و خدمات پستیپست.*"
فایل های گزارش را می توان با کمک هر ویرایشگر متنی مانند کمتر, گربه, دم. بیایید "/var/log/auth.log" فایل
less /var/log/auth.log
هر خط از فایل یک پیام جداگانه است که از برنامه یا سرویس دریافت می شود. همه پیام ها صرف نظر از منبع آنها دارای یک قالب و از 5 قسمت هستند. بیایید پیام هایلایت شده در اسکرین شات را به عنوان مثال در نظر بگیریم.
- مهر زمانی پیام - "12 فوریه 06:18:33"
- نام رایانه ای که پیام را ارسال کرده است - "vds"
- نام برنامه یا سرویسی که پیام را ارسال کرده است - "sshd"
- شناسه فرآیند - [653]
- متن پیام - "گذرواژه پذیرفته شده برای mihail از 188.19.42.165 پورت 2849 ssh2"
این نمونه ای از اتصال موفق به SSH بود.
و در اینجا چگونگی تلاش ناموفق برای ورود به سیستم به نظر می رسد:
این فایل همچنین دستورات با مجوزهای پیشرفته را ضبط می کند
بیایید در را باز کنیم / var / log / syslog پرونده
یک پیام برجسته در اسکرین شات، پیامی در مورد خاموش شدن رابط شبکه است.
برای جستجوی اطلاعات از طریق فایل های متنی طولانی استفاده کنید grep استفاده سودمندی شما می توانید تمام پیام های دریافتی را پیدا کنید pptpd خدمات در "/ var / log / syslog" فایل.
grep 'pptpd' /var/log/syslog
در طول تشخیص می توانید استفاده کنید دم ابزاری که می تواند چندین خط آخر فایل را نمایش دهد. فرمان "tail -f / var / log / syslog” به شما امکان می دهد ضبط گزارش ها را در زمان واقعی تماشا کنید.
خدمات rsyslog بسیار انعطاف پذیر و قدرتمند است می توان از آن برای برداشت سیاهههای مربوط در سیستم های محلی و همچنین در سطح سازمانی استفاده کرد. می توانید اسناد کامل را در وب سایت رسمی بیابید https://www.rsyslog.com/
چرخش لاگ ها در لینوکس
ضبط گزارش به طور مداوم انجام می شود، بنابراین اندازه فایل ها دائماً افزایش می یابد. مکانیزم چرخش آرشیو خودکار لاگ های قدیمی و ایجاد فایل های جدید را تضمین می کند. بسته به قوانین، می تواند روزانه، هفتگی، ماهانه یا با محدودیت اندازه اتفاق بیفتد. با ایجاد گزارش های جدید، موارد قدیمی را می توان فقط حذف کرد یا از طریق ایمیل ارسال کرد. چرخش سیاههها توسط به دست آورد سودمندی می توانید پیکربندی اصلی را در " پیدا کنید/etc/logrotate.confفایل ". محتوای فایل ها نیز در " پردازش می شود/etc/logrotate.d/”پوشه
قوانین جدید را می توان به فایل پیکربندی اصلی وارد کرد. با این حال، بهتر است یک فایل جداگانه در " ایجاد کنید/etc/logrotate.d/به طور پیش فرض، چند فایل در این فهرست وجود دارد
بیایید نگاهی به فایل بیاندازیم/etc/logrotate.d/rsyslog" که حاوی قوانین چرخش برای سیاهههای مربوط به rsyslog خدمات.
ابتدا، قانون باید شامل مسیر فایل log باشد و سپس تمام دستورالعمل ها را در براکت های منحنی دنبال کند.
- چرخش 7 - تعداد فایل برای نگهداری - 7
- روزانه - هر روز یک فایل جدید ایجاد کنید
- فشرده کردن - فشرده سازی و بایگانی فایل های قدیمی
در اسکرین شات می توانید ببینید که در "/ var / log /"پوشه ورود به سیستم اصلی وجود دارد"syslog” و 7 آرشیو که با قوانین موجود در فایل پیکربندی مطابقت دارد.
شما می توانید شرح مفصل تری از logrotate را در دفترچه راهنما بیابید، با اجرای "مرد logrotateفرمان
جمع آوری لاگ های لینوکس - مجله
خدمات برداشت چوب systemd-journald بخشی از سیستم اولیه است systemd. فایل های لاگ لینوکس در "ذخیره می شوند/var/log/journal/” در قالبی خاص و با کمک باز می شود ژورنالکتل سودمندی فرمت رکوردها دقیقاً مشابه است rsyslog.
فرمان ژورنالکتل بدون ویژگی همه رکوردها را نشان می دهد اما برای سیاهههای بزرگتر مناسب نیست. بیایید نگاهی به برخی از گزینه های این ابزار بیاندازیم.
journalctl -b- نمایش تمام رکوردها از آخرین شروعjournalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10"- نمایش رکورد در یک بازه زمانی خاصjournalctl -u pptpd- نمایش سوابق یک سرویس خاصjournalctl -k- نمایش پیام های هستهjournalctl -p err- نمایش پیام هایی با اولویت خاص، پیام های با اولویت بالاتر در این مورد (crit، alert، emerg)journalctl -f- نمایش پیام ها در زمان واقعی
برای انعطاف پذیری بهتر می توانید این گزینه ها را ترکیب کنید. بیایید همه اشتباهات را نشان دهیم pptpd سرویس
journalctl -u pptpd -p err
اگر مسیر فایل اجرایی را به عنوان یک ویژگی مشخص کنید، ابزار تمام پیام های ارسال شده توسط این فایل را نشان می دهد. بیایید همه پیامهای ارسال شده توسط فایل را نشان دهیم/usr/bin/sudo” از ساعت 04:15 در 18 فوریه 2020. در واقع، تمام دستورات اجرا شده با مجوزهای بالاتر را نشان می دهد.
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
برای اینکه بفهمید فایل های لاگ چقدر فضای دیسک را برای اجرای دستور زیر اشغال می کنند
journalctl --disk-usage
برای محدود کردن فایل log به 1Gb دستور زیر را اجرا کنید
journalctl --vacuum-size=1G
باز کردن فایل های باینری
حال بیایید نگاهی به چند فایل خاص در "/ var / log /پوشه ای که تمام تلاش های ورود به سیستم در آن ذخیره می شود. این فایل ها باینری هستند و فقط با برنامه های خاص باز می شوند.
/var/log/wtmp حاوی اطلاعاتی در مورد تلاش های موفق برای ورود به سیستم است. از آخرین ابزار برای باز کردن آن استفاده کنید.
/var/log/btmp - شامل تمام تلاش های ناموفق برای ورود به سیستم است. می توان آن را با lastb با مجوزهای پیشرفته باز کرد. صفت -n تعداد خطوط نمایش داده شده از انتهای فایل را مشخص می کند.
/var/log/loadlog - شامل زمان آخرین اقدام ورود به سیستم برای هر رکورد حساب است. می توان آن را با آخرین ارسال