跳到主要内容

Server端日志接入

平台提供SmartAgent日志采集能力,能够覆盖Linux、Windows、ARM等主流主机设备,适配不同主机类型的日志采集诉求。

1758858422300

前置条件

若未安装 SmartAgent,则需要根据提示安装SmartAgent

开始使用

进入 日志配置->添加日志页面,切换到 Server端日志标签页。

当开启 “SmartAgent 采集日志” 开关后,SmartAgent具备自动发现日志的能力,未被发现的路径可通过 “自定义源路径” 添加,也可通过 “黑名单” 设置无需采集的路径。

在 “选择采集路径” 区域,勾选需要采集日志的主机路径,系统每60s自动更新路径,可设置采集策略(如 “勾选后采集”),还能选择查看方式(按主机、进程组或 Pod 查看),完成后平台将按按照主机或进程组等配置采集 Server 端日志。

采集方式

  • 精确采集:在路径列表中手动勾选需要采集的日志路径
  • 条件采集:通过配置采集/不采集规则,动态决定日志采集范围。

核心原则:采集方式只控制最终生效的方式,按照所选方式进行采集。您可以单独指定日志路径或配置条件规则,最终以“采集方式”选项为准。

精确采集

适用于需要明确指定哪些日志路径被采集的场景。您可以在列表中逐一勾选或取消勾选路径。

  1. 选择 精确采集 方式。
  2. 系统显示 精确采集列表(所有已发现的日志路径列表)。
  • 列表包含路径名称、所属进程/容器等信息。
  • 每个路径前有复选框,勾选表示采集该路径,不勾选则不采集。
  1. 按需勾选/取消勾选路径,系统自动保存配置。

“全部采集”的特殊说明 当您在精确采集列表中选择“全部采集”(即全选)时:

  • 列表会展示所有采集路径,但复选框会被隐藏(不可单独指定路径)。
  • “新发现的主机自动采集”和“新发现的容器自动采集”开关会被自动勾选并禁用,表示后续新出现的路径也会自动纳入采集。
  • 这样设计是为了让您清楚当前采集范围,同时避免手动维护大量路径。

每次切换到“全部采集”时,系统都会自动执行上述禁用逻辑。

查看方式 按照主机查看,展开可以看到进程组名称,进程组展开后看到日志路径列表。 image-20260424162700744 按照进程组查看,展开可以看到路径,路径展开可以看到主机。 image-20260424162713277 按照Pod查看,展开看到k8s的路径信息,以及Pod所属的集群、命名空间的数据。 image-20260424162731314 对于已禁用的日志类型或主机配置中被禁用的日志,其下已识别的路径或主机应置灰处理且不可勾选;未识别过的路径或主机则不显示。

具体逻辑如下:

  1. 当某类日志监控关闭后,探针不再探测该类型的日志目录
  2. 对于此前探测到且已记录的目录,若其时效过期,则不再显示

条件采集

适用于需要基于规则(如日志类型、命名空间、标签等)动态确定采集范围的场景。规则按优先级从上到下匹配,一条日志路径只会在第一条满足的规则下生效。 规则列表界面 image-20260424162633303

  • 优先级:数字越小优先级越高,可以通过拖拽调整顺序。
  • 规则名称:点击可展开查看规则中的具体条件。
  • 规则类型:采集 / 不采集。
  • 启用:开关控制规则是否生效。
  • 操作:自定义规则支持查看、编辑、删除;默认规则的编辑和删除按钮不可用。

过滤规则列表

支持按以下条件过滤:

  • 规则名称:模糊匹配字符串。
  • 规则类型:下拉选择(采集/不采集)。
  • 启用状态:下拉选择(启用/禁用)。
默认规则(内置)
规则名称条件默认状态说明
采集自定义日志源日志日志监控类型 = 客户自定义开启采集用户自定义的日志源
采集k8s默认namespace日志k8s命名空间名 ∈{default, bonree-agent, kube-node-lease, kube-public, kube-system}关闭需探针支持
采集系统日志日志监控类型 = 系统日志关闭需探针支持
采集全部日志无条件(空规则)开启优先级最低,兜底规则

注意:默认规则中除“采集全部日志”外,其他规则可能需要探针版本支持,请确认您的环境。

自定义规则

点击 添加规则 按钮,弹出规则配置窗口。

  • 规则名称:必填,最多20个字符,不可与已有规则重复。
  • 规则类型:采集 / 不采集(默认为“采集”)。
  • 条件关系:支持选择
  • 过滤条件:最多添加10条,每条包含字段、操作符、值以及是否区分大小写。
  • 新添加的规则默认排在列表最上面,优先级最高。
  • 可通过拖拽调整优先级顺序。 - 按优先级从上到下匹配,命中第一条规则后即停止,不会再被后续规则覆盖。 支持的字段和操作符 | 字段 | 操作符 | 值输入方式 | | :----------------- | :----------------------------------------- | :------------------------------------------------------------------------------------------------- | | 日志路径 | 等于、不等于、包含、不包含、起始于、结束于 | 文本框,多个值用逗号分隔(中文逗号自动转英文) | | 日志监控类型 | 等于、不等于 | 下拉多选:系统日志、SmartAgent日志、容器标准输出日志、主机上进程日志、容器内部进程日志、客户自定义 | | EXE名 | 同“日志路径” | 文本框 | | 进程组名 | 同“日志路径” | 文本框 | | 容器名 | 同“日志路径” | 文本框 | | Kubernetes容器名 | 同“日志路径” | 文本框 | | Kubernetes命名空间 | 同“日志路径” | 文本框 | | Kubernetes pod标签 | 等于、包含 | 先选标签key(单选),再选value(等于时多选;包含时输入框,多个value逗号分隔) |

逻辑说明

  • 选择 等于/包含/起始于/结束于 时,多个值之间是 关系。
  • 选择 不等于/不包含 时,多个值之间是 关系。

自定义源路径(可选)

平台提供预置的日志监控类型与自定义日志源路径,支持启用禁用。启用后探针会识别对应的类型的日志目录。注意,平台并不会直接采集,只是会自动识别到这些类型的日志路径。对于自定义源路径支持搜索、删除、编辑。

自动发现的前提是日志文件满足以下的条件

  1. 日志文件必须是重要进程且可open的状态下才可被发现。
  2. 日志文件存在的时间至少长于1分钟。
  3. 日志必须具有支持的字符编码。默认情况下,支持的编码是UTF-8。其他支持的类型包括UTF-8 BOM,如果文件包含字节顺序标记(BOM),则为UTF-16LE和UTF-16BE。
  4. 日志文件的长度至少大于0.5KB。
  5. 日志文件在最近7天内由更新。
  6. 日志文件必须位于实际日志文件夹或其子文件夹中:
有效路径示例:
c:\log\log_file.txt
c:\logs\NewFolder\log_file.txt

无效路径示例:
c:\log\NewFolder\NewFolder\log_file.txt

或者日志文件名必须包含一个 log 字符串,其前面或后面必须有句点(.)或下划线(_)字符:

有效的文件名示例:
c:\NewFolder\abc.log
c:\NewFolder\0865842.log.txt

无效的文件名示例:(log前后均没看到_.)
c:\NewFolder\logfile.txt

customSrcPath

自定义日志源配置使您能够手动添加尚未自动检测到的日志源。

editCustomPath

源定义(自定义日志源配置,支持基于主机、环境全局配置)

  • 可在无进程组上下文时定义日志源(添加进程组为可选操作)。每个日志源最多可添加三个进程组;若无需进程组,需将其置于虚拟组:default process group name。若用户配置此情况,每台主机都会存在该虚拟组。
  • 能在一个进程组中添加多个路径规则。自定义路径必须为绝对路径,不支持相对路径。
  • 同一进程组内路径唯一,不同进程组间路径可重复,但同一进程组内路径不可重复。
  • 路径支持配置标签,该标签在平台定义中属于预置属性。
  • 可在目录中使用通配符。自定义日志源可包含通配符:# 用于替换数字字符,* 用于替换除斜杠(/)或反斜杠(\)外的任意字符组成的字符串。需注意,# 仅能在文件名中使用。

安全限制

  • 日志路径不在以下任何位置:/etc、/boot、/dev、/bin、/sbin、/usr。
  • 日志路径不能是/usr,/usr/local除外
  • 日志路径不包含.ssh
  • 日志路径没有.pem扩展名
  • 日志路径不在名称以 . 开头的目录中。(例如,/.hidden)
  • 文件名或路径满足以下其中一个要求:
    • 日志文件名必须具有由 .、- 或 _ 分隔的log扩展名(后面可以跟另一个具有相同分隔符集的扩展名)
    • 日志路径必须位于日志目录的第一级或第二级
    • 日志路径必须位于/var/log目录的任何级别
    • 日志路径必须具有文件名catalina.out

高级设置(可选)

该界面为日志采集与管理的高级配置模块,支持对以下核心参数进行精细化调控:

  • 数据上报策略 :可设置 SmartAgent 日志上报频率,以及日志文件大小的上报阈值,以平衡数据实时性与传输效率。
  • 文件检测规则 :定义可检测的最小文件大小阈值,确保符合规格的日志文件被有效识别。
  • 路径聚合机制 :针对路径中字符与数字字段,设置超过指定长度时的聚合处理规则,优化路径类数据的存储与检索效率。

所有配置项调整后,可通过 “保存” 操作使参数生效,实现对日志全生命周期(采集、传输、查询、存储)的精准管控。

image-20251212191150173

自定义时间格式&多行分割说明

Logsagent针对日志时间进行了如下的内置处理逻辑

Since 1.0.0+

- ISO 8601 format: %Y-%m-%d %H:%M:%S[.%f]
Example: 2022-04-17 11:25:12.345
- RFC 3339 format: %Y-%m-%dT%H:%M:%S[.%f]
Example: 2022-04-17T11:25:12.345
- Unix Epoch format, providing the number of milliseconds that have elapsed since January 1, 1970 Example: 1652088888997
(v1.3.1+ 弃用。这种时间格式不易读,客户较少使用,容易误匹配。)
- RFC 3164 format: %b %d %H:%M:%S[.%f]
Example: Apr 17 11:25:12
- Db2 (IBM database 2) format: %Y-%m-%d-%H.%M.%S[.%f]
Example: 2022-05-17-11.25.12.114000-300
- IIS format: %m/%d/%Y, %H:%M:%S[.%f]
Example: 04/17/2022, 11:25:12.345
- W3C (World Wide Web Consortium) format: %Y-%m-%d %H:%M:%S[.%f]
Example: 2022-04-17 11:25:12.345 specified in the UTC timezone
- Klog and Golang/glog format: [IWEF]%m%d %H:%M:%S(.%f) Example: I0408 06:40:02.634162
- Other common formats:
%Y %b %d %H:%M:%S[.%f] (example: 2022 Apr 17 11:25:12.345)
%Y-%b-%d %H:%M:%S[.%f] (example: 2022-Apr-17 11:25:12.345)
%Y/%b/%d %H:%M:%S[.%f] (example: 2022/Apr/17 11:25:12.345)
%d %b %Y %H:%M:%S[.%f] (example: 17 Apr 2022 11:25:12.345)
%d/%b/%Y:%H:%M:%S[.%f] (example: 17/Apr/2022:11:25:12.345)

Tomcat_1 英文日期格式如: May 22, 2023 6:08:32 PM
Tomcat_1 中文日期格式如: 五月 11, 2023 6:12:32 下午
WebLogic 日志:May 17, 2023, 3:49:29,726 PM CST
Resin_1:[10:57:26.617] Resin started in 2548ms
Log4j 日志 HH:mm:ss:SSS :[18:07:59:584] [INFO] - test method

Since 1.1.0+
Resin_2: [2023/05/23 14:01:54.984] stopping Resin

Since 1.2.0+
tomcat_2 14-Sep-2023 13:56:09.118

通过自定义时间格式&多行分割规则,可以将多行日志分割成多条在日志查询中进行分析。

image-20251212192716021

  • 规则名称:必填,设置规则名称,不超过二十个字符。规则名称不允许重复

  • 生效范围:必填,可设置针对固定条件下的日志生效。多个条件之间可以选择与和或的关系

  • 时间格式:非必填,设置时间戳格式,至少需要指定月、日、小时、分钟、秒信息。详细说明可参考时间格式说明

  • 时区:原始日志产生的时区

  • 多行分隔符:非必填,通过字符串作为日志拆分的标志

  • 查找限制:设置时间信息和多行分隔符查找的范围,默认为64字节。设置为0时,表示纯文本日志,每行不以空格开头的行都被视为新日志记录的开头,并自动分配一个时间戳,即探针读取日志记录的时间。

  • 描述:按照规则配置内容自动生成描述

  • 保存校验逻辑

    • 除了必填项以外,时间格式和多行分割符至少要配置一种类型才可保存。
  • 每条日志匹配多个规则的生效逻辑:

    • 多行分隔符判断优先级高于时间戳。
    • 当日志条目包含一个或多个时间戳时,根据规则列表优先级评估时间戳,从列表中的第一个规则开始。如果条目的时间戳与其中一种规则匹配,探针将使用该时间戳作为日志条目的开头,不再匹配其他的条件。
    • 不满足自定义规则的日志全部按照默认规则进行拆分,默认规则只支持修改时区和查找限制配置。
    • image-20251212193953844
时间格式说明
  • 时间格式下拉框选项支持以下常用格式:
时间格式
%Y-%m-%d %H:%M:%S
%Y-%m-%d %H:%M:%S.%f
%d-%b-%y %H:%M:%S
%d %b %Y %H:%M:%S
%Y%m-%dT%H:%M:%S
%Y-%m-%dT%H:%M:%S
  • 除了提供的时间格式选项外,也可根据日志中的时间信息自定义时间格式,支持的时间相关格式包括以下内容:
时间格式说明示例
%b月份的缩写。Jan
%B月份的全称。January
%d每月第几天,十进制,范围为01~31。07, 31
%f秒的小数部分(毫秒、微秒或纳秒)123
%h月份的缩写,等同于**%b**。Jan
%H小时,24小时制。22
%I小时,12小时制。11
%m月份,十进制,范围为01~12。08
%M分钟,十进制,范围为00~59。59
%pAM或PM。AM、PM
%r12小时制的时间组合,等同于**%I:%M:%S %p**。11:59:59 AM
%R小时和分钟组合,等同于**%H:%M**。23:59
%S秒数,十进制,范围为00~59。59
%tTab符号,制表符。
%y年份,十进制,不带世纪,范围为00~99。04、98
%Y年份,十进制。2004、1998
%C世纪,十进制,范围为00~99。16
%e每月第几天,十进制,范围为1~31。如果是个位数字,前面需要加空格。7、31
%j一年中的天数,十进制,范围为001~366。365
%c标准的日期和时间。等同于%b %e %H:%M:%S %YNov 20 14:12:58 2020
%x标准的日期,不带时间。等同于%b %e %YNov 20 2020
%X标准的时间,不带日期。11:59:59
  • 时间格式需要满足以下校验条件:
  • 互斥规则
    • 同一时间类型格式符出现多次(如 %Y%Y 或 %S%S)认为不合法
    • 月份格式符互斥:%m、%b/%h、%B 只能出现其中一种
    • 日期格式符互斥:%d 和 %e 只能出现其中一种
    • 小时格式符互斥:%H 和 %I 只能出现其中一种
    • 年份互斥:(%y 和 %C 是否可以组合使用)
      • %Y 和 %C 同时出现认为不合法
      • %Y 和 %y 同时出现认为不合法
    • 中天数(%j)与月份、日期互斥:
      • %j 与 月份(%m/(%b/%h)/%B) 互斥
      • %j 与 日期(%d/%e) 互斥
  • 必须包含 "月份、日期、小时、分钟和秒"
    • 日期(月份、日期)。满足以下任一条件:
      • 条件A:包含月份(%m/(%b/%h)/%B) + 日期(%d/%e)
      • 条件B:包含年中天数(%j)
    • 时间(小时、分钟和秒)。
      • 必须包含:%H或%I(小时)
      • 必须包含:%M(分钟)
      • 必须包含:%S(秒)
  • 其他规则
    • 如果使用%I,必须同时有%p。如果使用%p,必须同时有%I。
    • % 属特殊字符
      • % 字符后面不跟格式符认为不合法
      • %% 认为不合法