前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >journalctl基本介绍

journalctl基本介绍

作者头像
全栈程序员站长
发布2022-08-25 13:46:00
7500
发布2022-08-25 13:46:00
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

journalctl基础用法

1、查看所有日志(默认显示本次启动的所有日志)
代码语言:javascript
复制
[root@localhost ~]# journalctl

查看本次启动的所有日志也可以使用

代码语言:javascript
复制
[root@localhost ~]# journalctl -b
2、查看内核日志
代码语言:javascript
复制
[root@localhost ~]# journalctl -k
3、查看指定时间的日志

通过--since--until选项,可以过滤任意时间限制,显示指定条件之前、之后或之间的日志

代码语言:javascript
复制
[root@localhost ~]# journalctl --since="2019-11-27 14:21:00"

查询一个时间段范围内的日志

代码语言:javascript
复制
[root@localhost ~]# journalctl --since="2019-11-27 14:21:00" --until="2019-11-27 14:30:00"

使用"yesterday"、"today"、"tomorrow"或"now"显示某时段的日志

代码语言:javascript
复制
[root@localhost ~]# journalctl --since yesterday
4、根据不同的主题进行过滤筛选
代码语言:javascript
复制
[root@localhost ~]# journalctl -u kubelet.service
[root@localhost ~]# journalctl -u kubelet

a、根据进程ID查询 如果进程使用了systemd托管日志,则可以通过以下命令查找进程对应的日志

代码语言:javascript
复制
[root@localhost ~]# journalctl _PID=1

Systemd journal 有很多可以用来过滤的字段,可以通过 man systemd.journal-fields 查看所有可以用来过滤的字段。对于用来筛选的字段,可以使用-F参数来查看所有可以用来过滤的值,例如journalctl -F _PID; b、按优先级 操作系统提供了从0 (emerg) 到 7 (debug) 一共7个级别的日志,可以配合-p参数分别查看对应级别的日志

代码语言:javascript
复制
[root@localhost ~]# journalctl -p 5 -u kubelet

7个级别的含义为

  • 0: emerg 紧急情况
  • 1: alert 警告
  • 2: crit 危险
  • 3: err 错误
  • 4: warning 警告
  • 5: notice 注意
  • 6: info 信息
  • 7: debug 调试
5、调整显示输出

默认情况,journal输出进入分页模式,用户可以在终端上调整显示的内容,如果要不需要分页,需要加上--no-pager参数 以Json格式输出 通过-o参数,可以设置为json格式输出,这对于其他接收json格式的日志分析工具非常友好

代码语言:javascript
复制
[root@localhost ~]# journalctl -p 5 --no-pager -o json

使用json-pretty则对于管理员查看日志非常易读

代码语言:javascript
复制
[root@localhost ~]# journalctl -p 5 --no-pager -o 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字段,包括通常被内部隐藏的字段。
6、活动日志跟踪

journalctl也支持类似tail的功能,如通过-n参数指定显示最近的多少行,默认为10行

代码语言:javascript
复制
[root@localhost ~]# journalctl -n 20

显示cron.service服务的最新三行日志

代码语言:javascript
复制
[root@localhost ~]# journalctl -u cron.service -n 3

tail -f命令类似,journalctl支持-f选项,以便实时显示日志,持续监控日志输出

代码语言:javascript
复制
[root@localhost ~]# journalctl -f

二、journalctl维护

1、查看日志占用的磁盘空间
代码语言:javascript
复制
[root@localhost ~]# journalctl --disk-usage
Archived and active journals take up 6.0M on disk.
2、设置日志占用的空间
代码语言:javascript
复制
[root@localhost ~]# journalctl --vacuum-size=500M
Vacuuming done, freed 0B of archived journals on disk.

3、设置日志保存的时间

代码语言:javascript
复制
[root@localhost ~]# journalctl --vacuum-time=1month
Vacuuming done, freed 0B of archived journals on disk.

三、journalctl清空删除日志

  • 由于Linux是一个非常敏感的操作系统,若删除文件错误,很容易造成系统崩溃。
  • 所以,清理journalctl日志的方法,请按日期、允许保留的容量进行删除。
代码语言:javascript
复制
[root@localhost ~]# journalctl --vacuum-time=2d
[root@localhost ~]# journalctl --vacuum-size=500M
  • 如果要手动删除日志文件,则需要在删除之前轮转(循环)日志。
代码语言:javascript
复制
[root@localhost ~]# systemctl kill --kill-who=main --signal=SIGUSR2 systemd-journald.service

四、journalctl配置持久性容量

  • 要启用日志限制持久性配置,可以修改journald的配置文件 ▼
代码语言:javascript
复制
[root@localhost ~]# vim/etc/systemd/journald.conf

SystemMaxUse=16M ForwardToSyslog=no

  • 然后,重启journald ▼
代码语言:javascript
复制
[root@localhost ~]# systemctl restart systemd-journald.service
  • 检查日志是否如常?日志文件是否完好且未损坏? ▼
代码语言:javascript
复制
[root@localhost ~]# journalctl --verify


五、其他日志命令

代码语言:javascript
复制
# tail /var/log/messages            //系统主日志文件
# tail -20 /var/log/messages        //查看20行日志文件
# tail -f /var/log/messages         //动态查看日志文件的尾部
# tail /var/log/secure              //认证、安全
# tail /var/log/maillog             //跟邮件postfix相关
# tail /var/log/cron                //crond、at进程产生的日志
# tail /var/log/dmesg               //和系统启动相关
# tail /var/log/audit/audit.log     //系统审计日志
# tail /var/log/yum.log             //查看yum日志
# tail /var/log/mysqld.log          //查看MySQL日志
# tail /var/log/xferlog             //和访问FTP服务器相关
# w /var/log/wtmp                   //当前登录的用户(命令:w)
# last /var/log/btmp                //最近登录的用户(命令last)
# lastlog /var/log/lastlog          //所有用户的登录情况(命令lastlog)

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/142565.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • journalctl基础用法
    • 二、journalctl维护
      • 三、journalctl清空删除日志
        • 四、journalctl配置持久性容量
          • 五、其他日志命令
          相关产品与服务
          云数据库 MySQL
          腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档