Rumah > Operasi dan penyelenggaraan > Keselamatan > Cara menggunakan journalctl untuk melihat dan menganalisis log systemd (dengan contoh)

Cara menggunakan journalctl untuk melihat dan menganalisis log systemd (dengan contoh)

PHPz
Lepaskan: 2023-06-10 08:55:49
ke hadapan
2266 orang telah melayarinya

如何使用 journalctl 查看和分析 systemd 日志(附实例)

Pengenalan

Ramai yang mengatakan bahawa systemd tidak bagus dan ia memberi impak yang besar kepada sistem Ini juga merupakan topik yang kontroversi. Tetapi anda tidak boleh menafikan bahawa ia menyediakan satu set alat lengkap untuk mengurus dan menyelesaikan masalah sistem anda. Bayangkan apabila anda menemui sistem yang rosak tanpa GUI, anda boleh merosakkan but dan GRUB. Dalam kes ini, anda boleh but daripada sistem langsung, pasangkan partition Linux anda dan semak imbas log systemd untuk mencari masalah.

systemd mempunyai tiga komponen asas seperti berikut:

  • ​systemd​​: Sistem dan pengurus perkhidmatan sistem pengendalian Linux.
  • ​systemctl​​: Perintah ini digunakan untuk menyemak dan mengawal status sistem sistem dan pengurus perkhidmatan.
  • ​systemd-analyze​​: Perintah ini menyediakan statistik prestasi pada permulaan sistem dan mendapatkan status tambahan dan maklumat pengesanan daripada Pengurus Sistem dan Perkhidmatan.

Selain tiga perkhidmatan ini, systemd juga menyediakan perkhidmatan lain, seperti journald, logind, networkd, dll. Dalam panduan ini, kami akan membincangkan perkhidmatan journald systemd.

jurnal - perkhidmatan pengelogan systemd

Dengan reka bentuk, systemd menyediakan cara terpusat untuk mengendalikan semua log sistem pengendalian daripada proses, aplikasi, dsb. Semua peristiwa log ini dikendalikan oleh daemon journald systemd. Daemon jurnal mengumpul semua log dari seluruh sistem pengendalian Linux dan menyimpannya sebagai data binari dalam fail.

Terdapat banyak faedah daripada peristiwa rakaman berpusat dan masalah sistem dalam data binari. Contohnya, kerana log sistem disimpan dalam bentuk binari dan bukannya teks, anda boleh menterjemahkannya dalam teks, objek JSON dan banyak lagi untuk memenuhi pelbagai keperluan. Di samping itu, kerana log disimpan secara berurutan, sangat mudah untuk menjejaki peristiwa individu melalui operasi tarikh/masa pada log.

Sila ingat bahawa journald mengumpul fail log dengan beribu-ribu baris dan sentiasa dikemas kini dengan setiap but dan setiap acara. Oleh itu, jika anda mempunyai sistem pengendalian Linux yang telah lama berjalan, saiz log hendaklah dalam GB. Memandangkan terdapat beribu-ribu log, sebaiknya menapisnya dengan arahan asas untuk mengetahui lebih lanjut tentang isu sistem.

fail konfigurasi jurnal

fail konfigurasi jurnal wujud dalam laluan berikut. Ia mengandungi pelbagai bendera tentang cara pembalakan harus dilakukan. Anda boleh melihat fail ini dan membuat perubahan yang diperlukan. Tetapi saya mengesyorkan agar tidak mengubah suai fail ini melainkan anda tahu apa yang anda lakukan.

/etc/systemd/journald.conf
Salin selepas log masuk

journald Di mana fail log binari disimpan

jurnal menyimpan log dalam format binari. Mereka disimpan dalam direktori di bawah laluan ini:

/var/log/journal
Salin selepas log masuk

Contohnya, dalam laluan di bawah, terdapat direktori yang mengandungi semua log sistem setakat ini.

如何使用 journalctl 查看和分析 systemd 日志(附实例)

laluan fail log journalctl

Jangan gunakan arahan ​​cat​​, atau gunakan ​​nano​​ atau ​vi​​ untuk membuka fail ini. Mereka (menjadi binari) tidak boleh dipaparkan secara normal.

Gunakan journalctl untuk melihat dan menganalisis log sistem

arahan asas jurnal

Arahan asas untuk melihat log jurnal ialah:

journalctl
Salin selepas log masuk

如何使用 journalctl 查看和分析 systemd 日志(附实例)

journalctl

该命令提供了所有应用程序和进程的日志条目,包括错误、警告等。它显示的列表中,最旧的日志在顶部,当前的日志在底部。你需要不断按回车键来逐行滚动浏览。你也可以使用 ​​PAGE UP​​ 和 ​​PAGE DOWN​​ 键来滚动。按 ​​q​​ 键可以退出这个视图。

如何以不同时区的时间查看日志条目

默认情况下,​​journalctl​​ 以当前系统时区显示日志的时间。然而,你可以很容易地在命令中提供时区,将同一日志转换为不同的时区。例如,要以 UTC 查看日志,请使用以下命令:

journalctl --utc
Salin selepas log masuk

如何使用 journalctl 查看和分析 systemd 日志(附实例)

journalctl --utc

如何在日志中只查看错误、警告等信息

系统产生的日志有不同的优先级。有些日志可能是可以忽略的警告,有些可能是重要的错误。你可能想只看错误,不看警告。这也可以用下面的命令来实现。

要查看紧急系统信息,请使用:

journalctl -p 0
Salin selepas log masuk

如何使用 journalctl 查看和分析 systemd 日志(附实例)

journalctl -p 0

错误代码:

0: 紧急情况
1: 警报
2: 危急
3: 错误
4: 警告
5: 通知
6: 信息
7:调试
Salin selepas log masuk

当你指定错误代码时,它显示该等级及更高的所有信息。例如,如果你指定下面的命令,它会显示所有优先级为 2、1 和 0 的信息:

journalctl -p 2
Salin selepas log masuk

如何查看特定启动的日志

当你运行 ​​journalctl​​ 命令时,它会显示当前启动的信息,即你正在运行的会话中的信息。但也可以查看过去的启动信息。

在每次重启时,日志都会持续更新。journald 会记录不同启动时的日志。要查看不同启动时的日志,请使用以下命令。

journalctl --list-boots
Salin selepas log masuk

如何使用 journalctl 查看和分析 systemd 日志(附实例)

journalctl list-boots

  • 第一个数字显示的是 journald 的唯一的启动跟踪号码,你可以在下一个命令中使用它来分析该特定的启动。
  • 第二个数字是启动 ID,你也可以在命令中指定。
  • 接下来的两个日期、时间组合是存储在相应文件中的日志的时间。如果你想找出某个特定日期、时间的日志或错误,这就非常方便了。

要查看一个特定的启动号码,你可以选择第一个启动跟踪号码或启动 ID,如下所示。

journalctl -b -45
Salin selepas log masuk
journalctl -b 8bab42c7e82440f886a3f041a7c95b98
Salin selepas log masuk

如何使用 journalctl 查看和分析 systemd 日志(附实例)

journalctl -b 45

你也可以使用 ​​-x​​ 选项,在显示屏上添加 systemd 错误信息的解释。在某些情况下,这是个救命稻草。

journalctl -xb -p 3
Salin selepas log masuk

如何使用 journalctl 查看和分析 systemd 日志(附实例)

journalctl -xb

如何查看某一特定时间、日期的日志记录

​journalctl​​ 功能强大,可以在命令中提供类似英语的参数,用于时间和日期操作。

你可以使用 ​​--since​​ 选项与 ​​yesterday​​、​​today​​、​​tomorrow​​ 或 ​​now​​ 组合。

下面是一些不同命令的例子。你可以根据你的需要修改它们。它们是不言自明的。以下命令中的日期、时间格式为 ​​"YYYY-MM-DD HH:MM:SS"​

journalctl --since "2020-12-04 06:00:00"
Salin selepas log masuk
journalctl --since "2020-12-03" --until "2020-12-05 03:00:00"
Salin selepas log masuk
journalctl --since yesterday
Salin selepas log masuk
journalctl --since 09:00 --until "1 hour ago"
Salin selepas log masuk

如何使用 journalctl 查看和分析 systemd 日志(附实例)

journalctl --since 09:00 --until

你也可以将上述内容与错误级别开关结合起来。

如何查看内核特定的日志记录

Linux 内核信息也可以从日志中提取出来。要查看当前启动时的内核信息,请使用以下命令:

journalctl -k
Salin selepas log masuk

如何查看某个服务、PID 的日志

你可以从 journald 日志中过滤出某个 systemd 服务单元的特定日志。例如,如果要查看 NetworkManager 服务的日志,请使用下面的命令。

journalctl -u NetworkManager.service
Salin selepas log masuk

如何使用 journalctl 查看和分析 systemd 日志(附实例)

journalctl NetworkManager service

如果你不知道服务名称,可以使用下面的命令来列出系统中的 systemd 服务。

systemctl list-units --type=service
Salin selepas log masuk

如何查看用户、组的日志

如果你正在分析服务器日志,在多个用户登录的情况下,这个命令很有帮助。你可以先用下面的命令从用户名中找出用户的 ID。例如,要找出用户 ​​debugpoint​​ 的 ID:

id -u debugpoint
Salin selepas log masuk

然后使用 ​​_UID​​ 选项指定该 ID 与来查看该用户产生的日志。

journalctl _UID=1000 --since today
Salin selepas log masuk

如何使用 journalctl 查看和分析 systemd 日志(附实例)

journalctl _UID

同样地,使用 ​​_GID​​ 选项也可以查到用户组的情况。

如何查看一个可执行文件的日志

你也可以查看某个特定程序或可执行文件的日志。例如,如果你想找出 ​​gnome-shell​​ 的信息,你可以运行以下命令。

journalctl /usr/bin/gnome-shell --since today
Salin selepas log masuk

如何使用 journalctl 查看和分析 systemd 日志(附实例)

journalctl gnome-shell

Kesimpulan

Saya harap panduan ini dapat membantu anda menggunakan ​​journalctl​​ untuk melihat dan menganalisis log sistem pada desktop atau pelayan Linux anda dan menyelesaikan masalah. Jika anda tahu cara menggunakan arahan ini, pengurusan log systemd sangat berkuasa dan boleh menjadikan hidup anda lebih mudah apabila menyahpepijat. Semua pengedaran Linux utama kini menggunakan systemd. Ubuntu, Debian, Fedora, dan Arch semuanya menggunakan systemd sebagai komponen sistem pengendalian lalai mereka. Jika anda ingin mengetahui tentang pengedaran Linux yang tidak menggunakan systemd, anda mungkin ingin melihat ​​MX-Linux​​, Gentoo, Slackware, Void Linux.

Atas ialah kandungan terperinci Cara menggunakan journalctl untuk melihat dan menganalisis log systemd (dengan contoh). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:51cto.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan