磁盘空间打爆以后恢复 journal日志,及用户手册

Systemd日志管理服务:Journald以及重要配置选项  https://www.cnblogs.com/morgan363/p/13957565.html

Linux 日志管理介绍  https://blog.csdn.net/m0_49864110/article/details/129175745

linux下的系统日志管理  https://blog.csdn.net/chitung_hsu/article/details/104301049

journald.conf(5) — Linux manual page  https://www.man7.org/linux/man-pages/man5/journald.conf.5.html

journald.conf 中文手册  https://www.jinbuguo.com/systemd/journald.conf.html

  https://blog.csdn.net/liukuan73/article/details/52484380

===================================

Systemd日志管理服务:Journald以及重要配置选项

  https://www.cnblogs.com/morgan363/p/13957565.html

       Journald是systemd引入的用于收集和存储日志数据的系统服务。它试图使系统管理员可以在越来越多的日志消息中更轻松地找到有趣且相关的信息。为了实现此目标,日记中的主要更改之一是用为日志消息优化的特殊文件格式替换简单的纯文本日志文件。这种文件格式使系统管理员可以更有效地访问相关消息。它还为单个系统带来了数据库驱动的集中日志记录实现的某些功能。

概览systemd-journald系统

Journald系统主要由三个主要的系统日记服务组件组成:

  • 守护程序:systemd日志服务由systemd-journald守护程序处理。
  • 配置文件:日志服务的配置在/etc/systemd/journald.conf里面设置。
  • 日志搜索程序:用于搜索日记日志文件的程序是journalctl。

       本文主要介绍systemd-journald日志相关的重要配置选项:主要包括systemd-journald logrotate和存储类型选择功能。

Journald支持的不同类型的存储

       我们可以通过修改 /etc/systemd/journald.conf文件控制存储类型值,在[Journal]字符串下面可以修改存储类型。

[Journal]
#Storage=auto

Storage支持的值为volatile,persistent,auto和none,默认是auto,所有值的含义如下

  • 如果为volatile,则日志数据将仅存储在内存中,即在 /run/log/journal目录下(根据需要创建)。
  • 如果是persistent,则数据将会存储在磁盘上,即 /var/log/journal目录下,并且在早期引导阶段磁盘不可写的时候把数据保存到 /run/log/journal目录下。
  • auto值意味着把日志数据存储在 /var/log/journal/目录中 (22.04 初始官方默认位置?)。但是该目录必须已经存在并且设置了适当的权限。
    如果不存在,则日记数据将存储在易失性 /run/log/journal/目录中,并且在系统关闭时会删除该数据
  • none 关闭所有存储,所有接收到的日志数据将被丢弃。


对日志文件执行logrotate

       systemd-journald日志文件的logrotate将基于以下值执行:

#SystemMaxUse=
#SystemKeepFree=
#SystemMaxFileSize=
#SystemMaxFiles=100
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#RuntimeMaxFiles=100
#MaxRetentionSec=
#MaxFileSec=1month

       这些设置将会限制日志文件的大小上限。 以System开头的选项用于限制磁盘使用量, 也就是  /var/log/journal 的使用量。 以 Runtime开头的选项用于限制内存使用量, 也就是 /run/log/journal 的使用量。

  • RuntimeMaxUse/SystemMaxUse= 控制日志最大可使用多少磁盘空间,然后对日志文件执行systemd-journald logrotate。默认为分配给节点的总物理内存的10%
  • RuntimeKeepFree/SystemKeepFree= 控制systemd-journald将为其他用途保留多少磁盘空间,之后将对日志文件执行systemd-journald logrotate。默认为分配给节点的总物理内存的15%
  • SystemMaxFileSize=/RuntimeMaxFileSize= 限制单个日志文件的最大体积, 到达此限制后日志文件将会自动滚动。 默认值是对应的 SystemMaxUse=/RuntimeMaxUse= 值的1/8 , 这也意味着日志滚动 默认保留7个历史文件。
  • SystemMaxFiles/RuntimeMaxFiles= 限制最多允许同时存在多少个日志文件, 超出此限制后, 最老的日志文件将被删除, 而当前的活动日志文件 则不受影响。 默认值为100个。
  • MaxRetentionSec=日志滚动的时间间隔。通常并不需要使用基于时间的日志滚动策略, 因为由SystemMaxFileSize/RuntimeMaxFileSize= 控制的基于文件大小的日志滚动策略已经可以确保日志文件的大小不会超标。 默认值是一个月, 设为零表示禁用基于时间的日志滚动策略。
  • MaxRetentionSec=日志文件的最大保留期限。 当日志文件的最后修改时间(mtime)与当前时间之差,大于此处设置的值时,日志文件将会被删除。 通常并不需要使用基于时间的日志删除策略。

如果我们检查systemd-journald的状态,那么我们可以看到它的报告日志已轮换:

$ systemctl status systemd-journald
● systemd-journald.service - Journal ServiceLoaded: loaded (/lib/systemd/system/systemd-journald.service; static; vendor preset: enabled)Active: active (running) since Sat 2019-11-23 08:34:43 CST; 3 months 14 days agoDocs: man:systemd-journald.service(8)man:journald.conf(5)Main PID: 404 (systemd-journal)Status: "Processing requests..."Tasks: 1 (limit: 9484)CGroup: /system.slice/systemd-journald.service└─404 /lib/systemd/systemd-journaldNov 23 08:34:43 ubuntu systemd-journald[404]: Journal started
Nov 23 08:34:43 ubuntu systemd-journald[404]: Runtime journal (/run/log/journal/0bc1c3fec0b84c47ac1b0ea61a9db220) is 8.0M, max 79.5M, 71.5M free.
Nov 23 08:34:43 ubuntu systemd-journald[404]: Time spent on flushing to /var is 46.023ms for 1754 entries.
Nov 23 08:34:43 ubuntu systemd-journald[404]: System journal (/var/log/journal/0bc1c3fec0b84c47ac1b0ea61a9db220) is 504.0M, max 4.0G, 3.5G free.
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.

linux下的系统日志管理

  https://blog.csdn.net/chitung_hsu/article/details/104301049

  1.systemd-journald.service日志采集查看服务

指令:

#journalctl

配置文件:

/etc/systemd/journald.conf

默认日志存放路径:

/run/log/journal

日志在内存中重启会消失

journal常用命令(Linux: systemd)

journalctl --list-boots
journalctl -b
journalctl -p
journalctl -k
journalctl -u ssh.service
journalctl --since yesterday --until now
journalctl -o json-pretty

/etc/systemd/journal.conf

原文链接:https://blog.csdn.net/nakano_azusa/article/details/115793715

补充:

systemctl status systemd-journald

Linux journal日志文件维护

  https://blog.csdn.net/icanflyingg/article/details/126928918

前言

系统空间占用排查过程中,发现 /var/log/journal目录占用空间较大,我们来看一下这个 journal 目录下的文件是否真的可以删除。

journal 目录是什么?

journalctl 用来查询 systemd-journald 服务收集到的日志,是 systemd init 系统提供的收集系统日志的服务。

systemd-journald是一个改进型日志管理服务,可以收集来自内核、系统早期启动阶段的日志、系统守护进程在启动和运行中的标准输出和错误信息,还有syslog的日志。

只要你不需要日志进行任何调试,可以删除 /var/log/journal/* 内的所有内容,但不要删除 /var/log/journal目录本身。你应该看看/etc/systemd/journald.conf,有一个设置可以限制系统存储的日志量(下文有介绍),因此旧的日志会被轮换出来。

一、查询 journalctl 消耗了多少磁盘空间

journalctl --disk-usage

root@c190:/var/log# journalctl --disk-usage
Archived and active journals take up 4.3G in the file system.

二、只保留500MB的日志

journalctl --vacuum-size=500M


 三、清理现有的日志到1个周以下

journalctl --vacuum-time=1w

 四、控制 journal 目录大小

修改/etc/systemd/journald.conf中的此参数控制此目录的大小

SystemMaxUse=500M

重新加载配置

systemctl restart systemd-journald

原文链接:https://blog.csdn.net/icanflyingg/article/details/126928918

磁盘空间打爆以后恢复journal日志

  https://cloud-atlas.readthedocs.io/zh-cn/latest/linux/redhat_linux/systemd/journal_recovery_out_of_space.html

遇到一个线上问题,根目录磁盘空间被打爆以后, journal 日志文件损坏了:

  • 检查磁盘硬件应该是正常的,因为能够独立删除 /var/log 目录下文件,并且也能够写文件

  • 但是执行任何 journalctl 命令都会报错 Error was encountered while opening journal files: Input/output error :

无法操作journal日志文件,始终报错¶

#journalctl --verify
Error was encountered while opening journal files: Input/output error#journalctl -e
Error was encountered while opening journal files: Input/output error#journalctl --vacuum-size=10M
Error was encountered while opening journal files: Input/output error

已经手工清理了 /var/log 目录下 的一些 sar 文件,也就是空出了根目录大约几百兆

  • 尝试校验journal日志文件

DEBUG模式校验journal日志文件¶

SYSTEMD_LOG_LEVEL=debug journalctl --verify

但是还是不行

  • 实在找不出解决的方法,似乎没有 repair 命令参数,所以最后还是清理掉所有历史日志重新开始:

无法修复jouranl日志文件,所以清理掉所有日志重新开始¶

#journalctl
Error was encountered while opening journal files: Input/output error#systemctl stop systemd-journald.service
Warning: Stopping systemd-journald.service, but it can still be activated by:systemd-journald.socket#systemctl stop systemd-journald.socket#rm -f /var/log/journal/0eef22fd6e9d4b3da022179e6b831d26/*#ls#systemctl start systemd-journald.service#ls
system.journal#journalctl
-- Logs begin at Wed 2023-12-27 21:54:01 CST, end at Wed 2023-12-27 21:54:03 CST. --
Dec 27 21:54:01 gpuxdn033188212154.ea133 systemd-journal[347367]: Permanent journal is using 8.0M (max allowed 4.0G, trying to leave 4.0G free of 4.4G available → current limit 488.5M).
Dec 27 21:54:01 gpuxdn033188212154.ea133 systemd-journald[341770]: Received SIGTERM from PID 1 (systemd).
Dec 27 21:54:01 gpuxdn033188212154.ea133 systemd-journal[347367]: Journal started
Dec 27 21:54:01 gpuxdn033188212154.ea133 polkitd[199757]: Unregistered Authentication Agent for unix-process:347362:2498725326 (system bus name :1.1430, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) (disconnected from bu
Dec 27 21:54:01 gpuxdn033188212154.ea133 admin[347378]: alicmd:root:systemctl start systemd-journald.service:admin pts/0 2023-12-27 21:22 (33.189.253.79)
Dec 27 21:54:02 gpuxdn033188212154.ea133 admin[347542]: alicmd:root:ls:admin pts/0 2023-12-27 21:22 (33.189.253.79)
Dec 27 21:54:03 gpuxdn033188212154.ea133 su[347621]: (to root) root on none
Dec 27 21:54:03 gpuxdn033188212154.ea133 su[347621]: pam_unix(su:session): session opened for user root by (uid=0)
Dec 27 21:54:03 gpuxdn033188212154.ea133 su[347621]: pam_unix(su:session): session closed for user root

参考¶

  • Corrupted user journal files #24150

  • Systemd journal corruption on Fedora

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/780365.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode的正确打开方式

很多新手朋友在学习完数据结构与算法之后,都想找个平台磨练自己的技艺。那么LeetCode绝对是不二之选。但是官网刷题不是很友好,那么今天给大家介绍一款刷LeetCode神器。也是未来工作之后的摸鱼神器。 leetcode-editor 本打工人的摸(nei&am…

10分钟带你用openlab搭建web网站

准备工作 虚拟机恢复快照 关闭防火墙、下载httpd,启动httpd服务、显示httpd服务是否开启 [rootserver ~]# systemctl stop firewalld [rootserver ~]# yum install httpd -y [rootserver ~]# systemctl start httpd [rootserver ~]# systemctl enable httpd [root…

【Java初阶(六)下】封装 继承 多态

❣博主主页: 33的博客❣ ▶文章专栏分类: Java从入门到精通◀ 🚚我的代码仓库: 33的代码仓库🚚 目录 1.前言2.多态2.1多态的概念2.2多态实现条件2.3重写2.3.1避免在构造方法中调用重写的方法 2.4向上转型和向下转型2.4.1向上转型2.4.2向下转型 3.抽象类3…

常见的数学方法

Math类表示数学类,其中的数学方法都被定义成为static形式,所以可以直接通过Math类的类名调用某个数学方法。语法格式: Math.xxx(参数); 例题 输入n个整数a1,a2,a3,......an,求这n个数的最大值max,最小值min&#xff0…

QProcess详解

QProcess 是 Qt 库中的一个核心类,用于在 Qt 应用程序中启动外部进程(如操作系统命令、可执行文件或脚本),并与其进行交互。下面详细介绍 QProcess 的使用方法和主要功能: 基本使用 标题创建 QProcess 对象 QProces…

记录个人学习golang路线(如何学习golang,如何转golang)

最近好久没更,在看兔兔的博客,学习golang,兔兔的文章,有一定的编程经验 && 初学golang者,一定要看,如果是其他语言转golang,那就必须要看了,可以帮助你了解golang的语法&…

再见 mysql_upgrade

在数据库管理的世界里,随着技术的不断进步和业务的不断发展,数据库的版本升级成为了一个不可避免的过程。 MySQL 作为业界领先的开源关系型数据库管理系统,其版本迭代与功能优化同样不容忽视。 而在这个过程中,升级工具就显得尤为…

C# EventHander

EventHandler 是在编程中,特别是在面向对象的编程中,用于处理事件的一个特殊类型的委托(delegate)。事件是当某个特定动作或情况发生时,对象通知其他对象的一种方式。而 EventHandler 就是一个允许你定义当这个事件发生…

政安晨:【Keras机器学习实践要点】(五)—— 通过子类化创建新层和模型

目录 介绍 安装 层级:状态(权重)与某些计算的组合 层可以有不可训练的重量 最佳实践:推迟权重的创建,直到输入的形状已知。 层可以递归组合 后端不可知层和特定后端层 add_loss()方法 可以选择在您的层上启用…

C语言goto语句介绍

在C语言中,goto语句是一种流程控制语句,用于无条件地转移到程序中的特定标签位置。尽管goto语句在编程中具有一定的争议,但在某些情况下,它可以提供一种简单有效的解决方案。本文将深入介绍C语言中的goto语句,包括其基…

前端小白的学习之路(webpack)

提示:webpack简介,nvm,npm配置环境,常用命令,基本web项目构建 目录 webpack 1.配置环境 1)node.js node常用命令 2)nvm nvm常用命令: 3)npm npm常用命令 2.构建简易web项目 1)创建目录 2)安装webpack依赖 3)配置 webpac…

安全算法 - 摘要算法

摘要算法是一种将任意长度的数据转换为固定长度字节串的算法。它具有以下特点和应用。 首先,摘要算法能够生成一个唯一且固定长度的摘要值,用于验证数据的完整性和一致性。无论输入数据有多长,生成的摘要值始终是固定长度的,且即…

4核32G轻量云服务器优惠价格65元/月、951元一年

京东云4核32G轻量服务器优惠价格65元/月、195元3个月、476元6个月、951元一年,配置4C32G-100G SSD系统盘-8M带宽-1500G月流量 华北-北京,京东云优惠活动 yunfuwuqiba.com/go/jd 活动链接打开如下图: 京东云4核32G轻量服务器优惠价格 京东云&a…

Vue基础配置、组件通信

基础配置 Vue框架已经集成了webpack配置 小注意点 vbase 快速生成vue模板 组件名必须是多词格式(驼峰模式) 具体三种写法: ①小驼峰:abcDef.vue ②大驼峰:AbcDef.vue ③中横线:abc-def.vue 假如文件名不符合多次格式的补救办法: 导出重命名…

写作类AI推荐(二)

本章要介绍的写作AI如下: 火山写作 主要功能: AI智能创作:告诉 AI 你想写什么,立即生成你理想中的文章AI智能改写:选中段落句子,可提升表达、修改语气、扩写、总结、缩写等文章内容优化:根据全文…

【Vue】手写Vue工具函数hasChanged源码

function hasChanged(x,y) {}hasChanged函数接受两个参数,判断参数是否发生变化,即两个参数是否完全相同,发生了改变返回true,否则返回flase。 对象类型数据先比较值,相同则比较址,址不同也返回true。 首先…

Java零基础-集合:函数式接口

哈喽,各位小伙伴们,你们好呀,我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后…

Stable Diffusion 模型下载:epiCPhotoGasm(真实、照片)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 该模型对照片是什么有很高的了解,所以…

泰迪智能科技荣获山东省“技能兴鲁”职业技能大赛优秀组织奖

近日,泰迪智能科技荣获了山东省“技能兴鲁”职业技能大赛——第四届山东省“云数”技能竞赛“优秀组织单位”。 据悉,山东省“技能兴鲁”职业技能大赛——第四届山东省“云数”技能竞赛是由山东电子学会、山东省信息产业协会主办的,该竞赛是通…

OpenHarmony OpenCV应用样例开发

背景 OpenCV 介绍 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。它由一系列的 C 函数和少量 C 类构成,同时提供 Python、Java 和 MATLAB 等语言的接口,实现了图像处理和计算机视觉方面…