این یک نگارش قدیمی از این مطلب است!
فهرست مندرجات
دستور Journalctl برای نمایش و ویرایش لاگ های systemd
مقدمه
برخی از برجسته ترین مزایای استفاده از systemd مواردی که با ورود به سیستم و فرآیند همراه هستند. هنگام استفاده از ابزارهای دیگر ، معمولاً لاگهای مربوطه در سراسر سیستم پراکنده می شوند و توسط پردازشگرهای مختلف پردازش می شوند و تفسیر آنها هنگام اجرای چندین برنامه دشوار است. Systemd تلاش می کند با ارائه یک راه حل مدیریتی متمرکز برای ورود به سیستم و پردازش های هسته کاربر ، این مشکلات را برطرف کند. سیستمی که این لاگها را جمع آوری و مدیریت می کند به عنوان journalctl شناخته می شود.
journalctl ، کلیه پیام های تولید شده توسط هسته ، سرویس ها و غیره را در اختیار شما قرار می دهد. در این راهنما ، ما در مورد چگونگی استفاده از ابزار Journalctl بحث خواهیم کرد که می توان از آنها برای دستیابی و دستکاری داده ها استفاده کرد.
ایده کلی
یکی از انگیزه های مربوط به systemd journal
، متمرکز کردن مدیریت لاگها مربوطه صرفنظر از اینکه منشاء پیام ها کجا هستند. از آنجا که بخش اعظمی از فرآیند بوت شدن و مدیریت سرویس ها توسط فرآیند systemd
اداره می شود ، منطقی است که روش جمع آوری و دسترسی به لاگهای مربوطه را استاندارد سازی کنیم. journald داده ها را از کلیه منابع موجود جمع آوری می کند و آنها را در قالب باینری برای دستکاری آسان و پویا ذخیره می کند.
این یک مزیت مهم را به ما می دهد. که با تعامل با داده ها و استفاده از یک ابزار واحد ، مدیران سیستم میتوانند گزارش ها را به صورت پویا و با توجه به نیاز خود ببینند.
تنظیم زمان سیستم
یکی از مزایای استفاده از یک Journal باینری برای ورود به سیستم ، امکان مشاهده سوابق ورود به سیستم در UTC یا زمان محلی است. به طور پیش فرض ، systemd
نتایج را به وقت محلی نشان می دهد.
به همین دلیل قبل از شروع کار با Journal ، مطمئن خواهیم شد که منطقه زمانی درست تنظیم شده باشد. مجموعه systemd در واقع با ابزاری به نام timedatectl همراه است که می تواند در این امر کمک کند.
ابتدا ، ببینید که چه محدوده های زمانی در دسترس هستند:
timedatectl list-timezones
با این کار منطقه های زمانی موجود در سیستم شما لیست می شوند. وقتی یکی از منطقه های زمانی را که مطابق سیستم یا سرور خود دیدید ، می توانید با استفاده از گزینه set-timezone
آن را تنظیم کنید:
sudo timedatectl set-timezone zone
برای اطمینان از اینکه سیستم شما اکنون از زمان صحیح استفاده می کند ، از دستور timedatectl
به تنهایی یا با گزینه status
استفاده کنید. خروجی باید چیزی شبیه زیر باشد:
timedatectl status
Local time: چهارشنبه 2019-10-02 13:41:44 +0330 Universal time: چهارشنبه 2019-10-02 10:11:44 UTC RTC time: چهارشنبه 2019-10-02 10:11:45 Time zone: Asia/Tehran (+0330, +0330) System clock synchronized: no NTP service: active RTC in local TZ: no
خط اول باید زمان صحیح را نشان دهد.مشاهده اولیه ورود به سیستم
مشاهده اولیه لاگهای سیستم
برای دیدن گزارش هایی که Journal جمع آوری کرده است ، از دستور Journalctl استفاده کنید.
هنگامی که به تنهایی استفاده می شود ، هر ورودی Journal که در سیستم است در صفحه نمایش میدهد، قدیمی ترین ها اول نمایش داده میشوند:
journalctl
-- Logs begin at Fri 2019-05-24 19:55:20 +0430, end at Wed 2019-10-02 13:46:02 > مه 24 19:55:20 linuxsolus systemd[842]: Reached target Timers. مه 24 19:55:20 linuxsolus systemd[842]: Starting D-Bus User Message Bus Socket. مه 24 19:55:20 linuxsolus systemd[842]: Reached target Paths. مه 24 19:55:20 linuxsolus systemd[842]: Listening on D-Bus User Message Bus Soc> مه 24 19:55:20 linuxsolus systemd[842]: Reached target Sockets. مه 24 19:55:20 linuxsolus systemd[842]: Reached target Basic System. مه 24 19:55:20 linuxsolus systemd[842]: Starting Initialise XDG User Directorie> مه 24 19:55:20 linuxsolus systemd[842]: Started Initialise XDG User Directories. مه 24 19:55:20 linuxsolus systemd[842]: Reached target Default. مه 24 19:55:20 linuxsolus systemd[842]: Startup finished in 50ms. مه 24 19:55:20 linuxsolus systemd[842]: Started D-Bus User Message Bus. مه 24 19:55:20 linuxsolus dbus-daemon[857]: [session uid=1000 pid=857] Activati> مه 24 19:55:20 linuxsolus systemd[842]: Starting Virtual filesystem service... مه 24 19:55:20 linuxsolus dbus-daemon[857]: [session uid=1000 pid=857] Successf>
به احتمال زیاد صفحات و صفحاتی از داده ها را اختیار خواهید داشت که اگر مدت طولانی است که systemd
روی سیستم شما باشد ، ده ها یا صدها هزار خط طول آن باشد. این نشان می دهد که چه مقدار داده در پایگاه داده Journal موجود است.
این قالب برای کسانی که برای ورود به سیستم استاندارد syslog عادت دارند ، آشنا خواهد بود. با این حال ، این در واقع داده هایی را از منابع بیشتری جمع آوری می کند تا آنچه که اجرای سنتی syslog انجام میدهد. این شامل لاگهای مربوط به فرآیند شروع بوت اولیه ، هسته ، خطای استاندارد برنامه ها و غیره است. اینها همه در Journal موجود است.
ممکن است متوجه شوید که همه نشان های زمانی که نمایش داده می شوند ، به وقت محلی هستند. اکنون که زمان محلی ما به درستی روی سیستم ما تنظیم شده است ،تمام لاگها با استفاده از این اطلاعات جدید نمایش داده می شوند.
اگر می خواهید نشانگرهای زمانی را با ساعت جهانی نمایش دهید ، می توانید از پارامتر utc–
استفاده کنید:
journalctl --utc
-- Logs begin at Fri 2019-05-24 15:25:20 UTC, end at Wed 2019-10-02 10:22:40 UT> مه 24 15:25:20 linuxsolus systemd[842]: Reached target Timers. مه 24 15:25:20 linuxsolus systemd[842]: Starting D-Bus User Message Bus Socket. مه 24 15:25:20 linuxsolus systemd[842]: Reached target Paths. مه 24 15:25:20 linuxsolus systemd[842]: Listening on D-Bus User Message Bus Soc> مه 24 15:25:20 linuxsolus systemd[842]: Reached target Sockets. مه 24 15:25:20 linuxsolus systemd[842]: Reached target Basic System. مه 24 15:25:20 linuxsolus systemd[842]: Starting Initialise XDG User Directorie> مه 24 15:25:20 linuxsolus systemd[842]: Started Initialise XDG User Directories. مه 24 15:25:20 linuxsolus systemd[842]: Reached target Default. مه 24 15:25:20 linuxsolus systemd[842]: Startup finished in 50ms. مه 24 15:25:20 linuxsolus systemd[842]: Started D-Bus User Message Bus. مه 24 15:25:20 linuxsolus dbus-daemon[857]: [session uid=1000 pid=857] Activati> مه 24 15:25:20 linuxsolus systemd[842]: Starting Virtual filesystem service...
فیلتر Journal توسط Time
اگرچه دستیابی به چنین مجموعه بزرگی از داده ها قطعاً مفید است ، اما چنین مقدار زیادی از اطلاعات برای چک و بررسی شاید غیرممکن یا خیلی مشکل است. به همین دلیل یکی از مهمترین ویژگی های journalctl پارامترهای آن است.
نمایش لاگ های مربوط به بوت فعلی
اساسی ترین پارامتر که ممکن است روزانه از آن استفاده کنید پارامتر b- است. این همه ورودی های Journal را که از آخرین راه اندازی مجدد سیستم جمع آوری شده است ، به شما نمایش میدهد.
journalctl -b
این به شما کمک می کند اطلاعاتی را که مربوط به محیط فعلی شماست ، شناسایی و مدیریت کنید. در مواردی که از این ویژگی استفاده نمی کنید و میخواهید بیش از یک روز را به شما نمایش دهد، می بینید که هر وقت سیستم ریبوت میشود چیزی مانند زیر نمایش داده شده است:
-- Reboot --
این می تواند به شما کمک کند تا اطلاعات را به صورت منطقی جدا کنید.