少年意气强不羁,虎胁插翼白日飞。这篇文章主要讲述Centos8 中如何使用journalctl分析日志相关的知识,希望能为你提供帮助。
systemd 是大多数主要
??Linux??
发行版中的默认系统管理器,它带有一个名为“journald”的日志守护程序。 |
?systemd?
??从系统、内核和各种服务或守护进程多个来源收集日志,并通过??journald?
?提供集中管理的解决方案。什么是journald?
journald是systemd的守护进程,它从系统、内核和各种服务或守护进程多个来源收集日志,并以二进制格式存储日志,以便于操作。
所有这些日志事件都由journald处理,它提供了一种集中处理日志的方法,而不管消息来自何处。
什么是journalctl?
journalctl是一个??命令??行工具,用于查看由journald收集的日志。
日志有很好的索引和结构,允许系统管理员根据各种参数轻松地分析和操作日志,例如,根据时间、引导顺序、特定服务、严重性等过滤日志。
1) 如何使日志长期保存在系统中?
默认情况下,?
?journal?
??日志在大多数 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.conf
重启 systemd-journald 服务:
[root@server1 ~]# systemctl restart systemd-journald
修改?
?/var/log/journal?
?权限:[root@server1 ~]# chown -R root:systemd-journal /var/log/journal
下面可以从目录中看到日志了。
2) journalctl 常用的选项
在使用 Journalctl 工具之前,可以了解一些常用的选项:
- -f : 实时显示最近的10条日志。
- -e: 跳转到日志末尾以显示最新事件。
- -r : 按时间倒序打印日志消息
- -k: 只显示内核日志。
- -u: 只显示指定systemd Unit的消息。
- -b: 显示来自特定引导的消息,如果不包括特定引导会话,则显示当前引导消息。
- --list-boots: 显示引导编号(相对于当前引导)、它的id以及与引导有关的第一个和最后一个消息的时间戳。
- –utc : 以UTC时间表示。
- -p, --priority=: 按消息优先级过滤输出。
- -S, --since=: 根据开始时间过滤日志
- -U, --until=: 根据结束时间过滤日志
- --disk-usage: 显示所有日志文件的当前磁盘使用情况。
3.a) 使用 journalctl 命令查看基本日志
当journalctl不带选项是,它会显示日志的完整内容,首先列出最旧的记录。
它在后端使用?
?less?
?命令来显示日志。[root@server1 ~]# journalctl
3.b) 以相反的顺序显示日志
上面的输出按时间顺序显示日志。如果想要将最新的日志放在最前面,需要添加?
?-r?
?选项。[root@server1 ~]# journalctl -r
3.c) 显示指定行数的日志
可以使用?
?-n?
?选项仅显示日志中指定行数的日志,如下所示:[root@server1 ~]# journalctl -n 20
3.d) 实时查看日志
可以使用?
?-f?
?选项查看实时日志,如下所示。这在对某些问题进行故障排除时很有用。[root@server1 ~]# journalctl -f
3.e) 只显示内核日志
过滤器可以根据你的需要使用。要仅显示内核日志,可以使用?
?-k?
??选项。这相当于字段匹配??_TRANSPORT=kernel?
?。[root@server1 ~]# journalctl -k
或者
[root@server1 ~]# journalctl _TRANSPORT=kernel
3.f) 过滤出系统引导日志
每次引导系统时,都会在日志中创建一个新的引导条目。要列出所有可用的引导,运行以下命令:
[root@server1 ~]# journalctl --list-boots
-1 5d845cc6c67746bdabd9b9a91c0d86ee Tue 2021-06-08 14:58:47 CST—Fri 2021-06-11 08:32:36 CST
0 5690a1c73db146bb8ceeaf3c8b1086f5 Wed 2021-06-16 15:40:42 CST—Wed 2021-06-16 15:41:20 CST
系统引导日志以一个数字作为前缀,该数字从0开始。0 指的是当前启动。引导会话“-1”是上次引导的会话,依此类推。使用下面命令显示本次系统引导的日志记录:
[root@server1 ~]# journalctl -b 0
查看上一次系统引导的记录,如下操作:
[root@server1 ~]# journalctl -b -1
3.g) 基于时间间隔的过滤
可以根据时间间隔过滤日志。多个参数可以与时间过滤器一起使用,如下所示。要使用时间过滤器,请使用“-S 或 --since”和“-U 或 --until”命令行开关。
要过滤从昨天到目前的日志,请运行以下命令:
[root@server1 ~]# journalctl -S yesterday
仅过滤今天的日志,请运行以下命令:
[root@server1 ~]# journalctl -S today
或者
[root@server1 ~]# journalctl -S 00:00
如果仅过滤昨天的日志,不包括今天的,请运行以下命令:
[root@server1 ~]# journalctl -S yesterday --until 00:00
要过滤自 3 月 12 日以来的日志,请运行以下命令:
[root@server1 ~]# journalctl -S 2021-03-12
如要使用日期和时间过滤日志,请运行以下命令。
注意:日期和时间的使用格式:?
?year-month-day?
??
??hour:minute:second?
?[root@server1 ~]# journalctl -S "2021-06-01 20:00:00" -U "2021-06-16"
要过滤过去一小时的消息,请使用以下命令:
[root@server1 ~]# journalctl -S -1h
3.h) 按优先级过滤
过滤可以应用于消息优先级,这在你想要过滤特定消息(如“Warn”或“Error”等)时非常有用。
下面列出了所有优先级:
Priority | Code |
0 | emerg |
1 | alert |
2 | crit |
3 | err |
4 | warning |
5 | notice |
6 | info |
7 | debug |
[root@server1 ~]# journalctl -p 3 -b
或者
[root@server1 ~]# journalctl -p err -b
4) 基于字段的过滤
journal日志可以按特定字段过滤。要匹配的字段的语法是?
?FIELD_NAME=MATCHED_VALUE?
??,例如??SYSTEMD_UNIT=httpd.service?
?。此外,可以在单个查询中指定多个匹配项,以更方便的方式过滤输出消息。4.a) 按Unit过滤
要显示由指定服务生成的消息,请使用下面给出的命令。同样可以过滤任何服务消息。
[root@server1 ~]# journalctl -u sshd.service
或者
[root@server1 ~]# journalctl _SYSTEMD_UNIT=sshd.service
4.b) 按设备路径过滤
要过滤与特定设备相关的消息,请运行以下命令:
[root@server1 ~]# journalctl /dev/sda
5) 检查日志文件的磁盘占用情况
当你为journal日志启用持久存储时,它最多使用?
?/var/log/journal?
?所在文件系统容量的“10%”。当您为日志日志启用持久存储时,它最多使用“/var/log/journal”所在文件系统的“10%”。
[root@server1 ~]# journalctl --disk-usage
Archived and active journals take up 16.0M in the file system.
总结
在本文中,展示了什么是journal,以及如何使用journalctl命令根据各种参数筛选日志。
TRANSLATE withx
English
??Arabic?? | ??Hebrew?? | ??Polish?? |
??Bulgarian?? | ??Hindi?? | ??Portuguese?? |
??Catalan?? | ??Hmong Daw?? | ??Romanian?? |
??Chinese Simplified?? | ??Hungarian?? | ??Russian?? |
??Chinese Traditional?? | 【Centos8 中如何使用journalctl分析日志】??Indonesian?? | ??Slovak?? |
??Czech?? | ??Italian?? | ??Slovenian?? |
??Danish?? | ??Japanese?? | ??Spanish?? |
??Dutch?? | ??Klingon?? | ??Swedish?? |
??English?? | ??Korean?? | ??Thai?? |
??Estonian?? | ??Latvian?? | ??Turkish?? |
??Finnish?? | ??Lithuanian?? | ??Ukrainian?? |
??French?? | ??Malay?? | ??Urdu?? |
??German?? | ??Maltese?? | ??Vietnamese?? |
??Greek?? | ??Norwegian?? | ??Welsh?? |
??Haitian Creole?? | ??Persian?? |
TRANSLATE with
COPY THE URL BELOW
Back
EMBED THE SNIPPET BELOW IN YOUR SITE
Enable collaborative features and customize widget: ??Bing Webmaster Portal??
Back
推荐阅读
- HTML基本标签
- Win10电脑桌面图标和任务栏图标一直闪烁不停刷新的解决方法
- Oracle Rac数据文件和归档日志文件在ASM磁盘组上出现双份现象分析解决
- 如何将lvm卷移动到另一台服务器中
- 一文看懂博睿数据AIOps场景算法和能力
- JavaWeb文件上传
- 联盟链 Hyperledger Fabric 应用场景
- cisco ASA配置
- STM32F103系列开发_点亮LED灯