2018年8月29日星期三

持久化journalctl日志清空命令查看配置参数详解

原文链接:https://www.chenweiliang.com/cwl-1141.html


每当电商网站管理员遇到MySQL数据库、Apache之类的应用程序,无法如常启动时,Linux系统都会有提示,使用 journalctl -ex 命令查看它。


  • 通常可以快速查找相关日志。

  • 经过这样分析日志,可以快速解决问题。

journal是什么意思?


journal基本解释:


  • n.日报,日志,日记;定期刊物,期刊,杂志;[会计]分类账

  • 变化形式

  • 复数journals

持久化journal的日志


持久化是在持久状态和瞬态状态之间转换程序数据的机制。 通俗地说,瞬态数据(例如无法永久存储的内存数据)。


持久化会持久存储到持久数据(例如数据库持久性,可以长时间存储)。


CentOS 7.X中,systemd管理所有单元的启动日志。


  • Systemd-journald是systemd管理的渐进式日志管理服务。

  • 它从内核收集日志,系统守护程序在系统的早期启动阶段启动并运行。

  • 标准输出和错误消息,以及系统日志的日志。

journalctl日志路径


日志服务仅将日志文件保存在单个结构中。


以下是CentOS 7 系统 VestaCP控制面板,journalctl日志的保存路径 ▼


/var/log/journal

  • 因为日志是压缩和格式化的二进制数据,所以在查看和定位非常快。

journalctl查看日志命令


持久化journalctl的日志配置参数命令详解



不加上任何选项,让journalctl输出所有日志记录的命令 ▼


journalctl

持久化journalctl的日志配置参数命令详解



  • 这基本上没用,因为你马上会被如洪水般的日志记录“淹没”,让你感到不堪重负。

接下来,我们将学习如何有效地过滤有价值的日志信息。


查看指定时间段journalctl日志


使用以下命令选项,设置时间段 ▼


--since
--until

  • 时间段负责指定给定时间之前和之后的日志记录。

时间值可以采用多种格式,例如以下格式 ▼


YYYY-MM-DD HH:MM:SS

如果你想检查在2018年3月8日晚上8点20分之后日志,请输入以下命令 ▼


journalctl --since "2018-03-26 20:20:00"

  • 如果未填写上述格式的某些组件,系统将直接填充默认值。

  • 例如,如果未填充日期部分,则直接显示当前日期。

  • 如果未填充时间部分,则默认使用“00:00:00”(午夜)。

  • 秒字段也可以留空。

默认值为“00”,例如以下命令 ▼


journalctl --since "2018-03-26" --until "2018-03-26 03:00"

此外,journalctl还可以理解一些相对值和命名简写。


  • 例如,你可以使用"yesterday"、"today"、"tomorrow"或"now"。

例如,要获取昨天的日志数据,可以使用以下命令 ▼


journalctl --since yesterday

要从上午9:00到最后一小时获取日志,可以使用以下命令 ▼


journalctl --since 09:00 --until "1 hour ago"

实时更新查看journalctl日志


跟 tail -f 命令类似,journalctl支持-f选项,以便实时显示日志 ▼


journalctl -f

如果想查看设备的实时日志,请添加-u选项 ▼


$ sudo journalctl -f -u prometheus.service

仅显示最journalctl 新的n行


命令行选项 -n 用于仅控制最新的n行日志。


默认是在最后显示最新的10行日志 ▼


$ sudo journalctl -n

你还可以在末尾显示指定行数的日志 ▼


$ sudo journalctl -n 20

以下是显示cron.service服务的最新三行日志 ▼


$ journalctl -u cron.service -n 3

网络营销人员使用VPS建站,安装VestaCP控制面板,搭建WordPress网站。


经常使用 df -h 命令查看VPS磁盘容量,发现每月以1GB的趋势在上升(记得上个月是1GB)


[root@ten ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/simfs       20G  7.5G   13G  38% /

devtmpfs        256M     0  256M   0% /dev

tmpfs           256M     0  256M   0% /dev/shm

tmpfs           256M  244K  256M   1% /run

tmpfs           256M     0  256M   0% /sys/fs/cgroup

tmpfs            52M     0   52M   0% /run/user/0

查看journalctl日志使用容量命令


检查当前 journalctl 日志使用磁盘容量命令 ▼


journalctl --disk-usage

journalctl清空删除日志


由于Linux是一个非常敏感的操作系统,若删除文件错误,很容易造成系统崩溃。


所以,清理journalctl日志的方法,请按日期、允许保留的容量进行删除。


journalctl --vacuum-time=2d
journalctl --vacuum-size=500M

如果要手动删除日志文件,则需要在删除之前轮转(循环)日志。


systemctl kill --kill-who=main --signal=SIGUSR2 systemd-journald.service


journalctl配置持久性容量


要启用日志限制持久性配置,你可以修改journald的配置文件 ▼


/etc/systemd/journald.conf


SystemMaxUse=16M

ForwardToSyslog=no

然后,重启journald ▼


systemctl restart systemd-journald.service

检查日志是否如常?日志文件是否完好且未损坏? ▼


journalctl --verify

以下是清理journalctl日志之后的VPS磁盘容量,以及journalctl日志容量 ▼


[root@ten /]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/simfs       20G  5.7G   15G  29% /

devtmpfs        256M     0  256M   0% /dev

tmpfs           256M     0  256M   0% /dev/shm

tmpfs           256M  308K  256M   1% /run

tmpfs           256M     0  256M   0% /sys/fs/cgroup

tmpfs            52M     0   52M   0% /run/user/0

[root@ten /]# journalctl --disk-usage

Archived and active journals take up 24.0M on disk.

持久化 journalctl 日志详解,到此结束 ^_^





欢迎转载《持久化journalctl日志清空命令查看配置参数详解
陈沩亮版权所有,转载请注明出处链接:https://www.chenweiliang.com/cwl-1141.html


网站地址:https://www.chenweiliang.com/



欲学更多秘技,请关注微信公众号:cwlboke

没有评论:

发表评论