使用 journalctl 查看日志
journalctl 是一个日志分析工具,从 RHEL 7.0 开始,它就一直陪伴在系统管理员身边。journalctl 内置了日志旋转功能(logrotate),具备丰富的过滤能力,可以查看所有systemd 服务单元的日志,使得运维工作变得更加轻松,非常方便。
欢迎关注微信公众号【厦门微思网络】。http://www.xmws.cn
journald
journald 是 systemd 的系统日志守护进程。
systemd 旨在集中管理来自进程,应用程序的日志;所有此类事件都由 journald 守护进程处理,它从整个系统收集日志并将日志保存在二进制文件中。
为什么使用二进制保存日志
以二进制格式集中记录时间有很多优点。
比如,可以根据需要转换为其他格式,例如纯文本或 JSON 格式。使用日期或时间过滤器跟踪日志事件也很容易。
此外,随着时间的推移,系统不断收集日志,日志文件的大小可能会达到 GB 级别,因此,对纯文本的日志进行分区可能会消耗大量内存并且出现延迟,在这种情况下,使用 journalctl 则可以通过过滤参数来加快查找过程。
journald 配置文件
配置文件路径:/etc/systemd/journald.conf
日志保存路径:/run/log/journal
通常来说,除非你明确的知道自己在修改什么功能,否则不建议修改这个文件,默认情况下,它工作得很好。
配置日志持久化
默认情况下,journald 会在每次重启时覆盖其日志。
如果需要配置永久保存日志,则需要单独设置。因为通常在系统上还有一个日志管理软件:rsyslog。
rsyslog 通过加载 journal 驱动来获取日志,并将日志保存到硬盘上(/var/log/messages)
所以默认情况下 journald 就不保存日志。
要让 journald 保存日志,需要将 /etc/systemd/journald.conf 中的 Storage=auto
修改为 Storage=persistent 然后重启 systemd-journald 服务
[root@localhost ~]# sed -i 's/Storage=auto/Storage=persistent/g' /etc/systemd/journald.conf
[root@localhost ~]# systemctl restart systemd-journald
当日志被永久保存后,可以使用以下命令来查看每一次系统启动的日志
[root@server ~]# journalctl --list-boots
0 030a3706f31147bcabdd7090d22ff297 Mon 2022-11-07 03:05:01 CST—Mon 2022-11-07 12:01:01 CST
该命令输出的第一列的数字表示可以查看的日志会话编号;第二列一长串的ID可用于查看单独的日志;第3、4列是写入日志的时间段。
配置日志大小限制
如果将 journald 配置为持久化保存,则默认情况下,日志大小限制为该文件分区的10%,最多可占用4GB磁盘空间。
可以通过修改参数 SystemMaxUse 参数来调整
清理日志/日志旋转
仅留下最近的 100MB 日志
journalctl --vacuum-size=100M
仅保留最近7天的日志
journalctl --vacuum-size=7d
基础命令
列出启动后所有日志
[root@localhost ~]# journalctl
执行该命令后,将列出从系统启动那一刻到现在的所有日志条目,包括错误和警告。
较旧的日志位于顶部,新的日志位于底部。
使用 PageUp 和 PageDown 进行移动, Enter 可以逐行滚动日志,按 q 退出
按日志级别显示日志
系统会记录不同日志级别的事件,有些事件是可以忽略的,有些则会影响系统,需要关注。
如果系统管理员只想查看错误日志而忽略其他日志,可以执行
[root@localhost ~]# journalctl -p emerg
系统中所有日志级别如下,严重程度从高到低
当用户指定日志级别代码时,将显示该级别以上的所有消息。
比如用户执行 journalctl -p 2 那么将会显示 0、1、2 级别的所有日志。
查看特定时间段的日志
支持诸如 "yesterday" "today" "now" 等关键字
使用 --since 选项,并指定特定日期,如:
journalctl --since "2022-11-07 12:00:00"
要指定某个时间段可以
journalctl --since "2022-11-06 12:00:00" --until "2022-11-07 12:00:00"
要查看昨天到现在的日志
journalctl --since yesterday
从今天上午9点开始,到1小时前的日志
journalctl --since 09:00 --until "1 hour ago"
查看内核日志
等同于 demsg 命令
journalctl -k
查看特定 systemd 服务的日志
使用 systemctl list-units --type=service 例出服务名
然后查看,比如查看 NetworkManager.service 的日志
journalctl -u NetworkManager.service
通过可执行文件查看应用日志
通过指定可执行文件来查看应用程序日志
[root@localhost ~]# journalctl /usr/sbin/httpd
-- Logs begin at Mon 2022-11-07 03:05:01 CST, end at Mon 2022-11-07 13:01:01 CST. --
Nov 07 04:58:28 server httpd[11771]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name,[root@server ~]#
通过进程 PID 查看日志
journalctl _PID=1
使用 journalctl 查看日志相关推荐
- 通过journalctl查看日志
# 查看UID为1000的用户今天以来的日志 sudo journalctl _UID=1000 --since today# 查看1分钟以前的日志cqq@snort-ids ~ sudo j ...
- systemd介绍六:Journalctl查看并操作sytemd日志
一.内容简介 作为最具吸引力的优势,systemd拥有强大的处理与系统日志记录功能.在使用其它工具时,日志往往被分散在整套系统当中,由不同的守护进程及进程负责处理,这意味着我们很难跨越多种应用程序对其 ...
- Systemd日志管理:使用Journalctl查看和处理系统日志
之前的文章Systemd日志管理服务:Journald以及重要配置选项介绍了Journald这个systemd引入的用于收集和存储日志数据的系统服务,本文将讨论systemd用来查看和处理系统日志的程 ...
- Linux之journalctl查看系统与kernel日志
1 概述 日志管理工具journalctl是centos7上专有的日志管理工具,该工具是从message这个文件里读取信息.Systemd统一管理所有Unit的启动日志.带来的好处就是,可以只用jo ...
- linux下journalctl日志在哪,使用linux的journalctl命令查看日志
服务器 本篇文章和大家了解一下使用linux的journalctl命令查看日志.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. Systemd统一管理所有 Unit 的启动日志.带来 ...
- Linux 实时查看日志文件的 4 种方法
来源 | GOPS 全球运维大会 2021 · 上海站 在 Linux 下如何才能实时查看日志内容呢?有很多工具可以帮助我们在文件持续修改的同时输出文件内容,最常用的莫过于 tail 命令了. 1. ...
- 如何用MobaXterm查看日志信息以及xml
访问测试机 点击左上角的Session 打开之后点击ssh 输入要访问测试机的ip地址以及用户名,点击ok 输入密码 查看日志信息 打开Nebula,访问任务检索,找到需要查看的任务栏,复制开始时间 ...
- Centos8 中如何使用journalctl分析日志
systemd 是大多数主要 Linux 发行版中的默认系统管理器,它带有一个名为"journald"的日志守护程序. systemd从系统.内核和各种服务或守护进程多个来源收集日 ...
- Linux 中实时查看日志的3种方法
Linux 中实时查看日志的3种方法 最近我从cnaaa.com购买了云服务器. 我们大家应该都知道如何在 Linux 中查看文件,比如可以使用 cat 或者 less 命令. 这对于查看静态文件来说 ...
最新文章
- 黄聪:IE6下css大bug:文字神秘消失,鼠标选择了才出现
- OvS v.s. OvS-DPDK v.s. VPP
- linux运维实战练习
- 【人物】李开复:未来属于创新者和小公司
- n阶完全图边和顶点关系。_正N边型的完全图被分割成几个多边形
- 【QQ输入法】QQ输入法-剪切板 释放内存
- C学习杂记(五)形参实参笔试题
- 中国制造强在哪儿?从美特斯邦威到Shein
- c语言补码转源码函数,求原码、补码,反码(C语言源代码)
- 微pe装linux系统教程,微PE工具箱增加安装Linux系统菜单
- 平衡小车之家--风力摆开箱实录(附资料)
- 用 js判断 一个数是否是素数(质数)_js 基础算法题(二)
- Android直接回复通知
- 传奇开区发布广告和选择广告投放网站的那些事
- 项目销毁主页Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService异常
- mysql 8.0.11-winx64_mysql-8.0.11-winx64 安装步骤
- python3 字典遍历的方法
- 2、深度剖析ConcurrentHashMap
- [29期] 一个乞丐的故事,什么叫职业人?
- Rust:生命周期标注(lifetime annotation)