Journal数据

简介

service_journal 插件支持从原始的二进制文件中采集Linux系统的Journal(systemd)日志。systemd是专用于 Linux 操作系统的系统与服务管理器。当作为启动进程(PID=1)运行时,它将作为初始化系统运行,启动并维护各种用户空间的服务。 systemd统一管理所有Unit的日志(包括内核和应用日志),配置文件一般在/etc/systemd/journald.conf中。源代码

功能

  • 支持设置初始同步位置,后续采集会自动保存checkpoint,不需关心应用重启。

  • 支持过滤指定的Unit。

  • 支持采集内核日志。

  • 支持自动解析日志等级。

  • 支持以容器方式采集宿主机上的Journal日志,适用于Docker/Kubernetes场景。

相关限制

  • Logtail支持版本为0.16.18及以上。

  • 运行的操作系统需支持Journal日志格式。

适用场景

  1. 监听内核事件,出现异常时自动告警。

  2. 采集所有系统日志,用于长期存储,减少磁盘空间占用。

  3. 采集软件(Unit)的输出日志,用于分析或告警。

  4. 采集所有Journal日志,可以从所有日志中快速检索关键词或日志,相比Journalctl查询大幅提升。

配置参数

参数
类型,默认值
说明

Type

String,无默认值(必填)

插件类型,固定为service_journal

JournalPaths

Array,其中value为String,无默认值(必填)

Journal日志路径,建议直接填写Journal日志所在文件夹,例如/var/log/journal

SeekPosition

String,tail

首次采集方式,为head则采集所有数据,为tail则只采集配置应用后新的数据。

Kernel

Boolean,true

为false时则不采集内核日志。

Units

Array,其中value为String,[]

指定采集的Unit列表,为空时则全部采集。

ParseSyslogFacility

Boolean,false

是否解析syslog日志的facility字段。

ParsePriority

Boolean,false

是否解析Priority字段。

UseJournalEventTime

Boolean,false

是否使用Journal日志中的字段作为日志时间,即使用采集时间作为日志时间(实时日志采集一般相差3秒以内)。

CursorFlushPeriodMs

Integer,5000

日志读取检查点的刷新时间。

CursorSeekFallback

String,SeekPositionTail

日志读取检查点回退的位置。

Identifiers

Array,其中value为String,[]

syslog标识符,可以添加到监视器。

MatchPatterns

Array,其中value为String,[]

匹配规则,可以添加到监视器。

ParsePriority映射关系表如下:

样例

样例1

从默认的/var/log/journal路径采集journal日志。

  • 采集配置1

  • 输出1

样例2

Kubernetes场景下,使用Logtail的DaemonSet模式采集宿主机的系统日志,由于日志中有很多并不重要的字段,使用处理插件只挑选较为重要的日志字段。

  • 采集配置2

  • 输出2

Last updated