systemd-journal(三)之systemd.journal-fields

文章目录

  • 写在前面
  • 概述
  • 用户日志字段(User Journal Fields)
    • MESSAGE=
    • MESSAGE_ID=
    • PRIORITY=
    • CODE_FILE=, CODE_LINE=, CODE_FUNC=
    • ERRNO=
    • INVOCATION_ID=, USER_INVOCATION_ID=
    • SYSLOG_FACILITY=, SYSLOG_IDENTIFIER=, SYSLOG_PID=, SYSLOG_TIMESTAMP=
    • DOCUMENTATION=
    • TID=
    • UNIT=, USER_UNIT=
  • 可信日志字段(Trusted Journal Fields)
    • _PID=, _UID=, _GID=
    • _COMM=, _EXE=, _CMDLINE=
    • _CAP_EFFECTIVE=
    • _CAP_EFFECTIVE=
    • _AUDIT_SESSION=, _AUDIT_LOGINUID=
    • _SYSTEMD_CGROUP=, _SYSTEMD_SLICE=, _SYSTEMD_UNIT=, _SYSTEMD_USER_UNIT=, _SYSTEMD_USER_SLICE=, _SYSTEMD_SESSION=, _SYSTEMD_OWNER_UID=
    • _SELINUX_CONTEXT=
    • _SOURCE_REALTIME_TIMESTAMP=
    • _BOOT_ID=
    • _MACHINE_ID=
    • _SYSTEMD_INVOCATION_ID=
    • _HOSTNAME=
    • _TRANSPORT=
      • audit
      • driver
      • syslog
      • journal
      • stdout
      • kernel
    • _STREAM_ID=
    • _LINE_BREAK=
    • _NAMESPACE=
    • _RUNTIME_SCOPE=
  • 内核日志字段 (Kernel Journal Fields)
    • _KERNEL_DEVICE=
    • _KERNEL_SUBSYSTEM=
    • _UDEV_SYSNAME=
    • _UDEV_DEVNODE=
    • _UDEV_DEVLINK=
  • 代表其他程序登录的字段(Fields to log on behalf of a different program)
    • systemd-coredump ,coredump 内核帮助程序使用的字段:
      • COREDUMP_UNIT=
    • 特权程序(当前为 UID 0)可能会附加 OBJECT_PID= 到消息。这将指示 systemd-journald 代表调用方附加其他字段:
      • OBJECT_PID=PID
      • OBJECT_UID=, OBJECT_GID=, OBJECT_COMM=, OBJECT_EXE=, OBJECT_CMDLINE=, OBJECT_AUDIT_SESSION=, OBJECT_AUDIT_LOGINUID=, OBJECT_SYSTEMD_CGROUP=, OBJECT_SYSTEMD_SESSION=, OBJECT_SYSTEMD_OWNER_UID=, OBJECT_SYSTEMD_UNIT=, OBJECT_SYSTEMD_USER_UNIT=
  • 地址字段 (Address Fields)
    • __CURSOR=
    • __REALTIME_TIMESTAMP=
    • __MONOTONIC_TIMESTAMP=
    • __SEQNUM=, __SEQNUM_ID=

写在前面

本文主要是详细介绍了systemd.journal-fields ,主要翻译自英文原文文档(develop版本,截止到文章记录,最新版本是systemd 255)。以及增加了一些使用示例。
主要是以下页面的翻译:
https://www.freedesktop.org/software/systemd/man/latest/systemd.journal-fields.html#
其他相关文档请参考:systemd专栏
在这里插入图片描述
在这里插入图片描述

概述

systemd.journal-fields ---- 特殊日志字段

日志中的记录(由 systemd-journald.service(8) 编写)在语法上类似于 UNIX 进程环境块,但字段值可能包含二进制数据,并且允许使用非唯一字段名称。

字段值主要是格式化的 UTF-8 文本字符串 —— 二进制编码仅在格式化为 UTF-8 文本字符串没有意义的情况下使用。新字段可以由应用程序自由定义,但少数字段具有特殊含义,如下所示。

通常,每个日志记录的字段可能只出现一次,但也有特殊的例外情况:某些字段可能每个记录出现多次,在这种情况下,下面明确提到这一点。

尽管日志记录子系统对接受非唯一值的字段没有限制,但强烈建议避免对下面列出的字段依赖此值(除非另有说明,如前所述),以避免与其他应用程序不必要的不兼容。

用户日志字段(User Journal Fields)

用户字段是直接从客户端传递并存储在日志中的字段。

MESSAGE=

此记录是人类可读消息字符串。这应该是向用户显示的主要文本。它通常不会被翻译(但在某些情况下可能会翻译),并且不应该被解析为元数据。

为了在单个日志记录中对多行进行编码,请用换行符(ASCII 代码 10)分隔它们,但将它们编码为单个 MESSAGE= 字段。

不要将此字段类型的多个值添加到同一记录(另请参阅上文),因为使用应用程序通常不会期望这样做,并且在这种情况下不太可能显示所有值。

MESSAGE_ID=

用于识别某些消息类型的 128 位消息标识符 ID(如果需要)。

这应该包含一个 128 位 ID,格式为小写十六进制字符串,没有任何分隔破折号或类似内容。

建议将其设置为与 UUID 兼容的 ID,但不会强制执行,并且格式不同。

开发人员可以使用 systemd-id128 new 生成一个新 ID。

PRIORITY=

介于 0 (“ emerg ”)7 (“ debug ”) 之间的优先级值,格式为十进制字符串。此字段与 syslog 的优先级概念兼容。

CODE_FILE=, CODE_LINE=, CODE_FUNC=

生成此消息的代码位置(如果已知)。包含源文件名、行号和函数名称。

ERRNO=

导致此记录的低级 Unix 错误号(如果有)。包含 errno(3) 的数值,格式为十进制字符串。

INVOCATION_ID=, USER_INVOCATION_ID=

一个随机的、唯一的 128 位 ID,用于标识设备的每个运行时周期。这与_SYSTEMD_INVOCATION_ID 不同之处在于,它仅用于来自 systemd 代码的消息(例如,来自系统/用户管理器的日志或来自执行 systemd 相关设置的分叉进程的日志)。

SYSLOG_FACILITY=, SYSLOG_IDENTIFIER=, SYSLOG_PID=, SYSLOG_TIMESTAMP=

Syslog 兼容性字段包含设施(格式为十进制字符串)、标识符字符串(即“标签”)、客户端 PID 和原始数据报中指定的时间戳。 (请注意,该标记通常派生自 glibc 的program_invocation_short_name 变量,请参阅program_invocation_short_name(3)。)

请注意,日志服务不会验证名称未以下划线为前缀的任何结构化日志字段的值,这包括任何与系统日志相关的字段,例如这些字段。因此,提供设施、PID 或日志级别的应用程序应正确格式化,即格式化为十进制字符串的数字整数。

DOCUMENTATION=

包含有关日志消息主题的详细信息的文档 URL。journalctl 等工具将在其输出中包含指向以这种方式指定的 URL 的超链接。应为“ http:// ”, “ https:// ”, “ file:/ ”, “ man: ” 或 “ info: ” URL

TID=

日志消息源的线程 ID (TID),为数字。

UNIT=, USER_UNIT=

UNIT单元的名称。由系统和用户管理器在记录特定单元时使用。
当 或 --user-unit=namejournalctl(1) 一起使用时 --unit=name , 将生成包含 “ UNIT=name.service ”“ USER_UNIT=name.service的匹配模式。

可信日志字段(Trusted Journal Fields)

以下划线为前缀的字段是受信任字段,即由日志隐式添加且无法由客户端代码更改的字段。

_PID=, _UID=, _GID=

日志记录源自的进程的进程、用户和组 ID,格式为十进制字符串。请注意,通过分叉进程的 “ stdout ”“ stderr获得的记录将包含对父进程(启动与 systemd-journald 的连接)有效的凭据。

_COMM=, _EXE=, _CMDLINE=

日志记录源自的进程的名称、可执行文件路径和命令行。

_CAP_EFFECTIVE=

日志记录来源的进程的会话和登录 UID,由内核审核子系统维护。

_CAP_EFFECTIVE=

日志记录来源的流程的有效能力(7)

The effective capabilities(7) of the process the journal entry originates from.

_AUDIT_SESSION=, _AUDIT_LOGINUID=

日志记录来源的进程的会话和登录 UID,由内核审核子系统维护。

_SYSTEMD_CGROUP=, _SYSTEMD_SLICE=, _SYSTEMD_UNIT=, _SYSTEMD_USER_UNIT=, _SYSTEMD_USER_SLICE=, _SYSTEMD_SESSION=, _SYSTEMD_OWNER_UID=

systemd 层次结构中的控制组路径、systemd 切片单元名称、systemd 单元名称、systemd 用户管理器中的单元名称(如果有)、systemd 会话 ID(如果有)以及日志记录来源的进程的 systemd 用户单元或 systemd 会话(如果有)的所有者 UID。

_SELINUX_CONTEXT=

日志记录源自的进程的 SELinux 安全上下文(标签)。

_SOURCE_REALTIME_TIMESTAMP=

消息的最早受信任时间戳(如果已知有)与日志的接收时间不同。这是自纪元 UTC 以来以微秒为单位的时间,格式为十进制字符串。

_BOOT_ID=

生成消息的启动的内核启动 ID,格式为 128 位十六进制字符串。

_MACHINE_ID=

原始主机的机器 ID,在 machine-id(5) 中可用。

_SYSTEMD_INVOCATION_ID=

生成消息的单元的运行时周期的调用 ID,可供单元的进程使用 $INVOCATION_ID (参见 systemd.exec(5))。

_HOSTNAME=

原始主机的名称。

_TRANSPORT=

日志服务如何接收日志记录。有效的传输方式包括:

audit

用于那些从内核审计子系统读取的用户

driver

对于内部生成的消息

syslog

对于通过本地 syslog 套接字和 syslog 协议接收的那些

journal

对于通过Native Journal Protocol接收的那些

stdout

对于从服务的标准输出或错误输出读取的用户

kernel

对于那些从内核中读取的人

_STREAM_ID=

仅适用于 “ _TRANSPORT=stdout ” 记录:指定在首次创建流连接时分配给流连接的随机 128 位 ID。此 ID 可用于从日志记录中重建单个日志流:具有相同流 ID 的所有日志记录都源自同一流。

_LINE_BREAK=

仅适用于 “ _TRANSPORT=stdout ” 记录:表示标准输出/错误流中的日志消息未以普通换行符(“ \n ”,即 ASCII 10)结尾。

具体来说,当设置时,此字段是( nul 如果行以 NUL 字节终止)line-max(如果达到最大日志行长度,如 journald.conf(5) 中配置)、 LineMax= eof (如果这是流的最后一个日志记录,并且流结束时没有最后一个换行符)或 pid-change (如果生成日志输出的进程在行中间发生更改)之一。

请注意,当使用普通换行符标记日志行结束时,不会生成此记录。

_NAMESPACE=

如果此文件是由管理非默认日志命名空间的 systemd-journald 实例编写的,则此字段包含命名空间标识符。参见 systemd-journald.service(8) 来了解日志命名空间的细节。

_RUNTIME_SCOPE=

一个字符串字段,该字段指定记录消息的运行时范围。如果是“ initrd ”,则当系统在 initrd 中运行时处理日志消息。如果 是 system ”,则日志消息是在系统切换到主机根文件系统执行后生成的。

内核日志字段 (Kernel Journal Fields)

内核字段是由源自内核并存储在日志中的信息使用的字段。

_KERNEL_DEVICE=

内核设备名称。

如果记录与块设备相关联,则包含设备节点的主要和次要编号,以“ : ” 分隔,并以“ b ” 为前缀。与字符设备类似,但以“ c ” 为前缀。

对于网络设备,这是以“ n ” 为前缀的接口索引。

对于所有其他设备,这是以 “ + ” 为前缀的子系统名称,后跟 “ : ” ,后跟内核设备名称。

_KERNEL_SUBSYSTEM=

内核子系统名称。

_UDEV_SYSNAME=

内核设备名称,显示在下面/sys/的设备树中。

_UDEV_DEVNODE=

此设备在 中的 /dev/ 设备节点路径。

_UDEV_DEVLINK=

指向 中 /dev/ 设备节点的其他符号链接名称。每个记录通常设置此字段不止一次。

代表其他程序登录的字段(Fields to log on behalf of a different program)

程序使用本节中的字段来指定它们代表另一个程序或单元进行日志记录。

systemd-coredump ,coredump 内核帮助程序使用的字段:

COREDUMP_UNIT=

用于注释包含来自系统和会话单元的核心转储的消息。参见 coredumpctl(1)
Used to annotate messages containing coredumps from system and session units. See coredumpctl(1).

特权程序(当前为 UID 0)可能会附加 OBJECT_PID= 到消息。这将指示 systemd-journald 代表调用方附加其他字段:

OBJECT_PID=PID

此消息所属程序的 PID。

OBJECT_UID=, OBJECT_GID=, OBJECT_COMM=, OBJECT_EXE=, OBJECT_CMDLINE=, OBJECT_AUDIT_SESSION=, OBJECT_AUDIT_LOGINUID=, OBJECT_SYSTEMD_CGROUP=, OBJECT_SYSTEMD_SESSION=, OBJECT_SYSTEMD_OWNER_UID=, OBJECT_SYSTEMD_UNIT=, OBJECT_SYSTEMD_USER_UNIT=

这些是 systemd-journald 自动添加的附加字段。它们的含义与_UID= 、 _GID= 、 _COMM= _EXE= _CMDLINE= _AUDIT_SESSION= _AUDIT_LOGINUID= _SYSTEMD_CGROUP= _SYSTEMD_SESSION= _SYSTEMD_UNIT= _SYSTEMD_USER_UNIT= _SYSTEMD_OWNER_UID=和 如上所述 相同,只是描述的是 标识的 PID 进程,而不是记录消息的进程。

地址字段 (Address Fields)

在序列化为外部格式(如日志导出格式或日志 JSON 格式)期间,日志记录的地址将序列化为以双下划线为前缀的字段。请注意,当存储在日志中时,这些字段不是正确的字段,而是用于处理记录的元数据。它们不能通过调用(如 sd_journal_send(3)作为结构化日志记录的一部分写入。它们也不能用作sd_journal_add_match(3) 的匹配项。

__CURSOR=

__CURSOR=   #前面是两个下划线

记录的光标。游标是一个不透明的文本字符串,它唯一地描述了记录在日志中的位置,并且可以跨计算机、平台和日志文件进行移植。

__REALTIME_TIMESTAMP=

__REALTIME_TIMESTAMP=  #前面是两个下划线

日志收到记录时的挂钟时间 ( CLOCK_REALTIME ),自 UTC 纪元以来的微秒数,格式为十进制字符串。这与“ _SOURCE_REALTIME_TIMESTAMP= ” 具有不同的属性,因为它通常稍晚一些,但更有可能是单调的。

__MONOTONIC_TIMESTAMP=

__MONOTONIC_TIMESTAMP=  #前面是两个下划线

日志接收记录的时间点的单调时间 CLOCK_MONOTONIC 以微秒为单位,格式为十进制字符串。为了用作日志记录的地址,应将其与“ _BOOT_ID= ” 中的引导 ID 结合使用。

__SEQNUM=, __SEQNUM_ID=

__SEQNUM=, __SEQNUM_ID=  #前面是两个下划线

此日志记录源自的日志文件中的序列号(和关联的序列号 ID)。详见sd_journal_get_seqnum(3)

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

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

相关文章

渗透测试——分享几个我常用渗透网站

前言 经常有小伙伴问我常用的渗透网站有哪些,花点时间整理出来,废话不多说,直接上网站。 一、雨苁 雨苁 这个网站从我接触网络安全一直在用,里面有几个很有用的工具如:在线地图情报搜集,开源情报信息收集…

【2G 50元/年 4G 618/3年!】支持比价必赔 送抽奖机会 京东云服务器推荐 附阿里云 腾讯云价格对比表

《最新对比表》已更新在文章头部—腾讯云文档,文章具有时效性,请以腾讯文档为准! 【腾讯文档实时更新】云服务器1分钟教会你如何选择教程 https://docs.qq.com/document/DV0RCS0lGeHdMTFFV?tab000003 ​ 当前活动:采购季&#…

揭秘抖音百科词条创建全攻略!

在当今社交媒体的盛行时代,抖音作为一款备受青睐的短视频平台,一直以来都备受人们的喜爱和追捧。而在抖音上的各种短视频内容之中,往往会涉及各种明星名人、品牌产品以及各种时事热点。为了更好地让用户获取相关信息,抖音百科词条…

闲鱼教程大全(价值2000)

实战干货视频教程 免费发送内容: "闲鱼", 获取提取码

有道翻译接口逆向

前言 本文主要介绍了有道翻译的接口调用情况,对两个接口进行了初步的接口逆向,只供学习交流使用。 找到翻译接口 webtranslate 网页地址:https://fanyi.youdao.com/index.html#/ 首先找到翻译接口 可以看出,翻译接口是 webt…

【数据结构】归并排序(不用递归)

大家好,我是苏貝,本篇博客带大家了解归并排序,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 归并排序(用递归) 之前我们写了一篇博客来介绍如何用递归实现归并排序…

工业无线网关在汽车制造企业的应用效果和价值-天拓四方

随着智能制造的快速发展,工业无线网关作为关键通信设备,在提升生产效率、优化生产流程、实现设备间的互联互通等方面发挥着越来越重要的作用。以下是一个关于工业无线网关在智能制造行业应用的具体案例,展示了其在实际生产中的应用效果和价值…

fastadmin学习01-windows下安装部署

下载源代码 官网 安装 解压,然后使用phpstorm打开 修改配置文件 创建数据库 -- drop database fastadmin01; create database fastadmin01;这样fastadmin就部署好了 访问主页也能看到前台页面

进行接口测试时,连接数据库,对数据源进行备份、还原、验证操作

进行接口测试时,我们需要连接到数据库中,对数据源进行备份、还原、验证等操作。 一、Python连接数据库常见模块 MysqlDBpython2时代最火的驱动库。基于C开发,对windows平台不友好。现在已经进入python3时代,基本不再使用MysqlCl…

Vue3气泡卡片(Popover)

效果如下图:在线预览 APIs 参数说明类型默认值必传title卡片标题string | slot‘’falsecontent卡片内容string | slot‘’falsemaxWidth卡片内容最大宽度string | number‘auto’falsetrigger卡片触发方式‘hover’ | ‘click’‘hover’falseoverlayStyle卡片样式…

Qt/QML编程之路:画线及倒车影响(48)

前言: 倒车影像中有一个属性比较实用,那就是倒车线,这条线很明显会在视频图像上叠加显示,或者说在视频上面一个图层画的线。这里有一个画线的Qt示例,用于在一个scene上画一个对角线: #include "mainwindow.h" #include <QApplication> #include <QtW…

python接口自动化测试 之mock模块基本使用介绍

mock作用 解决依赖问题&#xff0c;达到解耦作用 当我们测试某个目标接口&#xff08;模块&#xff09;时&#xff0c;该接口依赖其他接口&#xff0c;当被依赖的接口未开发完成时&#xff0c;可以用mock模拟被依赖接口&#xff0c;完成目标接口的测试 模拟复杂业务的接口 …

argocd部署

一、前言 ArgoCD 是一个开源的、持续交付工具&#xff0c;用于自动化部署应用程序到 Kubernetes 集群。它基于 GitOps 理念&#xff0c;通过使用 Git 作为单一的源头来管理应用程序的配置和部署状态&#xff0c;argocd会定时监控git仓库中的yaml配置文件&#xff0c;当git仓库中…

案例分享|智能机器人空调压缩机曲轴轴套装配

随着空调市场的不断扩大和消费者对于空调性能要求的提高&#xff0c;空调压缩机的制造质量也日益受到关注。作为压缩机核心部件之一的曲轴轴套&#xff0c;其装配质量直接关系到压缩机的性能和稳定性。 一、案例背景 某知名空调制造商在生产某型号压缩机时&#xff0c;发现曲轴…

2024年3月GESP等级认证C++编程五级真题

2024年3月GESP认证C编程五级真题试卷 题目总数&#xff1a;27 总分数&#xff1a;100 选择题 第 1 题 单选题 唯⼀分解定理描述的内容是 ( ) ? A.任意整数都可以分解为素数的乘积 B.每个合数都可以唯⼀分解为⼀系列素数的乘积 C.两个不同的整数可以分解为相同…

初步接触C++

hello&#xff0c;各位小伙伴&#xff0c;本篇文章跟大家一起学习C&#xff0c;感谢大家对我上一篇的支持&#xff0c;如有什么问题&#xff0c;还请多多指教 &#xff01; 文章目录 初步区别C语言和C命名空间1.命名空间的定义2.命名空间的使用 C的输入输出缺省参数1.缺省参数…

机器学习——神经网络简单了解

一、神经网络基本概念 神经网络可以分为生物神经网络和人工神经网络 (1)生物神经网络,指的是生物脑内的神经元、突触等构成的神经网络&#xff0c;可以使生物体产生意识&#xff0c;并协助生物体思考、行动和管理各机体活动。 (2)人工神经网络,是目前热门的深度学习的研究…

计算坤是如何工作的

White graces&#xff1a;个人主页 &#x1f649;专栏推荐:Java入门知识&#x1f649; &#x1f649; 内容推荐:&#x1f649; &#x1f439;今日诗词:&#x1f439; ⛳️点赞 ☀️收藏⭐️关注&#x1f4ac;卑微小博主&#x1f64f; ⛳️点赞 ☀️收藏⭐️关注&#x1f4ac…

进程、线程、协程与虚拟线程(进程相关)

进程、线程、协程与虚拟线程 这一次我们从头&#xff0c;从最大的先开始说&#xff0c;我们从进程开始&#xff0c;因为内容比较多&#xff0c;所以我们分为几个不同的文章来介绍。先从进程&#xff0c;再从线程&#xff0c;最后介绍协程与虚拟线程。 简介 我们以一张操作系…

ehters.js:provider

ethers.jsV5.4文档 安装ethers npm install ethers5.4.0// 引入 import { ethers } from ethersProviders /** Provider类* Provider类是对以太坊网络连接的抽象&#xff0c;为标准以太坊节点功能提供简洁、一致的接口。 */ const provider new ethers.providers.Web3Provider…