Linux系统管理员应该知道的journalctl知识
在Systemd出现之前,Linux系统及各应用的日志都是分别管理的,Systemd开始统一管理了所有Unit的启动日志,这样带来的好处就是可以只用一个 journalctl命令,查看所有内核和应用的日志。
1. 基础用法
1.1 查看所有日志(默认显示本次启动的所有日志)
[root@devops-101 ~]# journalctl
查看本次启动的所有日志也可以使用
[root@devops-101 ~]# journalctl -b
1.2 查看内核日志
[root@devops-101 ~]# journalctl -k
1.3 查看指定时间的日志
通过--since和--until选项,可以过滤任意时间限制,显示指定条件之前、之后或之间的日志。
[root@devops-101 ~]# journalctl --since="2018-09-21 10:21:00"
查询一个时间段范围内的日志。
[root@devops-101 ~]# journalctl --since="2018-09-21 10:21:00" --until="2018-09-21 10:22:00"
1.4 根据不同的主题进行过滤筛选
根据服务筛选
[root@devops-101 ~]# journalctl -u kubelet.service
[root@devops-101 ~]# journalctl -u kubelet
根据进程ID查询
如果进程使用了systemd托管日志,则可以通过以下命令查找进程对应的日志。
[root@devops-101 ~]# journalctl _PID=1
Systemd journal 有很多可以用来过滤的字段,可以通过
man systemd.journal-fields
查看所有可以用来过滤的字段。对于用来筛选的字段,可以使用-F
参数来查看所有可以用来过滤的值,例如journalctl -F _PID
。
按优先级
操作系统提供了从0 (emerg) 到 7 (debug) 一共7个级别的日志,可以配合-p参数分别查看对应级别的日志。
[root@devops-101 ~]# journalctl -p 5 -u kubelet
7个级别的含义为
- 0: emerg
- 1: alert
- 2: crit
- 3: err
- 4: warning
- 5: notice
- 6: info
- 7: debug
1.5 调整显示输出
默认情况,journal输出进入分页模式,用户可以在终端上调整显示的内容,如果要不需要分页,需要加上--no-pager
参数。
以Json格式输出
[root@devops-101 ~]# journalctl -p 5 --no-pager -o json
通过-o
参数,可以设置为json格式输出,这对于其他接收json格式的日志分析工具非常友好。
[root@devops-101 ~]# journalctl -p 5 --no-pager -o json-pretty
使用json-pretty
则对于管理员查看日志非常易读。
支持的各种格式如下:
- cat: 只显示信息字段本身。
- export: 适合传输或备份的二进制格式。
- json: 标准JSON,每行一个条目。
- json-pretty: JSON格式,适合人类阅读习惯。
- json-sse: JSON格式,经过打包以兼容server-sent事件。
- short: 默认syslog类输出格式。
- short-iso: 默认格式,强调显示ISO 8601挂钟时间戳。
- short-monotonic: 默认格式,提供普通时间戳。
- short-precise: 默认格式,提供微秒级精度。
- verbose: 显示该条目的全部可用journal字段,包括通常被内部隐藏的字段。
1.6 活动日志跟踪
journalctl也支持类似tail的功能,如通过-n
参数指定显示最近的多少行,默认为10行,通过-f
参数持续监控日志输出。
2. 维护
2.1 查看日志占用的磁盘空间
[root@devops-101 ~]# journalctl --disk-usage
Archived and active journals take up 8.0M on disk.
2.2 设置日志占用的空间
root@devops-101 ~]# journalctl --vacuum-size=500M
Vacuuming done, freed 0B of archived journals on disk.
2.3 设置日志保存的时间
[root@devops-101 ~]# journalctl --vacuum-time=1month
Vacuuming done, freed 0B of archived journals on disk.
3. 配置
上面的一些维护动作,也可以通过配置参数设置,配置文件位于/etc/systemd/journald.conf
。
- Storage=persistent
- Compress=yes
- Seal=yes
- SplitMode=uid
- SyncIntervalSec=5m
- RateLimitInterval=30s
- RateLimitBurst=1000
- SystemMaxUse=
- SystemKeepFree=
- SystemMaxFileSize=
- RuntimeMaxUse=
- RuntimeKeepFree=
- RuntimeMaxFileSize=
- MaxRetentionSec=
- MaxFileSec=1month
- ForwardToSyslog=yes
- ForwardToKMsg=no
- ForwardToConsole=no
- ForwardToWall=yes
- TTYPath=/dev/console
- MaxLevelStore=debug
- MaxLevelSyslog=debug
- MaxLevelKMsg=notice
- MaxLevelConsole=info
- MaxLevelWall=emerg
参考资料:
Linux系统管理员应该知道的journalctl知识的更多相关文章
- 系统管理员应该知道的20条Linux命令
如果您的应用程序不工作,或者您希望在寻找更多信息,这 20 个命令将派上用场. 在这个全新的工具和多样化的开发环境井喷的大环境下,任何开发者和工程师都有必要学习一些基本的系统管理命令.特定的命令和工具 ...
- 系统管理员应该知道的 20 条 Linux 命令
如果您的应用程序不工作,或者您希望在寻找更多信息,这 20 个命令将派上用场. 在这个全新的工具和多样化的开发环境井喷的大环境下,任何开发者和工程师都有必要学习一些基本的系统管理命令.特定的命令和工具 ...
- 新手指南: Linux 新手应该知道的 26 个命令
当你进入了 Linux 的世界,在下载.安装 了某个 Linux 发行版,体验了 Linux 桌面并安装了一些你喜爱和需要的软件之后,应该去了解下 Linux 真正的魅力所在:命令行.每一个 Linu ...
- Linux 新手应该知道的 26 个命令
https://linux.cn/article-6160-1.html 当你进入了 Linux 的世界,在下载.安装 了某个 Linux 发行版,体验了 Linux 桌面并安装了一些你喜爱和需要的软 ...
- 前端工程师应该知道的yarn知识
yarn 是在工作中离不开的工具,但在工作中,很多人基本只会使用 yarn install,而且会手动删除 node-modules,或删除 yarn.lock 文件等不规范操作.本文将从一些基础的知 ...
- Linux 用户必须知道的 14 个常用 Linux 终端快捷键
简介:以下是一些每个 Linux 用户必须使用的键盘快捷键. 使用命令行时,这些 Linux 快捷键将提升你的工作效率和效率. 你知道什么把专业用户和普通用户分开的吗?掌握键盘快捷键. 好的!这虽不是 ...
- Spring Boot 学习前你应该知道的 Maven 知识
Maven 是什么? 回答这个问题,我们先来了解下没有Maven,我们是怎么使用开发者工具IDE去开发Java程序的.我之前开发Java程序不多,但是我还是记得,我是从网上下载或从合作方拷贝 jar ...
- 每个开发人员都应该知道的WebSockets知识
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://blog.bitsrc.io/deep-dive-into-websockets- ...
- 前端必须知道的 Nginx 知识
Nginx一直跟我们息息相关,它既可以作为Web 服务器,也可以作为负载均衡服务器,具备高性能.高并发连接等. 1.负载均衡 当一个应用单位时间内访问量激增,服务器的带宽及性能受到影响, 影响大到自身 ...
随机推荐
- OneNET麒麟座应用开发之七:控制采样电机
气体采样采用主动抽取气体的方式保证充足而平稳的气流,所以我们采用气泵抽取气体来完成. 1.设计概述 客户对这部分要求能够设定电机的速度,但并不需要动态调节.对电机的控制有很多方式,我们采用比较简单的方 ...
- 洛谷P3865 ST表
传送门啦 思路: $ f[i][j] $ 表示从 $ i $ 开始,包含 $ 1<<j $ 个元素的区间的区间最大值: 转移方程: $ f[i][j]=max_(f[i][j-1],f[i ...
- Tesseract环境搭建及编译安装
Tesseract环境搭建及编译安装 Tesseract源码都是C++源码:对于不咋会C++的人来说,这真是...虽然说语言有相通性,但是...哎!!!!! 分享出来,也希望对大家有所帮助. 环境:w ...
- 获取更新元素文本html()
html() 方法,获取元素文本,包含元素标签,也可以设置元素的文本值(包含元素标签),还可以包含子元素标签.相当于JavaScript中的innerHTML. <!DOCTYPE html&g ...
- hdu 3405 删掉某点后 求最小生成树
给出N个点的坐标 边的权值为两点间的距离 删掉其中某点 求最小生成树的权值和 要求这权值最小 因为最多50个点 所以具体是删哪个点 用枚举假如有4个点 就要求4次最小生成树 分别是2 3 4 | 1 ...
- Mac上c语言连接mysql遇到的问题
参照<Beginning Linux Programming>上的例程写了一个连接mysql的c语言小程序connect1.c.但是按照书上的编译命令无法编译.然后经过查阅资料解决了问题. ...
- Codeforces 643C Levels and Regions 斜率优化dp
Levels and Regions 把dp方程列出来, 把所有东西拆成前缀的形式, 就能看出可以斜率优化啦. #include<bits/stdc++.h> #define LL lon ...
- python网络编程基础(线程与进程、并行与并发、同步与异步、阻塞与非阻塞、CPU密集型与IO密集型)
python网络编程基础(线程与进程.并行与并发.同步与异步.阻塞与非阻塞.CPU密集型与IO密集型) 目录 线程与进程 并行与并发 同步与异步 阻塞与非阻塞 CPU密集型与IO密集型 线程与进程 进 ...
- CSDN 个性 博客 栏目 自定义 栏目 酷炫 音乐 视频
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 自定义 栏目 酷炫 音乐 视频 ========
- pojA Star not a Tree?
题目链接 pojA Star not a Tree? 题解 啊,模拟退火是个好东西 模拟退火即可 代码 #include<cmath> #include<cstdio> #in ...