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 查看日志相关推荐

  1. 通过journalctl查看日志

    # 查看UID为1000的用户今天以来的日志 sudo journalctl _UID=1000 --since today# 查看1分钟以前的日志cqq@snort-ids  ~  sudo j ...

  2. systemd介绍六:Journalctl查看并操作sytemd日志

    一.内容简介 作为最具吸引力的优势,systemd拥有强大的处理与系统日志记录功能.在使用其它工具时,日志往往被分散在整套系统当中,由不同的守护进程及进程负责处理,这意味着我们很难跨越多种应用程序对其 ...

  3. Systemd日志管理:使用Journalctl查看和处理系统日志

    之前的文章Systemd日志管理服务:Journald以及重要配置选项介绍了Journald这个systemd引入的用于收集和存储日志数据的系统服务,本文将讨论systemd用来查看和处理系统日志的程 ...

  4. Linux之journalctl查看系统与kernel日志

    1  概述 日志管理工具journalctl是centos7上专有的日志管理工具,该工具是从message这个文件里读取信息.Systemd统一管理所有Unit的启动日志.带来的好处就是,可以只用jo ...

  5. linux下journalctl日志在哪,使用linux的journalctl命令查看日志

    服务器 本篇文章和大家了解一下使用linux的journalctl命令查看日志.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. Systemd统一管理所有 Unit 的启动日志.带来 ...

  6. Linux 实时查看日志文件的 4 种方法

    来源 | GOPS 全球运维大会 2021 · 上海站 在 Linux 下如何才能实时查看日志内容呢?有很多工具可以帮助我们在文件持续修改的同时输出文件内容,最常用的莫过于 tail 命令了. 1. ...

  7. 如何用MobaXterm查看日志信息以及xml

    访问测试机 点击左上角的Session 打开之后点击ssh 输入要访问测试机的ip地址以及用户名,点击ok 输入密码 查看日志信息 打开Nebula,访问任务检索,找到需要查看的任务栏,复制开始时间 ...

  8. Centos8 中如何使用journalctl分析日志

    systemd 是大多数主要 Linux 发行版中的默认系统管理器,它带有一个名为"journald"的日志守护程序. systemd从系统.内核和各种服务或守护进程多个来源收集日 ...

  9. Linux 中实时查看日志的3种方法

    Linux 中实时查看日志的3种方法 最近我从cnaaa.com购买了云服务器. 我们大家应该都知道如何在 Linux 中查看文件,比如可以使用 cat 或者 less 命令. 这对于查看静态文件来说 ...

最新文章

  1. 黄聪:IE6下css大bug:文字神秘消失,鼠标选择了才出现
  2. OvS v.s. OvS-DPDK v.s. VPP
  3. linux运维实战练习
  4. 【人物】李开复:未来属于创新者和小公司
  5. n阶完全图边和顶点关系。_正N边型的完全图被分割成几个多边形
  6. 【QQ输入法】QQ输入法-剪切板 释放内存
  7. C学习杂记(五)形参实参笔试题
  8. 中国制造强在哪儿?从美特斯邦威到Shein
  9. c语言补码转源码函数,求原码、补码,反码(C语言源代码)
  10. 微pe装linux系统教程,微PE工具箱增加安装Linux系统菜单
  11. 平衡小车之家--风力摆开箱实录(附资料)
  12. 用 js判断 一个数是否是素数(质数)_js 基础算法题(二)
  13. Android直接回复通知
  14. 传奇开区发布广告和选择广告投放网站的那些事
  15. 项目销毁主页Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService异常
  16. mysql 8.0.11-winx64_mysql-8.0.11-winx64 安装步骤
  17. python3 字典遍历的方法
  18. 2、深度剖析ConcurrentHashMap
  19. [29期] 一个乞丐的故事,什么叫职业人?
  20. Rust:生命周期标注(lifetime annotation)

热门文章

  1. matlab:GS算法
  2. 实验3 电磁波平面波对理想介质分界面垂直入射实验
  3. Curl工具的说明-安装-简单使用
  4. 苹果CMSv10明星库数据文件-免采集导入即用
  5. edge浏览器如何安装扩展插件
  6. HART/PROFIBUS DP网关
  7. PDP(等离子) VS LCD(液晶)
  8. 在linux环境中将Excel转换成文本
  9. 【PTA】6-1 顺序表基本操作(10 分)
  10. activiti7 部署流程