一,systemd-journald的作用

1,什么是systemd-journald?

systemd-journald 是 systemd 自带的日志系统,是一个收集并存储各类日志数据的系统服务。 
它创建并维护一个带有索引的、结构化的日志数据库, 并可以收集来自各种不同渠道的日志: 1,通过 kmsg 收集内核日志
2,通过 libc 的 syslog(3) 接口收集系统日志
3,通过 本地日志接口 sd_journal_print(3) 收集结构化的系统日志
4,捕获服务单元的标准输出(STDOUT)与标准错误(STDERR)。
5,通过内核审计子系统收集审计记录 日志守护进程会以安全且不可伪造的方式自动收集每条日志的元数据。

2,journalctl 用来查询 systemd-journald 服务收集到的日志

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,journalctl所属的包与安装

1,查看所属的包

[root@centos8 ~]# whereis journalctl
journalctl: /usr/bin/journalctl /usr/share/man/man1/journalctl.1.gz [root@centos8 ~]# rpm -qf /usr/bin/journalctl
systemd-239-18.el8_1.4.x86_64

2,如果找不到journalctl,可以用yum安装

[root@blog ~]# yum install systemd

三,查看journalctl的版本和帮助

1,查看版本

[root@centos8 ~]# journalctl --version
systemd 239
+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT
+GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN
+PCRE2 default-hierarchy=legacy

2,查看帮助

[root@centos8 ~]# journalctl --help

四,journalctl的使用例子:

1,查看本机本次启动之后的所有日志

[root@blog ~]# journalctl

2,只查看内核日志:

#-k --dmesg                 Show kernel message log from the current boot

[root@blog ~]# journalctl -k 

3,查看系统本次启动的日志

#-b --boot[=ID]             Show current boot or the specified boot

[root@blog ~]# journalctl -b

说明: 等同于 journalctl -b -0

查看上一次启动的日志

[root@blog ~]# journalctl -b -1

4,查看最新的10行日志:

# --lines

[root@blog ~]# journalctl  -n 

查看最新的指定行数的日志

[root@blog ~]# journalctl  -n 20

5,实时滚动显示最新日志

#-f --follow                Follow the journal

[root@blog ~]# journalctl -f

6,查看某个unit的日志

# -u --unit=UNIT             Show logs from the specified unit

[root@blog ~]# journalctl -u openresty.service

说明:也可以把多个unit的日志整合起来查看:

例:把两个unit的日志一起浏览

[root@blog ~]# journalctl -u openresty.service -u mysqld.service

7,查看指定时间的日志

#  --since   指定开始时间

# --since today 查看从今天开始的日志

# --since yesterday 查看从昨天开始的日志

[root@blog ~]# journalctl -u openresty.service --since today
[root@blog ~]# journalctl --since yesterday

也可以指定准确的时间

[root@blog ~]# journalctl -u openresty.service --since="2020-03-11 12:37:11" 

#--until :指定结束的时间

[root@blog ~]# journalctl --since "2020-03-01" --until "2020-03-02 00:00"

#now   :指定时间为现在

[root@blog ~]# journalctl --since "2020-03-01" --until now

#可以用ago表示过去的时间

[root@blog ~]# journalctl --since "1 day ago" --until "1 hour ago"

8,指定查看日志时不再分页:

# --no-pager : 不进行分页

[root@blog ~]# journalctl --no-pager

如果日志太多,可以用管道传给more或less

[root@blog ~]# journalctl --no-pager | more
[root@blog ~]# journalctl --no-pager | less

说明:less支持上下翻页,b是向上翻页

more只能向下翻页

9,查看指定级别的日志

# -p: 指定优先级及以上级别

[root@blog ~]# journalctl -p err -b 

说明:日志的八个级别:

# 0: emerg

# 1: alert

# 2: crit

# 3: err

# 4: warning

# 5: notice

# 6: info

# 7: debug

10,查看指定用户的日志:

用id命令得到指定用户的id

[root@blog ~]# id webop
uid=1000(webop) gid=1000(webop) groups=1000(webop),10(wheel)

#_UID : 指定用户的uid

[root@blog ~]# journalctl _UID=1000

11,json格式输出:

#-o json : 以json格式输出

[root@blog ~]# journalctl -o json

#-o json-pretty : 以json格式多行输出,更易阅读

[root@blog ~]# journalctl -o json-pretty

12,指定日志倒序输出:最新的在上面,从新到旧

[root@blog ~]# journalctl -r

五,日志清理:

1,清理现有的日志文件

[root@blog ~]# rm -rf /var/log/journal/*

#重启systemd-journald服务

[root@blog ~]# systemctl restart systemd-journald.service

2,显示日志占据的硬盘空间

[root@blog ~]# journalctl  --disk-usage
Archived and active journals take up 192.0M in the file system.

3,清理现有的日志到500M以下

[root@blog ~]# journalctl --vacuum-size=500M 

4,清理现有的日志到12个月以下

[root@blog ~]# journalctl --vacuum-time=12month

六,如何测试写一条日志?

1,用logger写一条日志

[root@blog ~]# logger -p user.info "this is check logger command"

2,查看新写入的日志

[root@blog ~]# journalctl -r
-- Logs begin at Wed 2019-12-25 11:43:21 CST, end at Wed 2020-04-08 14:38:55 CST. --
Apr 08 14:38:55 blog sysop[29566]: this is check logger command

七,journalctl所查看的日志保存在哪里?

[root@blog ~]# ls /var/log/journal/
20191225112704604621358614227964

八,journalctl的配置文件在何处?

/etc/systemd/journald.conf

一般不需要改动

九,查看centos的版本

[root@blog ~]# cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)

centos8平台使用journalctl管理systemd-journald日志的更多相关文章

  1. Linux 初始化系统 systemd - journald 日志

    journalctl 中文手册 archlinux - journal systemd-journald 用于检索 systemd 的日志,是 systemd 自带的日志系统. 1. systemd- ...

  2. centos8平台使用loginctl管理登录用户与session

    一,loginctl的用途: 控制 systemd 登录管理器 管理当前登录的用户和session 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/a ...

  3. centos8平台使用rpm管理软件包

    一,什么是rpm rpm是redhat package manager redhat的软件包管理器 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/a ...

  4. centos8平台使用parted管理分区

    一,parted的用途 parted是GNU发布的强大的分区工具, parted命令可以划分单个分区大于2T的GPT格式的分区,也可以划分普通的MBR分区. 因为fdisk命令对于大于2T的分区无法划 ...

  5. systemd的日志管理进程journald

    使用Journalctl查看并操作Systemd日志 systemd拥有强大的处理与系统日志记录功能.在使用其它工具时,日志往往被分散在多套系统当中,由不同的守护进程负责处理. Journal的实现归 ...

  6. (十八)Linux开机启动管理---systemd使用

    常用命令 使某服务自动启动 systemctl enable httpd.service 使某服务不自动启动 systemctl disable httpd.service 检查服务状态 system ...

  7. 【转】Linux开机启动管理---systemd使用

    常用命令  使某服务自动启动 systemctl enable httpd.service 使某服务不自动启动 systemctl disable httpd.service 检查服务状态 syste ...

  8. 拾遗:使用 systemd-journald 管理 Docker 容器日志

    在 docker.service 文件中的 ExecStart 字段中,添加(或:docker run --log-driver=journald): --log-driver=journald \ ...

  9. Systemd Journald占用资源过多

    journald占用过多磁盘空间 方法一 检查当前journal使用磁盘量 journalctl --disk-usage 清理方法可以采用按照日期清理,或者按照允许保留的容量清理,只保存2天的日志, ...

随机推荐

  1. Java I/O流 复制文件速度对比

    Java I/O流 复制文件速度对比 首先来说明如何使用Java的IO流实现文件的复制: 第一步肯定是要获取文件 这里使用字节流,一会我们会对视频进行复制(视频为非文本文件,故使用之) FileInp ...

  2. 秒懂JVM的三大参数类型,就靠这十个小实验了

    秒懂JVM的三大参数类型,就靠这十个小实验了 你好,我是悟空哥,「7年项目开发经验,全栈工程师,开发组长,超喜欢图解编程底层原理」.手写了2个小程序,Java刷题小程序,PMP刷题小程序,已发布到公众 ...

  3. 算法数据结构 | 三个步骤完成强连通分量分解的Kosaraju算法

    强连通分量分解的Kosaraju算法 今天是算法数据结构专题的第35篇文章,我们来聊聊图论当中的强连通分量分解的Tarjan算法. Kosaraju算法一看这个名字很奇怪就可以猜到它也是一个根据人名起 ...

  4. 技术解析丨C++元编程之Parser Combinator

    摘要:借助C++的constexpr能力,可以轻而易举的构造Parser Combinator,对用户定义的字符串(User defined literal)释放了巨大的潜力. ## 引子 前不久在C ...

  5. 时不时刷刷BOSS 看看技术需求

    5.熟悉Java,熟悉spring,rose等常见的web开发框架优先. 岗位要求:1. 大学本科及以上学历,计算机软件相关专业毕业:2. 3年及以上Java及Web系统设计和开发经验:3. 扎实的数 ...

  6. Maven学习总结:几个常用的maven插件

    我们使用maven做一些日常的工作开发的时候,无非是想利用这个工具带来的一些便利.比如它带来的依赖管理,方便我们打包和部署运行.这里几个常见的插件就是和这些工程中常用的步骤相关. maven-comp ...

  7. 为什么我选择MySQL Workbench・一

    一.官方 官方提供的工具必然有其优势. MySQL Workbench有两个版本,社区版和商业版.社区版是免费的. 二.第一个选择 使用MySQL之前用的是SQL Server而微软的东西一般都使用微 ...

  8. DVWA SQL-injection 附python脚本

    SQL-Injection low等级 首先我们将dvwa等级调到low 如图 接下来选择SQL Injection,并在提交框中输入正常值1,查看返回结果 接下来检测是否存在注入,分别输入 1' a ...

  9. Echarts山东省地图两级钻取、返回及济南合并莱芜地图

    Echarts3.0+jQuery3.3.1 山东省地图中济南市需要注意下,莱芜市已经和济南市合并,地图数据来源于地图选择器,获取山东省地图信息及各地市地图信息(JSON格式) //山东地图(第一级地 ...

  10. 关于Xilinx PCIE DMA的问答

    关于Xilinx PCIE DMA的问答 很久没上博客园了,但由于之前在博客园写了几篇关于PCIE DMA的文章,很多同学给我发消息询问相关知识点,之前有空的时候都是语音一小时跟人细讲,最近由于工作繁 ...