فایل log فایلی است که شامل مجموعهای از رکوردها (یا لیستی از رویدادها) است که توسط خود سیستم ثبت شده است. با استفاده از فایل های لاگ، sysadmin می تواند آنچه را که در یک روز یا زمان خاص اتفاق افتاده است، ردیابی کند. بیشتر فایل های log سیستم توسط ادمین ها برای عیب یابی استفاده می شود. فایل های log به طور خودکار تولید می شوند و در دایرکتوری مشترک /var/log/
ذخیره می شوند. همچنین می توانیم به صورت دستی پیام ها را به فایل های گزارش سیستم لینوکس اضافه کنیم. برای مثال، پس از راهاندازی سرور Log، ممکن است بخواهید بررسی کنید که آیا سرور log به درستی کار میکند یا خیر. برای انجام این کار، میتوانیم به صورت دستی برخی از ورودیها را در فایلهای log اضافه کنیم تا سرور لاگ را آزمایش کنیم. اینجاست که دستور logger به کار می آید.
با استفاده از فرمان Logger، پیامها را به فایلهای log سیستم لینوکس اضافه کنید
دستور logger بخشی از پکیج util-linux است ، پس برای نصب آن زحمتی به خود ندهید. اجازه دهید چند نمونه دستور logger را به شما نشان دهم.
افزودن ورودی ها به صورت دستی به فایل های log سیستم کاملاً آسان است! استفاده معمولی از دستور logger بصورت زیر است:
logger <message-to-add>
مثال:
$ logger Welcome to LinuxMe.ir
دستور بالا ورودی “Welcome to LinuxMe.ir” را به فایل های گزارش سیستم اضافه می کند.
اجازه دهید بررسی کنیم که آیا پیام اضافه شده است با دستور tail
:
$ tail -l /var/log/syslog
خروجی نمونه:
Jan 31 07:19:23 ubuntuserver systemd[1705]: Listening on REST API socket for snapd user session agent.
Jan 31 07:19:23 ubuntuserver systemd[1705]: Listening on GnuPG network certificate management daemon.
Jan 31 07:19:23 ubuntuserver systemd[1705]: Listening on GnuPG cryptographic agent and passphrase cache.
Jan 31 07:19:23 ubuntuserver systemd[1705]: Reached target Sockets.
Jan 31 07:19:23 ubuntuserver systemd[1705]: Reached target Timers.
Jan 31 07:19:23 ubuntuserver systemd[1705]: Reached target Basic System.
Jan 31 07:19:23 ubuntuserver systemd[1]: Started User Manager for UID 1000.
Jan 31 07:19:23 ubuntuserver systemd[1705]: Reached target Default.
Jan 31 07:19:23 ubuntuserver systemd[1705]: Startup finished in 298ms.
Jan 31 07:33:14 ubuntuserver mahdi: Welcome to LinuxMe.ir
همانطور که در خروجی مشاهده می کنید، پیام داده شده به فایل syslog اضافه شده است.
نکته: سیستم عامل های مختلف لینوکس پیام های log را در فایل های مختلف ذخیره می کنند. من به شما پیشنهاد می کنم که به دایرکتوری /var/log/
مراجعه کنید تا بدانید لاگ ها در کدام فایل ها ذخیره می شوند. در سیستمهای مبتنی بر RPM مانند CentOS، پیامهای log کلی به جای فایل /var/log/messages
در فایل /var/log/syslog
ذخیره میشوند.
همچنین میتوانید پیامها را با قرار دادن آنها در گیومههای تکی یا دوگانه اضافه کنید.
$ logger "Welcome to LinuxMe.ir blog"
یا
$ logger 'Howdy, Welcome to LinuxMe.ir blog'
بررسی کنید که آیا ورودی ها با استفاده از دستور tail به فایل syslog اضافه شده اند یا خیر :
$ tail -l /var/log/syslog
[...]
Jan 31 07:40:02 ubuntuserver mahdi: Welcome to LinuxMe.ir blog
Jan 31 07:40:31 ubuntuserver mahdi: Howdy, Welcome to LinuxMe.ir blog
PID لاگر را به Logهای سیستم اضافه کنید
ما حتی میتوانیم PID فرآیند لاگر را با هر خط با استفاده از i
مانند زیر مشخص کنیم.
$ logger -i 'Howdy, Welcome to LinuxMe.ir blog'
پیام های لاگ را با استفاده از دستور tail
تأیید کنید:
$ tail -l /var/log/syslog
[...]
Jan 31 07:49:22 ubuntuserver mahdi[1879]: Howdy, Welcome to LinuxMe.ir blog
در اینجا، ۱۸۷۹
شناسه فرآیند لاگر است.
برچسب ها را به پیام ها اضافه کنید
همانطور که ممکن است در خروجی های بالا متوجه شده باشید، ورودی های جدید اضافه شده با نام کاربری فعلی یعنی mahdi برچسب گذاری می شوند . تگ پیش فرض نام کاربری است که در ترمینال وارد شده است. با این حال، میتوانیم هر خطی را برای ثبت با یک برچسب خاص با استفاده از t
علامتگذاری کنیم.
$ logger -i -t LinuxMe 'Howdy, Welcome to LinuxMe.ir blog'
ورودی های گزارش را بررسی کنید:
$ tail -l /var/log/syslog
[...]
Jan 31 07:54:02 ubuntuserver LinuxMe[1881]: Howdy, Welcome to LinuxMe.ir blog
آخرین ورودی با LinuxMe تگ شده و شناسه فرآیند آن ۱۸۸۱ است.
پیام ها را از یک فایل به فایل های log اضافه کنید
همچنین می توان ورودی های یک فایل را به فایل های log سیستم خود اضافه کرد.
اجازه دهید یک فایل متنی نمونه ایجاد کنیم.
$ echo "This is test file" > file.txt
$ cat file.txt
This is test file
اکنون با استفاده از دستور زیر، محتویات file.txt
به فایل های لاگ سیستم را اضافه کنید:
$ logger -f file.txt
بررسی فایل های گزارش:
$ tail -l /var/log/syslog
[...]
Jan 31 08:43:06 ubuntuserver mahdi: This is test file
اگر فایل ورودی دارای خطوط خالی باشد، میتوانید با استفاده از e
مانند زیر، از اضافه شدن آنها به فایلهای log جلوگیری کنید.
$ logger -e -f file.txt
پیام ها را با اولویت ثبت کنید
امکان ثبت پیام ها با اولویت مشخص وجود دارد.
$ logger "Welcome To LinuxMe.ir" --priority user.warning
اولویت پیش فرض ” user.notice
“ است . برای اطلاع از همه گزینه های اولویت موجود، به صفحه راهنمای logger مراجعه کنید.
ورودی «stdin» و پیامها را به logهای سیستم وارد کنید
می توانیم پیام را از ورودی پایپ کنیم و با استفاده از آن ورودی ها را به syslog ارسال کنیم:
$ echo "Welcome to LinuxMe.ir" | logger
ارسال پیام به سرور log راه دور
برای ارسال پیامها به یک سرور syslog راه دور که در یک پورت خاص اجرا میشود، اجرا کنید:
$ logger "Welcome to LinuxMe.ir" --server <hostname-or-ip> --port <port-no>
یا
$ logger "Welcome to LinuxMe.ir" -n <hostname-or-ip> -p <port-no>
شماره پورت پیش فرض ۵۱۴ است.
اندازه پیام ها را محدود کنید
ما می توانیم حداکثر اندازه مجاز پیام را با استفاده از --size
تنظیم کنیم.
$ logger --size 5 abcdefghijklmnopqrswxyz
اندازه پیام گزارش را بررسی کنید:
$ tail -l /var/log/syslog
[...]
Jan 31 09:09:02 ubuntuserver mahdi: abcde
اندازه پیش فرض 1KiB
کاراکتر است.
برای جزئیات بیشتر، صفحات man را بررسی کنید.
$ man logger
نتیجه
در این آموزش مختصر گفتیم که دستور لاگر چیست، چگونه میتوانید از دستور لاگر برای افزودن دستی پیامها به فایلهای لاگ سیستم لینوکس استفاده کنید تا بررسی کنید که آیا یک سرور لاگ به درستی کار میکند یا خیر.
افزودن نظر