systemd 日常应用
  

暴躁的钢索 8252人觉得有帮助

{{ttag.title}}
systemd日常应用
systemd 内置了很多管理系统日志的功能。在本指南中,我们将介绍如何管理系统日志,并对其采取轮换、归档和清除日志等操作。我们还解释了手动系统日志清理方法和使用配置文件的变化。
如果你的 Linux 发行版支持 systemd,那么从启动时开始,它每秒钟都会从系统的所有进程和应用程序中收集日志。所有这些日志事件都由 systemd 的 journald 守护程序管理。journald 收集所有的日志(信息、警告、错误等),并将其作为二进制数据存储在磁盘文件中。
由于日志保留在磁盘中,而且每秒钟都在收集,所以它占用了巨大的磁盘空间;特别是对于旧的系统、服务器来说。例如,在我的一个运行了一年左右的测试系统中,日志文件的大小是 GB 级的。
如果你管理多个系统、服务器,建议一定要正确管理journald 日志,以便高效运行。让我们来看看如何管理日志文件。
systemd 日志维护
使用 systemd 的 journalctl 工具,你可以查询这些日志,对其进行各种操作。例如,查看不同启动时的日志文件,检查特定进程或应用程序的最后警告和错误。
物理日记的日志文件在哪里?
systemd 的 journald 守护进程在每次启动时都会收集日志。这意味着,它根据启动情况对日志文件进行分类。
日志以二进制形式存储在路径 /var/log/journal,文件夹为机器 ID。
另外,请记住,根据系统配置,运行时日志文件被存储在 /run/log/journal/。而这些在每次启动时都会被删除。
我可以手动删除日志文件吗?
你可以,但不要这样做。相反,请按照下面的说明,使用 journalctl 工具清除日志文件以释放磁盘空间。
systemd 的日志文件占用了多少磁盘空间?
打开一个终端,运行以下命令。
1.   journalctl --disk-usage
这应该为你提供系统中的日志文件实际使用的数量.
如果你有一个图形化的桌面环境,你可以打开文件管理器,浏览路径 /var/log/journal,并检查属性。
systemd 日志清理过程
清理日志文件的有效方法应该是通过 journald.conf 配置文件来完成。正常情况下,即使 journalctl 提供了删除日志文件的工具,你也不应该手动删除这些文件。
让我们来看看如何 手动 删除它,然后我将解释 journald.conf 中的配置变化,这样你就不需要时不时地手动删除文件;相反,systemd 会根据你的配置自动处理它。
手动删除
首先,你必须 flush 和 rotate 日志文件。轮换(rotate)是将当前活动的日志文件归档,并立即开始创建一个新的日志文件继续记录日志。冲洗(flush) 开关要求日志守护进程将存储在 /run/log/journal/ 中的所有日志数据冲入 /var/log/journal/,如果持久性存储被启用的话。
然后,在 flush 和 rotate 之后,你需要用 vacuum-size、vacuum-time 和 vacuum-files 选项运行 journalctl 来强制systemd 清除日志。
例 1:
1.   sudo journalctl --flush --rotate
1.   sudo journalctl --vacuum-time=1s
上面这组命令会删除所有存档的日志文件,直到最后一秒。这有效地清除了一切。因此,在运行该命令时要小心。
你也可以根据你的需要在 --vacuum-time 的数字后面提供以下后缀:
·        s:秒
·        m:分钟
·        h:小时
·        days:天
·        months:月
·        weeks:周
·        years:年
例 2:
1.   sudo journalctl --flush --rotate
1.   sudo journalctl --vacuum-size=400M
这将清除所有存档的日志文件,并保留最后 400MB的文件。记住这个开关只适用于存档的日志文件,不适用于活动的日志文件。你也可以使用后缀,如下所示。
·        K:KB
·        M:MB
·        G:GB
例 3:
1.   sudo journalctl --flush --rotate
1.   sudo journalctl --vacuum-files=2
vacuum-files 选项会清除所有低于指定数量的日志文件。因此,在上面的例子中,只有最后两个日志文件被保留,其他的都被删除。同样,这只对存档的文件有效。
如果你愿意,你可以把两种选项结合起来,但我建议不要这样做。然而,如果同时使用两个选项,请确保先用 --rotate 选项运行。
使用配置文件自动删除
虽然上述方法很好,也很容易使用,但建议你使用journald 配置文件来控制日志文件的清理过程,该文件存在于 /etc/systemd/journald.conf。
systemd 为你提供了许多参数来有效管理日志文件。通过组合这些参数,你可以有效地限制日志文件所占用的磁盘空间。让我们来看看。
        
journald.conf 参数
         
描述
         
实例
     
      
SystemMaxUse
      
指定日志在持久性存储中可使用的最大磁盘空间
      
SystemMaxUse=500M
   
     
SystemKeepFree
      
指定在将日志条目添加到持久性存储时,日志应留出的空间量。
      
SystemKeepFree=100M
   
     
SystemMaxFileSize
      
控制单个日志文件在被轮换之前在持久性存储中可以增长到多大。
      
SystemMaxFileSize=100M
   
     
RuntimeMaxUse
      
指定在易失性存储中可以使用的最大磁盘空间(在 /run 文件系统内)。
      
RuntimeMaxUse=100M
   
     
RuntimeKeepFree
      
指定将数据写入易失性存储(在 /run 文件系统内)时为其他用途预留的空间数量。
      
RuntimeMaxUse=100M
   
     
RuntimeMaxFileSize
      
指定单个日志文件在被轮换之前在易失性存储(在 /run 文件系统内)所能占用的空间量。
      
RuntimeMaxFileSize=200M
   
如果你在运行中的系统的 /etc/systemd/journald.conf 文件中添加这些值,那么在更新文件后,你必须重新启动 journald。要重新启动,请使用以下命令。
1.   sudo systemctl restart systemd-journald
核实日志文件
在你清理完文件后,检查日志文件的完整性是比较明智的。要做到这一点,请运行下面的命令。该命令显示了日志文件是否通过(PASS)、失败(FAIL)。
1.   journalctl --verify

打赏鼓励作者,期待更多好文!

打赏
2人已打赏

发表新帖
热门标签
全部标签>
每日一问
技术盲盒
技术笔记
干货满满
技术咨询
新版本体验
GIF动图学习
功能体验
产品连连看
标准化排查
自助服务平台操作指引
2023技术争霸赛专题
运维工具
通用技术
秒懂零信任
技术晨报
信服课堂视频
用户认证
安装部署配置
深信服技术支持平台
安全攻防
SDP百科
设备维护
社区帮助指南
答题自测
每日一记
玩转零信任
畅聊IT
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
上网策略
测试报告
日志审计
问题分析处理
流量管理
云计算知识
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选

本版版主

217
274
151

发帖

粉丝

关注

本版达人

皮皮虾·真

本周建议达人

郑州网络

本周分享达人

二进制网络

本周提问达人