如何使用journalctl来读取、监控和分析Linux中的日志

systemd是大多数主要linux发行版的默认的初始化程序。systemd的主要功能之一收集日志以及为分析日志提供工具。
在传统的sysv 初始化系统中,将日志存储在纯文本文件。读取和分析这些文件需要使用find、grep、cut和许多其他命令组合。
systemd比syslogs从更多的来源收集日志,以二进制格式保存日志,并为您提供命令行工具来读取、分析和操作日志。这比系统日志更精简。
journald是systemd的守护进程,它从各种日志源收集日志,如syslog。journalctl是一个命令行工具,可让您与日志进行交互。
使用journalctl命令可以读取日志,实时监控日志,根据时间、服务、严重性等参数过滤日志。
在本教程中,我将向您展示如何使用journalctl来读取、监控和分析linux中的日志。
启用journald服务一些linux发行版,特别是桌面发行版,默认情况下不启用日志。日志的默认目录是/var/log/journal。
接下来,在etc/systemd/journald.conf文件中确保将值storage设置为auto或persistent。
journald.conf文件包含默认值。因此,配置行前面有#符号,也意味着这些配置选项使用默认设置。如果要更改任何内容,请从该行中删除#。
阅读日志我们向您展示一些journalctl命令最基本但最有用的示例。如果您只是在终端中输入journalctl命令,它将按时间顺序显示日志日志。
journalctl命令在将会调用less命令来向您显示日志。这意味着您可以与使用less命令相同的按键来移动日志。
如果您不希望日志以less命令的模式显示,则可以使用journalctl命令的--no-pager选项,这将直接在屏幕上显示整个日志。
journalctljournalctl --no-pager按时间倒序显示日志默认情况下,journalctl命令按时间顺序显示日志。这意味着最早的存储日志首先显示。
如果您想首先查看最近的日志,可以使用journalctl命令的-r选项以相反的顺序显示日志。
journalctl命令它仍然使用less命令,显示日志,因此你可按快捷键q退出日志查看模式。
journalctl -r查看最近 n行日志您可以使用journalctl命令的-n选项选择仅显示指定行数最近的日志,而不是显示所有日志。
例如命令journalctl -n 25显示最近的 25 行日志。
journalctl -n 25实时查看日志现在你已经学会查看最近的日志,如果要实时查看日志,可以使用journalctl命令的-f选项。
与tail命令的-f选项一样,这将在追踪模式下实时显示日志。可以使用快捷键ctrl+c命令退出实时视图。
journalctl -f查看内核日志systemd会累积来自不同来源的日志。如果您只想查看linux内核日志,可以使用journalctl命令的-k选项。
journalctl -k查看所有日志systemd会根据当前用户权限是否显示用户可查看的日志。如果您是普通用户,它可能会显示一些日志,但不会显示所有日志。
如果您想访问所有日志,则应使用sudo运行journalctl命令。例如命令sudo journalctl。
sudo journalctl查看服务日志journalctl命令的-u选项。可让您可以根据systemd服务过滤日志。例如,你想查看 ssh服务生成的日志。请运行命令journalctl -u ssh。
journalctl -u ssh查看指定时间间隔的日志这是日志的过滤功能的另一个示例。您可以过滤指定时间段的日志,并且有多种方法可以做到这一点。
您可以使用自然语言来过滤日志。像yesterday、today和tormrow这样的术语也会被识别。您还可以指定日期或日期时间组合。使用日期和时间指定时间段。
您甚至还可以使用-1h20min等相对时间来指定过去的1小时20分钟。journalctl命令的--since选项表示开始时间。--until选项表示结束时间。
journalctl --since=yesterday --until=nowjournalctl --since 2020-07-10journalctl --since 2020-07-10 15:10:00 --until 2020-07-12根据uid、gid和pid过滤日志如果您正在调试程序问题,您可能希望使用进程的pid查看日志。还可以根据用户 id (uid)、组id (gid) 和进程 id (pid) 过滤日志日志。
journalctl _pid=1234journalctl -xe您经常会发现有人建议使用journalctl -xe命令。-e跳转到日志分页的末尾。-x选项添加日志的额外的消息解释。
某些日志消息具有正常日志查看中未显示的附加信息。使用-x选项可能会显示此类信息。附加信息有助于解释错误或日志事件的上下文以及可能的解决方案。
查看指定日志级别日志您还可以使用日志级别来获取调试、警告甚至关键级别的日志。这里列出了所有日志级别和优先级。
0表示emerg紧急,1表示alert警报,2表示crit关键。3表示错误。4表示警告。5表示注意。6表示普通信息。7表示调试消息。
要查看当前会话中的所有错误级别的日志,可以运行命令journalctl -p 3 -xb。-p选项指定日志级别,这里指定为3,也就是错误级别。
-x选项添加日志的附加信息。-b选项自上次启动,即当前会话以来。
journalctl -p 3 -xb您还可以指定多个日志级别。例如您想查看当前会话中的所有警告、通知和信息日志,请运行命令journalctl -p 4..6 -b0
journalctl -p 4..6 -b0查看日志大小journald从各种来源收集日志,并存储包括调试日志在内的各种级别的日志。虽然保留日志有助于分析和审计,但它们会占用大量磁盘空间。
您可以运行命令journalctl --disk-usage检查日志占用多少磁盘空间。当您看到输出时,它将打印消息archived and active journals take up 2.8g in the file system.。
journalctl --disk-usage结论journalctl命令还有很多选项和用法,这里不可能全部介绍。如果您想了解更多详细信息,建议您阅读其手册页。

高德地图宣布推出全新“全境智能”系统,目前该系统已落地百城
PLC的用途、应用和特点
图文并茂:详细解析无刷电机EMI整改?|深圳比创达EMC(上)
荣耀、中兴两大高管的说法之间,你更赞同谁的看法?
热量表在线校准装置的构成
如何使用journalctl来读取、监控和分析Linux中的日志
飞兆推出空间节省型封装和可优化电能应用的中压MOSFET
三星BESPOKE缤色铂格衣物护理机,打造智慧护衣体验
智慧园区的智能化场景应用集成创新
RTU接线教程_Modbous RTU接线说明书
迪比科推出一款USB PD四口桌面充电器,满足一充四
纳雷科技安防民用雷达产品广受好评和认可
物联网网关保证充电站桩系统的稳定运行
关于埃森哲《物联网,掀起零售业革命》的分析和介绍
五个建议帮助你正确选择功率分析仪
技术上只差一步 量子通信还有多远
2027年超越100亿美元!GaN和SiC功率半导体市场规模暴增
rfid技术如何用在管理混凝土上
三星搞事?圆柱电池全球供货吃紧
霸菱科技酒店刷卡锁_RF-230简介