مدیریت Log در لینوکس

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

فایل های Log در مسیر دایرکتوری var/log/ قرار دارند و مرتبط با هر سرویس مانند sshd یا dhcpd یک فایل Log وجود دارد.لینوکس از ابزاری به نام syslogd که مخفف System Log Daemon برای ثبت رویداد ها استفاده می کند.این برنامه با سرویس ها و نرم افزار های در ارتباط بوده و آنها رویداد های خود را به این برنامه داده(syslogd رویداد ها را جمع آوری می کند) و در فایل های Log خود آنها ثبت می کند.

فایل های Log فایل های متنی هستند و می توان با دستور های vi , Vim و دستور های less , cat و دستور های head ,tail مشاهده کرد اما پیشنهاد می کنم از دستور های tail , head و less استفاده کنید.از ابزار های دیگر مرتبط با Log ها در لینوکس ابزار های logwatch است که در توزیع های لینوکسی وجود دار. در دایرکتوری etc/log.d/ و تحت فایل logwatch.conf قابل پیکربندی می باشد.از اعمال مرتبط با Log ها Log Rotate یا گردش Log است. وقتی که اندازه فایل های Log زیاد می شود بایستی از آنها یک پشتیبان تهیه کرد و یا اینکه دنباله Log کردن را دریک فایل جدید ادامه داد و فایل قدیمی را ارشیو کرد. این اعمال بصورت خودکار و در غالب Rotate کردن انجام می شود.یکی دیگر از موضاعتی که قابل بحث است ذخیره رویداد ها بصورت محلی و راه دور می باشد.محلی بودن ثبت رویداد کاملن واضح است و رویداد در خود آن ماشین ذخیره می شوند اما راه دور به معنی اینکه یک سیستم را بعنوان Log Server انتخاب می کنیم و تمام ماشین ها در صورتی که تنظیم شده باشند رویداد هایشان را در این سرور ارسال می کنند.

ملاحضاتی درباره ثبت رویداد ها :

  1. بهتر است که یک پارتیشن مجزا برای دایرکتوری var/log/ در نظر بگیریم چونکه رشد اندازه فایل های Log بسیار بالاست و در نظر گرفتن پارتیشن مجزا خارج از دایرکتوری / از بروز مشکل جلوگیری می کند.
  2. پیکربندی عملیات Rotate کمک به کنترل حجم و بازخوانی ساده تر فایل ها می کند.
  3. بهتر است که ثبت روبداد را هم بصورت محلی(یعنی در خود همان ماشین) و هم بصورت راه دور(یعنی در یک سرور مجزا) انجام دهید.

فایل های Log مهم :

در توزیع CentOS و دیگر توزیع ها در زیر دایرکتوری var/log/ چندین فایل وجود دارد که به مهمترین انها اشاره می کنیم :

message : شامل رویداد های سیستم و اتفاقاتی که در هنگام بوت شدن و خاموش شدن سیستم می افتد.دستور dmesg این فایل را می خواند و خروجی را نشان می دهد.

auth.log : همانطور که در این پست گفتیم با استفاده از دستور های si و sudo این فایل بروز می شود.

kern.log : فایل حاوی اطلاعات و رویداد های کرنل سیستم عامل.

cron.log : در این پست سرویس cron گفته شده. این فایل حاوی اطلاعات مربوط به این سرویس اشت.

mail.log : اطلاعات و رویداد های Mail Server ها و MTA هایی مانند sendmail.

qmail : مرتبط با سرویس پست الکترونکی qmial (در صورتی که qmail را نصب کرده باشید وجود دارد).

httpd : مرتبط با وب سرور آپاچی (در صورتی که httpd را نصب کرده باشید وجود دارد).

boot.log : مرتبط با اطلاعات و رویداد های فرایند بوت شدن سیستم.

mysqld.log : مرتبط با پایگاه داده MySQL (در صورتی که MySQL را نصب کرده باشید وجود دارد).

secure : مشابه auth.log

wtmp و utmp : در ارتباط با اطلاعات ورود کاربران به سیستم که کدام ورود ها ناموفق یا کدام ها موفق و اینکه اخرین ورود ها کدام ها هستند. دستوری مانند last این فایل ها را می خواند.

yum.log : مختص سیستم های مبنتی بر RedHat که در ارتباط با دستور yum است.

چگونه فایل های Log را بخوانیم :

همانطور که گفته شد ابزار هایی مانند less و یا Logwatch برای خواندن فایل های Log بکار می روند و نوع این فایل ها معمولا از نوع متنی (ASCII) هستند. اما گونه دیگری مانند wtpm و یا utmp از نوع ASCII نبوده بلکه از نوعی Binary هستند و با ابزار های معمولی قابل خواندن نمی باشند.بلکه باید آنها را با دستور های خاص خودشان خواند مانند دستور last که در بالا گفته شد.دستور type را برای فهمیدن نوع فایل در لینوکس بکار می بریم.

type /path/to/file

خواندن و مشاهده این فایل ها و حتی استفاده از دستور های خاصی مانند last نیاز به دسترسی کاربر ریشه دارد.یعنی یک کاربر عادی نمی تواند این فایل ها را تغییر دهد یا حتی خود مدیر هم شاید نتواند این فایل ها(مانند wtmp) را تغییر دهند چون اطلاعات ضروری در انها ثبت شده اند.

جدول زیر فهر ست کاملی از فایل های Log در تمامی در تمامی توزی های لینوکسی نشان می دهد :

دریافت عکس

در مورد جدول بالا :

ستون File نام فایل و ستون Program نام برنامه ای که رویداد ها را در آن فایل ذخیره می کند

ستون Whrer نوع Log را تعیین می کند که سه نوع

  • S= System Log
  • H=Hardwired
  • C=Configuration File

ستون Freq زمانبندی Log کردن را نشان می دهد که :

  • D-Daily
  • W=Weekly
  • M=Monthly

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

  • U=Ubuntu
  • R=RedHat&CentOS
  • S=Suse
  • S=Solaris
  • H=HP-UX

 

 

 

در بخش اول ” مدیریت Log ها در لینوکس “ مفهوم Log و چندین فایل مهم در توزیع های لینوکسی گفته شد. چگونگی خواندن فایل های Log و ابزار های مناسب نیز گفته شد.در این مطلب چگونگی ایجاد Log و دادن آن به syslogd و ثبت آن در یک فایل دلخواه گفته می شود. دو دستور logger و faillog در ارتباط با Log ها هستند. دستور logger یک واسط خط فرمان برای ثبت رویداد ها توسط syslogd است.

از دستور logger برای ثبت رویداد های اجرای یک اسکریپت استفاده میشود. فرض کنید اسکریپتی دارید که توسط crond مرتبن اجرا میشود و می خواهید از اجرای آن رویداد هایی را نیز در یک فایل ثبت کنید. ایم فایل می تواند یک فایل پیش فرض مانند var/log/message/ باشد یا یک فایل تعریف شده توسط خود شما. یک مثال ساده از آن دستور زیر است. این دستور یک خط به انتهای فایل var/log/message/ اضافه میکند.

“logger “In yek test az logger CMD ast

با دستور زیر می توانید ببنید که کاربر root در کدام ساعت و تاریخ و از چه ماشینی اقدام به ثبت Log کرده است. (در این مثال از localhost رویداد ثبت شده است اما می تواند رویداد از یک ماشین دیگر ثبت شده باشد که به این نوع Remote Logging می گویند)

tail -n1 /var/log/message

فرض کنید یک اسکریپت دارید که باید در یک فایل رویداد هایش را ثبت کند. می توانید رویداد های آن اسکریپت را در فایل دلخواه که باید زیر دایرکتوری var/log/ باشد را ثبت کند. این دستور دارای سوئیچ های

t- : بعنوان Tag بکار می رود. در هر خط پیش از هر Error این Tag نوشته می شود.

f- : مسیر فایلی که باید در آن رویداد ثبت شود را تعیین می کند.

s- : خطاها را نیز در نمایشگر نشان می دهد.

یک مثال از استفاده دستور در اسکریپت نویسی مثال زیر است. دستور های زیر را در فایلی به نام chkdir.sh ذخیره کنید.

خط 1 : یک متغیر به نام logmsg تعریف می کند که شامل دستور logger به همراه سوئیچ t- و MyScript بعنوان Tag است که در ابتدای هر خط می اید.

خط 2 : همان متغیر را با یک مقدار رشته ای چاپ می کند. این طور فرض کنید که متغیر logmsg همان دستور usr/bin/logger -s -t MyScript/ است که در خط دوم یک رشته را که همان خطا است را بعنوان پارامتر می گیرد و چاپ می شود. پس در ابتدای هر خط به خاطر t- یک MyScript چاپ می شود.

خط 4,3 : خط 3 چک می کند که آیا یک دایرکتوری به نام home/fred/ وجو دارد. اگر داشت پیام خط 4 را چاپ می کند.

خط 5 : اگر دایرکتوری بالا نبود پیام خط 5 چاپ می شود

خروجی های این دستور بصورت پیش فرض در فایل var/log/message/ ثبت می شوند و همچنین روی نمایشگر هم چاپ می شود. برای مشاهده آنها از دستور tail بصورت زیر استفاده کنید.

در شکل زیر دستور chkdir/. اسکریپت نوشته شده را اجرا می کند.

 

منبع

http://falearn.ir

660 نظر / نظر خود را در زیر وارد کنید

  1. Thanks for some other fantastic post. The place else may just anybody get that type of info in such a perfect means of writing? I’ve a presentation subsequent week, and I am on the search for such info.

  2. Wow, incredible blog layout! How lengthy have you ever been blogging for? you make blogging look easy. The total glance of your site is great, let alone the content material!

  3. Hello there. I discovered your blog via Google at the same time as looking for a similar matter, your website got here up. It looks great. I have bookmarked it in my google bookmarks to visit then.

  4. You can certainly see your skills in the work you write. The world hopes for more passionate writers like you who aren at afraid to say how they believe. Always follow your heart.

  5. Thank you for another fantastic article. Where else could anybody get that kind of info in such a perfect way of writing? I have a presentation next week, and I am on the look for such information.

  6. I just want to say I’m beginner to weblog and definitely enjoyed this blog site. Probably I’m going to bookmark your website . You surely come with really good well written articles. With thanks for sharing your blog.

  7. Wonderful blog! I found it while searching on Yahoo News. Do you have any tips on how to get listed in Yahoo News? I ave been trying for a while but I never seem to get there! Many thanks

  8. This is really interesting, You are a very skilled blogger. I have joined your feed and look forward to seeking more of your fantastic post. Also, I ave shared your website in my social networks!

  9. I thought it was going to be some boring old publish, but it really compensated for my time. I will publish a link to this page on my weblog. I am sure my visitors will find that really useful

  10. This is very interesting, You are a very skilled blogger. I have joined your rss feed and look forward to seeking more of your magnificent post. Also, I have shared your site in my social networks!

  11. I thought it was going to be some boring old publish, but it really compensated for my time. I will publish a link to this page on my weblog. I am sure my visitors will find that really useful

  12. I think other website proprietors should take this website as an model, very clean and great user genial style and design, let alone the content. You are an expert in this topic!

  13. I think this is among the most important info for me. And i’m glad reading your article. But want to remark on few general things, The website style is great, the articles is really great : D. Good job, cheers

  14. I actually wanted to develop a brief remark to say thanks to you for some of the great secrets you are giving out at this website. My time consuming internet research has at the end of the day been paid with reputable know-how to write about with my classmates and friends. I ‘d tell you that many of us site visitors actually are truly blessed to live in a good site with very many brilliant professionals with insightful solutions. I feel truly privileged to have come across your webpage and look forward to many more enjoyable times reading here. Thank you once more for everything.

  15. My brother recommended I might like this blog. He was entirely right. This post truly made my day. You can not imagine simply how much time I had spent for this information! Thanks!

  16. I precisely desired to appreciate you once again. I do not know the things I would have made to happen in the absence of the basics documented by you directly on such topic. This has been a very frustrating circumstance in my position, but seeing the very specialised style you handled it took me to leap over gladness. I will be grateful for your help and as well , hope you find out what a powerful job that you’re accomplishing training some other people all through your web page. I’m certain you have never met any of us.

  17. My brother recommended I might like this blog. He was entirely right. This post truly made my day. You can not imagine simply how much time I had spent for this information! Thanks!

  18. You can definitely see your expertise within the work you write. The sector hopes for even more passionate writers like you who aren at afraid to say how they believe. All the time follow your heart.

  19. This is very interesting, You are a very skilled blogger. I have joined your feed and look forward to seeking more of your wonderful post. Also, I have shared your website in my social networks!

  20. I think this is among the most important info for me. And i’m glad reading your article. But want to remark on few general things, The website style is great, the articles is really great : D. Good job, cheers

  21. I precisely desired to appreciate you once again. I do not know the things I would have made to happen in the absence of the basics documented by you directly on such topic. This has been a very frustrating circumstance in my position, but seeing the very specialised style you handled it took me to leap over gladness. I will be grateful for your help and as well , hope you find out what a powerful job that you’re accomplishing training some other people all through your web page. I’m certain you have never met any of us.

  22. I precisely desired to appreciate you once again. I do not know the things I would have made to happen in the absence of the basics documented by you directly on such topic. This has been a very frustrating circumstance in my position, but seeing the very specialised style you handled it took me to leap over gladness. I will be grateful for your help and as well , hope you find out what a powerful job that you’re accomplishing training some other people all through your web page. I’m certain you have never met any of us.

  23. I actually wanted to develop a brief remark to say thanks to you for some of the great secrets you are giving out at this website. My time consuming internet research has at the end of the day been paid with reputable know-how to write about with my classmates and friends. I ‘d tell you that many of us site visitors actually are truly blessed to live in a good site with very many brilliant professionals with insightful solutions. I feel truly privileged to have come across your webpage and look forward to many more enjoyable times reading here. Thank you once more for everything.

  24. I think this is among the most important info for me. And i’m glad reading your article. But want to remark on few general things, The website style is great, the articles is really great : D. Good job, cheers

  25. I think this is among the most important info for me. And i’m glad reading your article. But want to remark on few general things, The website style is great, the articles is really great : D. Good job, cheers

  26. I think this is among the most important info for me. And i’m glad reading your article. But want to remark on few general things, The website style is great, the articles is really great : D. Good job, cheers

  27. I precisely desired to appreciate you once again. I do not know the things I would have made to happen in the absence of the basics documented by you directly on such topic. This has been a very frustrating circumstance in my position, but seeing the very specialised style you handled it took me to leap over gladness. I will be grateful for your help and as well , hope you find out what a powerful job that you’re accomplishing training some other people all through your web page. I’m certain you have never met any of us.

  28. I think this is among the most important info for me. And i’m glad reading your article. But want to remark on few general things, The website style is great, the articles is really great : D. Good job, cheers

  29. I actually wanted to develop a brief remark to say thanks to you for some of the great secrets you are giving out at this website. My time consuming internet research has at the end of the day been paid with reputable know-how to write about with my classmates and friends. I ‘d tell you that many of us site visitors actually are truly blessed to live in a good site with very many brilliant professionals with insightful solutions. I feel truly privileged to have come across your webpage and look forward to many more enjoyable times reading here. Thank you once more for everything.

  30. I precisely desired to appreciate you once again. I do not know the things I would have made to happen in the absence of the basics documented by you directly on such topic. This has been a very frustrating circumstance in my position, but seeing the very specialised style you handled it took me to leap over gladness. I will be grateful for your help and as well , hope you find out what a powerful job that you’re accomplishing training some other people all through your web page. I’m certain you have never met any of us.

  31. I actually wanted to develop a brief remark to say thanks to you for some of the great secrets you are giving out at this website. My time consuming internet research has at the end of the day been paid with reputable know-how to write about with my classmates and friends. I ‘d tell you that many of us site visitors actually are truly blessed to live in a good site with very many brilliant professionals with insightful solutions. I feel truly privileged to have come across your webpage and look forward to many more enjoyable times reading here. Thank you once more for everything.

دیدگاهتان را بنویسید