您可以使用适用于 Windows 或 Linux 代理的每个代理配置部分的公用参数值覆盖代理配置文件的默认值。

公用选项

liagent.ini 配置文件的 [common|global] 部分中指定的选项将传播到所有部分,在 [common|filelog] 部分中指定的选项仅传播到所有 filelog 部分,而 [common|winlog] 选项仅传播到所有 winlog 部分。

您可以在公用部分中定义以下参数:tags, include, exclude, event_marker, charset, exclude_fieldsparser,如以下示例中所示。该示例适用于 Windows 代理:

[common|global]

tags = {"log_source_vm":"win-2008r2-64"}
exclude_fields = test_tag;some_other_tag
parser = auto

[common|filelog]
tags = {"collector_type":"filelog"}
exclude = *.trc

[filelog|channel_1]
directory = C:\app\log
include = *.log

...
此示例指定以下行为:
  • filelog 部分中的所有日志都具有 log_source_vmcollector_type 标记及其对应的值。
  • 发送的所有日志中将不包含 test_tagsome_other_tag 标记。
  • 对收集的所有日志应用 auto 分析程序。
  • 默认情况下,所有 filelog 收集器不对 *.trc 文件进行监控。
[common|global] 中的选项也会应用于所有的 winlog 部分。

合并和覆盖条件

如果在多个部分中定义了选项,则会合并或覆盖其值,在合并/覆盖时,具有较小范围的部分具有较高优先级。即,[common|global] 中的值会与 [common|filelog] 中的值合并或被其覆盖,而后者又会与 [filelog|sample_section] 中的值合并或被其覆盖。

合并和覆盖行为符合以下规则:

  • 其值表示值列表的选项(tags、include、exclude 和 exclude_fields)会与该选项在优先级较高的部分中的值合并。对于标记,如前面所述,优先级较高的部分中的标记值会覆盖同一标记在优先级较低的部分中的值。
  • 可以有单个值的选项(event_marker、charset 和 parser)的值会被该选项在优先级较高的部分中的值覆盖。

    这意味着,[filelog|sample_section] 中 charset=UTF-8 的值会覆盖 [common|global] 中 charset=UTF-16LE 的全局值。

例如,如果您在 [common|filelog] 中具有 tags={"app":"global-test"},在 [filelog|flg_test_section] 中具有 tags={"app":"local-test","section":"flg_test_section"},则 [filelog|flg_test_section] 部分中 "app" 标记的值会覆盖 [common|filelog] 中的值。通过此 filelog 部分收集的所有日志都将具有一个额外的 "app" 标记和对应的 "local-test" 值,以及 "section" 标记和对应的 "flg_test_section" 值。对于 winlog 部分,将采用同样的优先级链,所有 [winlog|...] 部分具有最高优先级,而 [common|global] 则具有最低优先级。

当在公用部分中指定了无效值时,通常会跳过这些值,并且不会将其与对应的优先级较高的 filelog/winlog 部分中的值合并。如果标记或 exclude_fields 选项中存在无效值,代理会提取尽可能多的有效数据,并在遇到无效数据后跳过该文件的剩余部分。所有异常会在代理日志文件中报告出来。请在遇到异常行为时查阅日志文件,并修复代理报告的所有错误。

如果代理在 filelog 或 winlog 部分中检测到某个选项存在无效值,则它不会将该部分中的选项值与公用部分中的选项值合并,也不会启用该部分。所有错误会在代理日志文件中报告出来。请在遇到异常行为时查阅日志文件,并修复代理报告的所有错误。