terminal:j:how-to-use-journalctl-to-view-and-manipulate-systemd-logs
تفاوتها
تفاوت دو نسخهٔ متفاوت از صفحه را مشاهده میکنید.
نگارش قبل در دو طرفنگارش قبلنگارش بعد | نگارش قبل | ||
terminal:j:how-to-use-journalctl-to-view-and-manipulate-systemd-logs [2019/10/02 13:18] – phoenix | terminal:j:how-to-use-journalctl-to-view-and-manipulate-systemd-logs [2019/10/03 11:06] (فعلی) – نمایش بر اساس تاریخ phoenix | ||
---|---|---|---|
خط 3: | خط 3: | ||
برخی از برجسته ترین مزایای استفاده از **systemd** مواردی که با ورود به سیستم و فرآیند همراه هستند. هنگام استفاده از ابزارهای دیگر ، معمولاً لاگهای مربوطه در سراسر سیستم پراکنده می شوند و توسط پردازشگرهای مختلف پردازش می شوند و تفسیر آنها هنگام اجرای چندین برنامه دشوار است. **Systemd** تلاش می کند با ارائه یک راه حل مدیریتی متمرکز برای ورود به سیستم و پردازش های هسته کاربر ، این مشکلات را برطرف کند. سیستمی که این لاگها را جمع آوری و مدیریت می کند به عنوان **journalctl** شناخته می شود. | برخی از برجسته ترین مزایای استفاده از **systemd** مواردی که با ورود به سیستم و فرآیند همراه هستند. هنگام استفاده از ابزارهای دیگر ، معمولاً لاگهای مربوطه در سراسر سیستم پراکنده می شوند و توسط پردازشگرهای مختلف پردازش می شوند و تفسیر آنها هنگام اجرای چندین برنامه دشوار است. **Systemd** تلاش می کند با ارائه یک راه حل مدیریتی متمرکز برای ورود به سیستم و پردازش های هسته کاربر ، این مشکلات را برطرف کند. سیستمی که این لاگها را جمع آوری و مدیریت می کند به عنوان **journalctl** شناخته می شود. | ||
- | **journalctl** ، کلیه پیام های تولید شده توسط هسته ، سرویس ها و غیره را در اختیار شما قرار می دهد. در این راهنما ، ما در مورد چگونگی استفاده از ابزار **Journalctl** بحث خواهیم کرد که می توان از آنها برای دستیابی و دستکاری داده ها استفاده کرد.. | + | **journalctl** ، کلیه پیام های تولید شده توسط هسته ، سرویس ها و غیره را در اختیار شما قرار می دهد. در این راهنما ، ما در مورد چگونگی استفاده از ابزار **Journalctl** بحث خواهیم کرد که می توان از آنها برای دستیابی و دستکاری داده ها استفاده کرد. |
+ | ===== ایده کلی ===== | ||
+ | |||
+ | یکی از انگیزه های مربوط به '' | ||
+ | |||
+ | این یک مزیت مهم را به ما می دهد. که با تعامل با داده ها و استفاده از یک ابزار واحد ، مدیران سیستم میتوانند گزارش ها را به صورت پویا و با توجه به نیاز خود ببینند. | ||
+ | |||
+ | ===== تنظیم زمان سیستم ===== | ||
+ | |||
+ | یکی از مزایای استفاده از یک **Journal** باینری برای ورود به سیستم ، امکان مشاهده سوابق ورود به سیستم در UTC یا زمان محلی است. به طور پیش فرض ، '' | ||
+ | |||
+ | به همین دلیل قبل از شروع کار با **Journal** ، مطمئن خواهیم شد که منطقه زمانی درست تنظیم شده باشد. مجموعه **systemd** در واقع با ابزاری به نام **timedatectl** همراه است که می تواند در این امر کمک کند. | ||
+ | |||
+ | ابتدا ، ببینید که چه محدوده های زمانی در دسترس هستند: | ||
+ | < | ||
+ | timedatectl list-timezones | ||
+ | </ | ||
+ | با این کار منطقه های زمانی موجود در سیستم شما لیست می شوند. وقتی یکی از منطقه های زمانی را که مطابق سیستم یا سرور خود دیدید ، می توانید با استفاده از گزینه '' | ||
+ | < | ||
+ | sudo timedatectl set-timezone zone | ||
+ | </ | ||
+ | برای اطمینان از اینکه سیستم شما اکنون از زمان صحیح استفاده می کند ، از دستور '' | ||
+ | < | ||
+ | timedatectl status | ||
+ | </ | ||
+ | < | ||
+ | Local time: چهارشنبه 2019-10-02 13:41:44 +0330 | ||
+ | | ||
+ | RTC time: چهارشنبه 2019-10-02 10:11:45 | ||
+ | Time zone: Asia/Tehran (+0330, +0330) | ||
+ | System clock synchronized: | ||
+ | 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]: | ||
+ | مه 24 19:55:20 linuxsolus systemd[842]: | ||
+ | مه 24 19:55:20 linuxsolus systemd[842]: | ||
+ | مه 24 19:55:20 linuxsolus systemd[842]: | ||
+ | مه 24 19:55:20 linuxsolus systemd[842]: | ||
+ | مه 24 19:55:20 linuxsolus systemd[842]: | ||
+ | مه 24 19:55:20 linuxsolus systemd[842]: | ||
+ | مه 24 19:55:20 linuxsolus systemd[842]: | ||
+ | مه 24 19:55:20 linuxsolus systemd[842]: | ||
+ | مه 24 19:55:20 linuxsolus systemd[842]: | ||
+ | مه 24 19:55:20 linuxsolus systemd[842]: | ||
+ | مه 24 19:55:20 linuxsolus dbus-daemon[857]: | ||
+ | مه 24 19:55:20 linuxsolus systemd[842]: | ||
+ | مه 24 19:55:20 linuxsolus dbus-daemon[857]: | ||
+ | |||
+ | </ | ||
+ | به احتمال زیاد صفحات و صفحاتی از داده ها را اختیار خواهید داشت که اگر مدت طولانی است که '' | ||
+ | |||
+ | این قالب برای کسانی که برای ورود به سیستم استاندارد **syslog** عادت دارند ، آشنا خواهد بود. با این حال ، این در واقع داده هایی را از منابع بیشتری جمع آوری می کند تا آنچه که اجرای سنتی **syslog** انجام میدهد. این شامل لاگهای مربوط به فرآیند شروع بوت اولیه ، هسته ، خطای استاندارد برنامه ها و غیره است. اینها همه در **Journal** موجود است. | ||
+ | |||
+ | ممکن است متوجه شوید که همه نشان های زمانی که نمایش داده می شوند ، به وقت محلی هستند. اکنون که زمان محلی ما به درستی روی سیستم ما تنظیم شده است ،تمام لاگها با استفاده از این اطلاعات جدید نمایش داده می شوند. | ||
+ | |||
+ | اگر می خواهید نشانگرهای زمانی را با ساعت جهانی | ||
+ | < | ||
+ | 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]: | ||
+ | مه 24 15:25:20 linuxsolus systemd[842]: | ||
+ | مه 24 15:25:20 linuxsolus systemd[842]: | ||
+ | مه 24 15:25:20 linuxsolus systemd[842]: | ||
+ | مه 24 15:25:20 linuxsolus systemd[842]: | ||
+ | مه 24 15:25:20 linuxsolus systemd[842]: | ||
+ | مه 24 15:25:20 linuxsolus systemd[842]: | ||
+ | مه 24 15:25:20 linuxsolus systemd[842]: | ||
+ | مه 24 15:25:20 linuxsolus systemd[842]: | ||
+ | مه 24 15:25:20 linuxsolus systemd[842]: | ||
+ | مه 24 15:25:20 linuxsolus systemd[842]: | ||
+ | مه 24 15:25:20 linuxsolus dbus-daemon[857]: | ||
+ | مه 24 15:25:20 linuxsolus systemd[842]: | ||
+ | </ | ||
+ | ===== فیلتر Journal توسط Time ===== | ||
+ | |||
+ | |||
+ | اگرچه دستیابی به چنین مجموعه بزرگی از داده ها قطعاً مفید است ، اما چنین مقدار زیادی از اطلاعات برای چک و بررسی شاید غیرممکن یا خیلی مشکل است. به همین دلیل یکی از مهمترین ویژگی های **journalctl** پارامترهای آن است. | ||
+ | ==== نمایش لاگ های مربوط به بوت فعلی ==== | ||
+ | اساسی ترین پارامتر که ممکن است روزانه از آن استفاده کنید پارامتر **b-** است. این همه ورودی های **Journal** را که از آخرین راه اندازی مجدد سیستم جمع آوری شده است ، به شما نمایش میدهد. | ||
+ | < | ||
+ | journalctl -b | ||
+ | </ | ||
+ | این به شما کمک می کند اطلاعاتی را که مربوط به محیط فعلی شماست ، شناسایی و مدیریت کنید. | ||
+ | در مواردی که از این ویژگی استفاده نمی کنید و میخواهید بیش از یک روز را به شما نمایش دهد، می بینید که هر وقت سیستم ریبوت میشود چیزی مانند زیر نمایش داده شده است: | ||
+ | < | ||
+ | -- Reboot -- | ||
+ | </ | ||
+ | این می تواند به شما کمک کند تا اطلاعات را به صورت منطقی جدا کنید. | ||
+ | ==== Boot های قدیمی تر ==== | ||
+ | |||
+ | معمولا بوت فعلی مورد بررسی قرار میگیرد ،ولی مطمئناً مواقعی وجود دارد که Boot های گذشته رو هم نیاز داشته باشید. این **Journal** می تواند اطلاعات بسیاری از Boot های قبلی را ذخیره کند ، بنابراین می توان **Journal** را به شکلی تنظیم کرد تا اطلاعاتی که نیاز داریم را برای ما نمایش دهد. | ||
+ | برخی توزیع ها بطور پیش فرض ذخیره اطلاعات بوت قبلی را فعال می کنند ، در حالی که برخی دیگر این ویژگی را غیرفعال می کنند. برای فعال کردن اطلاعات بوت بصورت مداوم ، می توانید یک دایرکتوری ایجاد کنید یا اینکه فایل کانفیگ آنرا ویرایش کنید | ||
+ | < | ||
+ | sudo mkdir -p / | ||
+ | یا | ||
+ | sudo vim / | ||
+ | </ | ||
+ | در قسمت '' | ||
+ | < | ||
+ | . . . | ||
+ | [Journal] | ||
+ | Storage=persistent | ||
+ | </ | ||
+ | هنگامی که ذخیره Boot های قبلی روی سیستم شما فعال است ، **journalctl** برخی دستورات را برای کمک به شما در کار با Boot ها به عنوان واحد تقسیم فراهم می کند. برای دیدن Boot هایی که **journald** از آن اطلاع دارد ، از گزینه '' | ||
+ | |||
+ | < | ||
+ | journalctl --list-boots | ||
+ | </ | ||
+ | خروجی دستور بالا | ||
+ | < | ||
+ | -136 e493556fa880416684a6ddcad594b0c4 Fri 2019-05-24 19:55:20 +0430—Fri 2019-05-24 22:24:51 +0430 | ||
+ | -135 7ac1e6324a1c4fe8a9b9fb68cb3f53db Sat 2019-05-25 18:40:36 +0430—Sat 2019-05-25 22:28:24 +0430 | ||
+ | -134 eba8a881a9f4425b9b9497140040d3c1 Sun 2019-05-26 12:25:43 +0430—Sun 2019-05-26 18:46:59 +0430 | ||
+ | -133 62d4eb20593a44afaba920a2468ddf2d Mon 2019-05-27 13:43:01 +0430—Mon 2019-05-27 17:07:48 +0430 | ||
+ | -132 612ada7a308148979a5dd1fb9cc4b3a9 Tue 2019-05-28 17:07:20 +0430—Tue 2019-05-28 20:54:17 +0430 | ||
+ | -131 b2c20795ca7c4752b1373dcca0d58467 Thu 2019-05-30 18:24:55 +0430—Thu 2019-05-30 23:41:21 +0430 | ||
+ | -130 4750a6fe9e424ebaba692ea42fdb1448 Fri 2019-05-31 09:57:59 +0430—Fri 2019-05-31 23:39:02 +0430 | ||
+ | -129 31d6a2e3cfc443f7b3a9a5b5cac7576f Sat 2019-06-01 19:20:05 +0430—Sat 2019-06-01 22:47:11 +0430 | ||
+ | -128 e887bfb99ce449eab6cfea32fa400512 Sun 2019-06-02 15:38:52 +0430—Sun 2019-06-02 17:29:12 +0430 | ||
+ | </ | ||
+ | این خط برای هر بوت نمایش داده می شود. ستون اول شماره ردیف بوت است که می توان به راحتی به اطلاعات همان بوت دسترسی پیدا کرد. در صورت نیاز شناسه بوت در ستون دوم است. میتوانید بوت مورد نظر خودتان را بر اساس ردیف یا شناسه ببینید. | ||
+ | به عنوان مثال ، برای دیدن **journal** از بوت قبلی ، از نشانگر نسبی '' | ||
+ | < | ||
+ | journalctl -b -134 | ||
+ | </ | ||
+ | در صورت نیاز میتوانید از شناسه برای نمایش اطلاعات بوت استفاده کنید | ||
+ | < | ||
+ | journalctl -b eba8a881a9f4425b9b9497140040d3c1 | ||
+ | </ | ||
+ | ==== نمایش بر اساس تاریخ ==== | ||
+ | در حالی که دیدن مطالب ورود به سیستم توسط بوت فوق العاده مفید است ، اغلب ممکن است بخواهید مقاطع زمانی خاصی رو ببنید. این امر به ویژه در مورد سرورهایی که مدتهاست روشن هستند با بروزرسانی قابل توجه داشته اند صادق است. | ||
+ | |||
+ | می توانید با استفاده از گزینه های '' | ||
+ | |||
+ | مقادیر زمانی می توانند در قالب های مختلفی به دست بیایند. به مثالهای زیر دقت کنید: | ||
+ | < | ||
+ | YYYY-MM-DD HH:MM:SS | ||
+ | </ | ||
+ | به عنوان مثال ، می توانیم همه لاگهایی را که از 24 May 2019 ساعت 12:25 بعد از ظهر را مشاهده کنیم: | ||
+ | < | ||
+ | | ||
+ | </ | ||
+ | اگر مولفه های تاریخ را چیزی وارد نکنید پیش فرض آن ملاک خواهد بود. به عنوان مثال ، اگر تاریخ حذف شود ، تاریخ فعلی فرض می شود. اگر زمان را وارد نکنید ، " | ||
+ | < | ||
+ | | ||
+ | </ | ||
+ | این journal همچنین مقادیر نسبی را هم درک میکند. به عنوان مثال ، می توانید از کلمات " | ||
+ | برای به دست آوردن اطلاعات از دیروز ، می توانید تایپ کنید: | ||
+ | |||
+ | < | ||
+ | journalctl --since yesterday | ||
+ | </ | ||
+ | فرض کنید سیستم شما از ساعت ۹ صبح تا همین یک ساعت پیش دچار مشکل شده باشد برای دیدن لاگها از دستور زیر استفاده کنید | ||
+ | < | ||
+ | journalctl --since 09:00 --until "1 hour ago" | ||
+ | </ |
terminal/j/how-to-use-journalctl-to-view-and-manipulate-systemd-logs.1570009692.txt.gz · آخرین ویرایش: 2019/10/02 13:18 توسط phoenix