一、操作场景
Systemd Journal 是 Linux 系统常见的日志来源。你可以通过 journalctl 查看系统服务日志、内核日志、登录日志和 systemd unit 输出。Journal 日志由 journald 管理,属于结构化日志。如果自行转储为文这篇件后再采集,会增加接入成本,也容易丢失 MESSAGE、PRIORITY、SYSLOG_IDENTIFIER、_SYSTEMD_UNIT、_HOSTNAME 等原生字段。
这篇适用于以下典型场景:
| 场景 | 需要解决的问题 | 采集能力 |
| CVM 系统排障 | 统一查询 sshd、systemd、内核等系统日志 | 采集全部 Journal 或指定 Unit |
| TKE 节点排障 | 查询 kubelet、containerd、docker 等节点组件日志 | 按 Unit 采集与检索 |
| 服务异常分析 | 自研服务以 systemd service 运行,日志写入 journald | 保留 _SYSTEMD_UNIT、SYSLOG_IDENTIFIER 等字段 |
| 内核问题排查 | 排查 OOM、磁盘、网络、驱动等异常 | 可选择采集内核日志 |
| 安全审计 | 关注登录、服务启停、异常权限操作 | 统一留存、检索与告警 |
二、前提条件
·待采集机器为 Linux 系统(Windows 系统不支持该采集类型),且支持 systemd 与 journald。
·待采集机器上已安装 3.6.6 及以上版本的 LogListener,请参见 LogListener 安装指南(Linux 版)。
三、操作步骤
Systemd Journal 日志采集沿用 LogListener 采集配置的四步流程:选择日志主题、机器组管理、采集配置、索引配置。
四、步骤 1:选择日志主题
支持创建新的日志主题和使用现有的日志主题,你可按需选择。
创建新的日志主题使用现有的日志主题如果你想选择新的日志主题,可执行如下操作:1. 登录 日志服务控制台,在左侧导航栏中,选择概览,进入概览页面。2. 在快速接入 > 服务器及应用中,找到并单击 Journal 日志,进入采集配置流程。3. 在创建日志主题页面,根据实际需求,输入日志主题名称,配置日志保存时间等信息,单击下一步。如果你想选择现有的日志主题,可执行如下操作:1. 登录 日志服务控制台。2. 在左侧导航栏中,选择日志主题,选择需要投递的日志主题,单击日志主题名称,进入日志主题管理页面。3. 选择采集配置页签,单击新增,在服务器及应用中选择 Journal 日志。
五、步骤 2:机器组管理
选择需要采集 Journal 日志的机器组。
创建新的机器组选择现有的机器组1. 单击新建机器组,并在机器组创建弹窗中,通过 IP 或者机器标识的方式关联已安装 LogListener 的目标服务器。详情请参见 机器组。2. 完成创建后,你可在列表中找到并选择你创建的机器组。如果你想选择现有的机器组,可直接在列表中找到你的目标机器组并选择。
六、步骤 3:采集配置
采集配置是本采集类型的核心页面。请按以下配置项完成配置。
| 配置项 | 是否必填 | 默认值 | 说明 |
| 采集规则名称 | 是 | 无 | 用于识别该条采集配置。建议输入业务可识别名称,例如 systemd_journal_config。 |
| Journal 日志路径 | 是 | /var/log/journal | LogListener 读取 Journal 日志的目录。机器仅启用临时 Journal 时,可改为 /run/log/journal。 |
| 采集策略 | 是 | 增量 | 首次生效时的采集起点。增量表示仅采集生效后的新增日志;全量表示从当前可读取的最早位置开始采集。 |
| 采集范围 | 是 | 全部 Unit | 是否按 systemd Unit 过滤。全部 Unit 表示采集所有符合条件的日志;指定 Unit 表示仅采集填写的 Unit。 |
| 指定 Unit | 条件必填 | 空 | 当采集范围选择指定 Unit 时填写。支持精确 Unit 名称及 Glob 通配符 *、?、[…],多个条件为“或”关系。例如 nginx.service、docker.*、kube-*.service。 |
| 采集内核日志 | 否 | 开启 | 是否采集 _TRANSPORT=kernel 的内核日志。 |
| 日志时间戳来源 | 否 | 关闭 | 开关项。关闭时使用日志采集时间;开启时使用 Journal 原始时间字段 __REALTIME_TIMESTAMP。 |
| 上传解析失败日志 | 否 | 开启 | 整条 Journal entry 无法转换为 CLS 支持的日志结构时,是否上传失败日志。 |
| 解析失败日志的键名称 | 否 | LogParseFailure | 开启上传解析失败日志后展示。失败日志以该键名称为 Key、原始 Journal entry 内容为 Value 上传。 |
七、步骤4:索引配置
1. 单击下一步,进入索引配置页面。
2. 在索引配置页面,设置如下信息。配置详情请参见 索引配置。
注意:检索必须开启索引配置,否则无法检索。
3. 单击提交,完成采集配置。
八、步骤5:检索分析
至此,你已完成 Journal 日志的采集配置。下一步,你可前往 检索分析页 查看日志。
九、字段增强说明
采集端默认对以下字段进行增强,无需在控制台配置:
·解析日志级别:保留 PRIORITY 原始数值,并追加可读字段 PRIORITY_LABEL。
·解析 Syslog Facility:当 Journal entry 存在合法 SYSLOG_FACILITY 时,保留原始数值,并追加可读 Facility 字段。
PRIORITY 与 PRIORITY_LABEL 的对应关系如下:
| PRIORITY | PRIORITY_LABEL | 含义 |
| 0 | emergency | 系统不可用,需要立即处理 |
| 1 | alert | 必须立即采取动作 |
| 2 | critical | 严重错误 |
| 3 | error | 错误 |
| 4 | warning | 警告 |
| 5 | notice | 正常但重要的事件 |
| 6 | informational | 普通信息 |
| 7 | debug | 调试信息 |
SYSLOG_FACILITY 与可读 Facility 字段的对应关系如下:
| SYSLOG_FACILITY | 可读值 | 含义 |
| 0 | kern | 内核消息 |
| 1 | user | 用户级消息 |
| 2 | 邮件系统 | |
| 3 | daemon | 系统守护进程 |
| 4 | auth | 安全与认证消息 |
| 5 | syslog | syslogd 内部消息 |
| 6 | lpr | 打印子系统 |
| 7 | news | 网络新闻子系统 |
| 8 | uucp | UUCP 子系统 |
| 9 | cron | 定时任务 |
| 10 | authpriv | 安全与认证私有消息 |
| 11 | ftp | FTP 服务 |
| 12 | ntp | NTP 时间同步 |
| 13 | security | 审计与安全日志 |
| 14 | console | 控制台日志 |
| 15 | solaris-cron | Solaris cron 相关日志 |