خانه » چگونه به صورت دستی در لینوکس لاگ اضافه کنیم
آموزش ابزار شبکه امنیت لینوکس

چگونه به صورت دستی در لینوکس لاگ اضافه کنیم

فایل 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

نتیجه

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

مهدی منصوری

من مهدی منصوری و کارشناس حوزه نرم افزار و امنیت اطلاعات هستم. کارشناسی ارشد خودم را در رشته امنیت اطلاعات از دانشگاه مالک اشتر تهران گرفتم. هم اکنون در زمینه DevOPS مشغول هستم. و در زمان های ممکن در این سایت و چند سایت دیگه مطلب می گذارم

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

مهدی منصوری

من مهدی منصوری و کارشناس حوزه نرم افزار و امنیت اطلاعات هستم. کارشناسی ارشد خودم را در رشته امنیت اطلاعات از دانشگاه مالک اشتر تهران گرفتم.
هم اکنون در زمینه DevOPS مشغول هستم. و در زمان های ممکن در این سایت و چند سایت دیگه مطلب می گذارم

افزودن نظر

برای ارسال نظرات خود اینجا را کلیک کنید