当前位置: 首页 > Linux

如何在Centos8中使用journalctl分析日志

时间:2023-04-06 03:14:23 Linux

systemd是大多数主要Linux发行版中默认的系统管理器,它自带一个名为“journald”的日志守护进程。systemd从包括系统、内核和各种服务或守护进程在内的多个来源收集日志,并通过journald提供集中管理解决方案。什么是日志?journald是一个systemd守护进程,它从包括系统、内核和各种服务或守护进程在内的多个来源收集日志,并以二进制格式存储日志以便于操作。所有这些日志事件都由journald处理,它提供了一种集中处理日志的方法,无论消息来自何处。什么是journalctl?journalctl是一个命令行工具,用于查看journald收集的日志。日志具有良好的索引和结构,使系统管理员可以轻松地根据各种参数分析和操作日志,例如,根据时间、引导顺序、特定服务、严重性等过滤日志。1)如何在系统中保留日志以备不时之需很长时间?大多数Linux发行版默认启用日志记录,但它将日志数据存储在/run/log/journal/并在重新启动时删除。如果您想使日志永久化,请按照以下步骤操作,这将自动创建/var/log/journal/目录。以root身份打开/etc/systemd/journald.conf文件并取消注释“Storage=auto”行并将其更改为“Storage=persistent”。或者,您可以使用sed命令替换文件中的匹配字符串。[root@server1~]#sed-i'/Storage/c\Storage=persistent'/etc/systemd/journald.confCentos8如何使用journalctl分析日志Centos8如何使用journalctl分析日志重启systemd-journaldservice:[root@server1~]#systemctlrestartsystemd-journald修改/var/log/journal权限:[root@server1~]#chown-Rroot:systemd-journal/var/log/journal可以看到日志从下面的目录。Centos8中如何使用journalctl分析日志Centos8中如何使用journalctl分析日志2)journalctl的常用选项在使用Journalctl工具之前,可以了解一些常用的选项:-f:实时显示最近10条日志时间。-e:跳转到日志末尾以显示最新事件。-r:按时间倒序打印日志信息-k:只显示内核日志。-u:只显示指定systemd单元的消息。-b:显示来自特定引导的消息,如果不包括特定引导会话,则显示当前引导。--list-boots:显示启动编号(相对于当前启动)、它的id以及与启动相关的第一条和最后一条消息的时间戳。–utc:以UTC时间表示。-p,--priority=:按消息优先级过滤输出。-S,--since=:根据开始时间过滤日志-U,--until=:根据结束时间过滤日志--disk-usage:显示所有日志文件的当前磁盘使用情况。3)如何使用journalctl读取日志3.a)使用journalctl命令查看基本日志当journalctl没有选项时,会显示日志的完整内容,最旧的记录列在最前面。它在后端使用less命令来显示日志。[root@server1~]#journalctlCentos8中如何使用journalctl分析日志Centos8中如何使用journalctl分析日志3.b)倒序显示日志以上输出按时间顺序显示日志。如果想把最新的日志放在最前面,需要加上-r选项。[root@server1~]#journalctl-rCentos8如何使用journalctl分析日志Centos8如何使用journalctl分析日志3.c)显示指定行数的日志可以使用-n选项显示只显示日志中指定行数的日志,如下图Show:[root@server1~]#journalctl-n如何在20Centos8中使用journalctl分析日志如何在Centos8中使用journalctl分析日志3.d)实时查看日志可以使用-f选项查看实时日志,如下图。这在解决某些问题时很有用。[root@server1~]#journalctl-fCentos8中如何使用journalctl分析日志Centos8中如何使用journalctl分析日志3.e)只显示内核日志可以根据需要使用filter。要仅显示内核日志,可以使用-k选项。这相当于字段匹配_TRANSPORT=kernel。[root@server1~]#journalctl-kor[root@server1~]#journalctl_TRANSPORT=kernelCentos8如何使用journalctl分析日志Centos8如何使用journalctl分析日志3.f)过滤掉系统开机日志每次系统启动后,会在日志中创建一个新的启动项。要列出所有可用的引导,请运行以下命令:[root@server1~]#journalctl--list-boots-15d845cc6c67746bdabd9b9a91c0d86eeTue2021-06-0814:58:47CST—Fri2021-06-1108:32:36CST05690a1c73db146bb8ceeaf3c8b1086f5Wed2021-06-1615:40:42CST—Wed2021-06-1615:41:20如何在CSTCentos8中使用journalctl分析日志如何在Centos8中使用journalctl分析日志前缀,编号从0开始。'0'指的是当前启动。引导会话“-1”是最后一次引导的会话,依此类推。使用以下命令显示本次系统开机的日志记录:[root@server1~]#journalctl-b0Centos8中如何使用journalctl分析日志Centos8中如何使用journalctl分析日志查看上次的记录系统启动,如下:[root@server1~]#journalctl-b-1Centos8中如何使用journalctl分析日志Centos8中如何使用journalctl分析日志3.g)基于时间间隔过滤可以根据时间间隔过滤日志到时间间隔。多个参数可以与时间过滤器一起使用,如下所示。要使用时间过滤器,请使用“-S或--since”和“-U或--until”命令行开关。要过滤从昨天到现在的日志,请运行以下命令:[root@server1~]#journalctl-Syesterday要仅过滤今天的日志,请运行以下命令:[root@server1~]#journalctl-Stodayor[root@server1~]#journalctl-S00:00如果只想过滤昨天的日志,不包括今天的日志,请运行以下命令:[root@server1~]#journalctl-Syesterday--until00:00进行过滤sinceMarch对于12日以后的日志,请运行以下命令:[root@server1~]#journalctl-S2021-03-12Centos8如何使用journalctl分析日志Centos8如何使用journalctl分析日志过滤日志按日期和时间,请运行以下命令。注意:日期和时间使用的格式:年-月-日时:分:秒[root@server1~]#journalctl-S"2021-06-0120:00:00"-U"2021-06-16"要过滤过去一小时的消息,使用以下命令:[root@server1~]#journalctl-S-1h3.h)Filteringbypriority过滤可以应用于消息优先级,这在你想过滤特定消息时很有用(例如“Warn”或“Error”等)很有用。所有优先级如下:PriorityCode0emerg1alert2crit3err4warning5notice6info7debug[root@server1~]#journalctl-p3-bor[root@server1~]#journalctl-perr-b如何在Centos8中使用journalctl分析Centos8中如何使用journalctl分析日志4)基于字段的过滤Journal日志可以按特定字段进行过滤。要匹配的字段的语法是FIELD_NAME=MATCHED_VALUE,例如SYSTEMD_UNIT=httpd.service'。此外,可以在单个查询中指定多个匹配项,以更方便的方式过滤输出消息。4.a)按单位过滤要显示指定服务生成的消息,请使用下面给出的命令。同样,可以过滤任何服务消息。[root@server1~]#journalctl-usshd.serviceor[root@server1~]#journalctl_SYSTEMD_UNIT=sshd.service如何在Centos8中使用journalctl分析日志如何在Centos8中使用journalctl分析日志4.b)Filter按设备路径过滤对于特定设备相关的消息,请运行以下命令:[root@server1~]#journalctl/dev/sda如何在Centos8中使用journalctl分析日志如何在Centos8中使用journalctl分析日志当持久化时为日志日志启用了存储,它最多使用/var/log/journal所在文件系统容量的“10%”。当您为日志日志启用持久存储时,它最多使用“/var/log/journal”所在文件系统的“10%”。[root@server1~]#journalctl--disk-usageArchived和active日志在文件系统中占用16.0M。Centos8中如何使用journalctl分析日志以及如何使用journalctl命令根据各种参数过滤日志。