恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
Telegraf 配置完全指南:从 TOML 结构、环境变量到插件与指标过滤
首页
资讯中心
/
Telegraf 配置完全指南:从 TOML 结构、环境变量到插件与指标过滤
Telegraf 配置完全指南:从 TOML 结构、环境变量到插件与指标过滤
发布时间:2026/9/13 16:12:12
Telegraf 配置完全指南从 TOML 结构、环境变量到插件与指标过滤【免费下载链接】telegrafAgent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.项目地址: https://gitcode.com/GitHub_Trending/te/telegrafTelegraf 是 InfluxData 开源的指标采集代理Agent负责收集、处理、聚合并写入指标、日志及其他任意数据。配置 Telegraf 的核心在于理解其 TOML 配置文件的组织方式[global_tags]全局标签表、[agent]代理设置以及各类插件inputs/outputs/processors/aggregators。本文以仓库中的官方文档 docs/CONFIGURATION.md 为骨架结合源码与默认配置逐项展开帮助你从零生成、编写并验证一套生产可用的 Telegraf 配置。配置文件的三段式结构Telegraf 的配置文件使用 TOML 语法书写整体由三个部分组成[global_tags]给所有指标统一附加的标签[agent]代理自身行为及所有插件的默认参数插件部分[[inputs.xxx]]、[[outputs.xxx]]、[[processors.xxx]]、[[aggregators.xxx]]等插件定义。与global_tags和agent表只能出现一次不同任何插件都可以定义多次每个实例独立运行。这允许你在单个 Telegraf 进程中按需配置多个不同参数的插件实例。从源码上看config.NewConfig()在 config/config.go#L135-L181 中为 Agent 预设了默认值Interval 10s、RoundInterval true、FlushInterval 10s、LogfileRotationMaxArchives 5。也就是说即使你的配置文件中没有写[agent]表代理也会以 10 秒的采集/刷写周期运行。生成配置文件Telegraf 内置config命令可直接生成默认配置telegraf config telegraf.conf如需只包含特定插件可使用--input-filter与--output-filtertelegraf config --input-filter cpu:mem:net:swap --output-filter influxdb:kafka完整的命令与参数列表见 docs/COMMANDS_AND_FLAGS.md或直接运行telegraf --help。在 cmd/telegraf/cmd_config.go#L22-L36 中可以看到config命令实际通过printSampleConfig输出示例配置并且processFilterFlags会解析上述过滤器。此外它还提供三个实用子命令telegraf config check --config mysettings.conf读取配置并初始化但不启动插件报告语法与语义错误未显式指定文件时自动读取默认位置cmd/telegraf/cmd_config.go#L37-L113。telegraf config create输出包含全部插件的完整示例配置支持--section-filter、--input-filter、--output-filter缩减范围。telegraf config migrate --config mysettings.conf将已弃用的插件或选项迁移为推荐写法迁移结果以.migrated后缀保存在原文件旁远程配置则保存在当前目录可用--force覆盖已存在的迁移文件cmd/telegraf/cmd_config.go#L140-L254。Windows PowerShell v5 编码问题PowerShell 5 的默认编码是 UTF-16LE 而非 UTF-8而 Telegraf 要求合法的 UTF-8 配置文件。PowerShell 6 及以上、命令提示符与 Git Bash 均无此问题。若使用 PowerShell 5生成完整配置时需显式指定编码telegraf.exe config | Out-File -Encoding utf8 telegraf.conf这样会生成带 BOM 的 UTF-8 文件Telegraf 可以正常处理开头的 BOM。配置加载方式配置文件的加载位置由命令行参数控制--config指定主配置文件--config-directory指定配置目录目录下所有以.conf结尾的文件都会被包含进来。在多数系统上默认位置是主配置/etc/telegraf/telegraf.conf与配置目录/etc/telegraf/telegraf.d。通过--config-directory拆分配置每个插件一个.conf是运维中推荐的做法便于单独启用或禁用插件。环境变量环境变量可在配置文件的任何位置使用只需用${}包裹且替换发生在文件解析之前。使用时注意类型与引号规则字符串变量必须放在双引号内例如${STR_VAR}数字与布尔值不加引号例如${INT_VAR}、${BOOL_VAR}。使用双引号时需转义反斜杠等特殊字符如C:\\Program Files若变量本身含单个反斜杠可用单引号包裹表示字符串字面量如C:\Program Files。在 config/envvar.go#L225-L278 中substituteEnvironmentStrict会先解析 TOML 语法树再遍历所有字符串节点逐一执行替换保证替换后仍是合法的 TOML。仓库还提供了--strict-env-handling与--non-strict-env-handling两个开关控制严格/宽松模式config.NonStrictEnvVarHandling在 cmd/telegraf/cmd_config.go#L61-L70 中设置。Shell 参数展开除了普通替换Telegraf 还支持 Shell 风格的参数展开语法语法含义${VARIABLE:-default}变量未设置或为空时求值为default${VARIABLE-default}变量仅在未设置时求值为default${VARIABLE:?err}变量未设置或为空时退出并输出包含err的错误信息${VARIABLE?err}变量仅在未设置时退出并输出包含err的错误信息使用.deb或.rpm包安装时可在/etc/default/telegraf中定义环境变量。以下示例针对 InfluxDB 的不同版本/etc/default/telegrafInfluxDB 1.xUSERalice INFLUX_URLhttp://localhost:8086 INFLUX_SKIP_DATABASE_CREATIONtrue INFLUX_PASSWORDmonkey123InfluxDB OSS 2INFLUX_HOSThttp://localhost:8086 # 旧版本曾为 9999 INFLUX_TOKENreplace_with_your_token INFLUX_ORGyour_username INFLUX_BUCKETreplace_with_your_bucket_nameInfluxDB Cloud 2# 例如 AWS West (Oregon) INFLUX_HOSThttps://us-west-2-1.aws.cloud2.influxdata.com INFLUX_TOKENreplace_with_your_token INFLUX_ORGyournameyourcompany.com INFLUX_BUCKETreplace_with_your_bucket_name对应的/etc/telegraf.conf[global_tags] user ${USER} [[inputs.mem]] # For InfluxDB 1.x: [[outputs.influxdb]] urls [${INFLUX_URL}] skip_database_creation ${INFLUX_SKIP_DATABASE_CREATION} password ${INFLUX_PASSWORD} # For InfluxDB OSS 2 / Cloud 2: [[outputs.influxdb_v2]] urls [${INFLUX_HOST}] token ${INFLUX_TOKEN} organization ${INFLUX_ORG} bucket ${INFLUX_BUCKET}替换后的有效配置相当于[global_tags] user alice [[inputs.mem]] [[outputs.influxdb]] urls http://localhost:8086 skip_database_creation true password monkey123 [[outputs.influxdb_v2]] urls [http://127.0.0.1:8086] token replace_with_your_token organization your_username bucket replace_with_your_bucket_nameSecret Store 密钥引用除环境变量外你还可以使用Secret Store插件来填充凭据。步骤是先配置一个或多个 Secret Store 插件然后在插件配置中以{secret store id:secret name}的形式引用密钥其中secret store id是你为 Secret Store 定义的唯一 IDsecret name是待使用密钥的名称。[!NOTE]secret store id与secret name只能由大小写字母、数字和下划线组成。示例[global_tags] user alice [[secretstores.os]] id local_secrets [[secretstores.jose]] id cloud_secrets path /etc/telegraf/secrets # 可选引用另一个 secret store 来解锁本 store。 password {local_secrets:cloud_store_passwd} [[inputs.http]] urls [http://server.company.org/metrics] username {local_secrets:company_server_http_metric_user} password {local_secrets:company_server_http_metric_pass} [[outputs.influxdb_v2]] urls [https://us-west-2-1.aws.cloud2.influxdata.com] token {cloud_secrets:influxdb_token} organization yournameyourcompany.com bucket replace_with_your_bucket_name注意事项使用支持 Secret 的插件时Telegraf 会锁定包含密钥的内存页。因此需要将锁定内存上限locked memory limit设置为合适值Telegraf 启动时会检查该限制与实际使用的密钥数量若限制过低会给出警告此时请通过ulimit -l提高限制。若在 jail如 FreeBSD中运行还应在 jail 配置中设置allow.mlock 1;。时间间隔Intervals支持时间间隔的设置项通过“整数 时间单位”的字符串指定合法单位包括ns纳秒us或µs微秒ms毫秒s秒m分钟h小时[agent] interval 10s全局标签Global Tags[global_tags]表中的键值对会附加到所有采集到的指标上格式为key value。插件自身设置的标签会覆盖全局标签[global_tags] dc us-east-1Agent 设置详解[agent]表配置 Telegraf 代理自身的行为并作为所有插件的默认值。以下为各参数说明默认值可对照官方示例 cmd/telegraf/agent.conf 与源码 config/config.go#L183-L321。参数说明interval所有输入插件的默认采集间隔默认10sround_interval是否将采集时间对齐到 interval 的整数倍如interval10s时总在:00, :10, :20...采集默认truemetric_batch_sizeTelegraf 向输出插件发送指标的批大小上限默认1000metric_buffer_limit每个输出未写入指标的最大缓冲数增大可容忍更长的输出宕机而不丢数据代价是更高的内存占用缓冲满时旧指标会被新指标覆盖默认10000collection_jitter采集抖动每个插件在采集前随机睡眠[0, jitter]区间内的时间避免大量插件同时查询 sysfs 等系统资源默认0scollection_offset采集偏移将采集时间平移指定间隔可手动错开各插件访问受限设备的时间默认0sflush_interval所有输出的默认刷写间隔实际最大刷写间隔为flush_interval flush_jitter默认10sflush_jitter刷写抖动随机化刷写间隔主要用于避免大量 Telegraf 实例同时产生写入尖峰如 jitter5s、interval10s 时刷写发生在 10~15s 之间默认0sprecision采集指标的精度舍入以 interval 指定。不适用于 service inputs其时间戳由各插件自行决定默认0s表示与采集间隔同数量级、最大 1s如 interval10s 则 precision1sdebug是否以 debug 级别记录日志quiet是否仅记录 error 级别日志logformat日志格式可选text、structuredWindows 上还支持eventlog输出文件由logfile决定structured_log_message_key结构化日志的消息键覆盖默认的msg仅当logformatstructured时生效logfile日志文件名为空则输出到 stderreventlog格式下忽略logfile_rotation_interval按时间间隔轮转日志文件0表示不按时间轮转logfile_rotation_max_size日志文件超过该大小后轮转0表示不按大小轮转logfile_rotation_max_archives保留的轮转归档最大数量更旧的删除-1表示不删除归档默认5log_with_timezone日志使用的时区如America/Chicago或local使用本地时间hostname覆盖默认主机名为空时使用os.Hostname()omit_hostname为true时不设置host标签snmp_translatorSNMP 对象翻译方式netsnmp已弃用调用外部snmptranslate/snmptable或gosmi内置 gosmi 库statefile插件状态文件的加载与保存路径Telegraf 终止时保存有状态插件的状态启动时若文件存在则恢复详见 docs/developers/STATE_PERSISTENCE.mdalways_include_local_tags确保插件内显式定义的标签始终通过taginclude/tagexclude过滤无需重复声明always_include_global_tags确保global_tags中显式定义的标签始终通过taginclude/tagexclude过滤skip_processors_before_aggregators默认处理插件在聚合器之前运行设为true跳过这第一次运行skip_processors_after_aggregators默认处理插件在聚合器之后还会运行第二次设为true跳过第二次运行buffer_strategy输出缓冲策略memory默认与disk实验性将指标序列化到磁盘以提升数据持久性、降低丢失风险仅在 agent 级别支持buffer_directorydisk缓冲模式下使用的目录每个输出插件会按插件 ID 创建子目录buffer_disk_syncdisk缓冲策略下的写入持久性控制关闭同步可获得更好的写性能但断电时可能丢失最近flush_interval内缓冲的指标默认true需要注意的是skip_processors_before_aggregators与skip_processors_after_aggregators不能同时设为true配置校验会在 config/config.go#L587-L588 抛出cannot set both ... as true错误对应测试见 config/config_test.go#L1513-L1517。插件配置Telegraf 插件分为 4 类输入 inputs、输出 outputs、处理器 processors 与聚合器 aggregators。每个插件都有各自独有的配置项参考各插件的示例配置同时每类插件都提供一组通用参数。输入插件Input Plugins输入插件负责采集并生成指标支持轮询polling与事件驱动两种模式。任何输入插件均可使用的参数alias为插件实例命名interval覆盖 agent 的interval单独控制该输入的采集频率precision覆盖 agent 的precision按指定 interval 舍入指标时间戳对 service input 设置该值时同一时间戳的多个事件可能被输出数据库合并time_source指定指标时间戳来源可选值metric不修改指标默认collection_start时间戳设为采集开始时刻collection_end时间戳设为采集结束时刻time_source不适用于 service inputs其时间戳由各插件自行设定collection_jitter覆盖 agent 的collection_jitter值必须非零才会生效collection_offset覆盖 agent 的collection_offset值必须非零才会生效name_override覆盖测量名默认为输入名name_prefix在测量名前追加前缀name_suffix在测量名后追加后缀tags应用到该输入指标的标签映射log_level覆盖该插件的日志级别可选error、warn、info、debug、trace。此外metric filtering 参数可用于限制输入插件向后续环节输出的指标。输入插件示例使用name_suffix输出名为cpu_total的测量[[inputs.cpu]] name_suffix _total percpu false totalcpu true使用name_override输出名为foobar的测量[[inputs.cpu]] name_override foobar percpu false totalcpu true为测量附加tag1foo、tag2bar两个标签。注意TOML 中顺序很重要参数归属于最后一个定义的表格头因此[inputs.cpu.tags]表必须放在插件定义的末尾[[inputs.cpu]] percpu false totalcpu true [inputs.cpu.tags] tag1 foo tag2 bar或者使用内联表语法此时tags不必放在末尾[[inputs.cpu]] tags {tag1 foo, tag2 bar} percpu false totalcpu true当定义多个插件实例时用name_override、name_prefix、name_suffix避免测量名冲突[[inputs.cpu]] percpu false totalcpu true [[inputs.cpu]] percpu true totalcpu false name_override percpu_usage fieldexclude [cpu_time*]输出插件Output Plugins输出插件将指标写入目标位置通常写入数据库、网络服务或消息系统。任何输出插件均可使用的参数alias命名插件实例flush_interval两次刷写之间的最大时间按插件覆盖 agent 的flush_intervalflush_jitter刷写间隔抖动覆盖 agent 的flush_jitter值必须非零才生效metric_batch_size单次发送的最大指标数覆盖 agent 的设置metric_buffer_limit未发送指标的最大缓冲数覆盖 agent 的设置name_override / name_prefix / name_suffix覆盖、前缀、后缀测量名log_level覆盖日志级别可选error、warn、info、debug。metric filtering 参数可用于限制输出插件实际写入的指标。输出插件示例为单个输出覆盖刷写参数[agent] flush_interval 10s flush_jitter 5s metric_batch_size 1000 [[outputs.influxdb]] urls [ http://example.org:8086 ] database telegraf [[outputs.file]] files [ stdout ] flush_interval 1s flush_jitter 1s metric_batch_size 10处理器插件Processor Plugins处理器插件对指标执行处理任务常用于重命名或转换指标。处理发生在输入插件之后、聚合器插件之前。任何处理器均可使用的参数alias命名插件实例order处理器执行顺序从 1 开始。未指定时按配置文件中出现的顺序执行未设置order的处理器优先于设置了order的处理器执行log_level覆盖日志级别可选error、warn、info、debug。metric filtering 参数可限制处理器处理的指标被排除的指标会直接传递到下一个处理器。处理器示例当处理顺序重要时必须为所有涉及的处理器显式设置order[[processors.rename]] order 1 [[processors.rename.replace]] tag path dest resource [[processors.strings]] order 2 [[processors.strings.trim_prefix]] tag resource prefix /api/关于处理器与聚合器执行顺序的更多细节可参考 docs/AGGREGATORS_AND_PROCESSORS.md 以及仓库中的行为测试用例如 agent/testcases/processor-order-explicit、agent/testcases/processor-order-appearance。聚合器插件Aggregator Plugins聚合器插件在观察一段时间内的指标后产生新指标常用于生成 mean/max/min 等聚合值运行在处理器之后。任何聚合器均可使用的参数alias命名插件实例period聚合器的刷新与清空周期时间戳超出该周期的指标会被忽略默认 30 秒delay每个聚合器刷新前的延迟用于在聚合器与输入采集同周期运行时等待输入到达默认 100msgrace允许聚合超出聚合周期指标的宽限时长用于接收延迟到达的指标并归入下一周期默认 0sdrop_original为true时原始指标被聚合器丢弃不再发送到输出插件name_override / name_prefix / name_suffix覆盖、前缀、后缀测量名tags应用到测量的标签映射行为因聚合器而异log_level覆盖日志级别可选error、warn、info、debug。metric filtering 参数可限制聚合器处理的指标被排除的指标直接传递到下一聚合器。聚合器示例每 30 秒采集并输出系统load1指标的 min/max并丢弃原始指标[[inputs.system]] fieldinclude [load1] # 只采集系统 load1 指标。 [[aggregators.minmax]] period 30s # 每 30s 发送并清空聚合结果。 drop_original true # 丢弃原始指标。 [[outputs.file]] files [stdout]同样聚合 swap 指标但通过namepass让聚合器只作用于 swap 指标[[inputs.swap]] [[inputs.system]] fieldinclude [load1] # 只采集系统 load1 指标。 [[aggregators.minmax]] period 30s # 每 30s 发送并清空聚合结果。 drop_original true # 丢弃原始指标。 namepass [swap] # 只让 swap 指标通过聚合器。 [[outputs.file]] files [stdout]Metric Filtering 指标过滤指标过滤可在任何 input、output、processor、aggregator 插件上配置分为两类选择器Selectors与修饰器Modifiers。底层实现位于 filter/filter.go#L33-L55Compile将字符串列表编译为Filter支持带分隔符的 glob 匹配通配符字符为*?{}[]!。选择器Selectors选择器决定整个指标是否通过。指标被 Input 或 Output 排除时会被丢弃被 Processor 或 Aggregator 排除时则跳过该插件继续流向下一处理阶段。namepassglob 模式字符串数组测量名匹配任一模式的指标才被输出可通过namepass_separator指定自定义分隔符列表这些分隔符不参与通配符匹配。namedropnamepass的反操作在通过namepass测试后再执行namedrop_separator同理。tagpass由标签键映射到 glob 模式数组的表只有包含表中标签键且标签值匹配任一模式的指标才会被输出。支持显式表语法[...]子表或内联表语法{...}。tagdroptagpass的反操作在通过tagpass测试后再执行。NOTETOML 解析陷阱使用显式表语法[...]配置tagpass/tagdrop时它们必须位于插件定义的末尾否则后续配置项会被解析进 tagpass/tagdrop 表。使用内联表语法{...}时该表必须位于插件主定义内不能放在任何子表如[[inputs.win_perf_counters.object]]中。metricpass使用 CELCommon Expression Language 布尔表达式过滤表达式为true时指标通过否则被丢弃。相比namepass更通用支持基于时间的过滤。具体函数与表达式见 CEL 的语言定义与扩展文档。需要注意两点表达式合法可编译但在运行时失败时例如读取不存在的字段求值会被中止、记录错误并将表达式视为true指标照常通过由于 CEL 是解释型语言此类过滤比namepass/namedrop慢得多高吞吐场景下应优先使用受限的过滤选项。修饰器Modifiers修饰器从指标中移除标签和字段。如果所有字段都被移除该指标会被删除不再传递给后续处理器或输出插件。修饰器在指标传给 processor、aggregator 或 output 之前执行用于输入插件时过滤在输入运行后生效。fieldincludeglob 模式数组字段键匹配任一模式的字段才被保留fieldexcludefieldinclude的反操作在通过fieldinclude测试后执行tagincludeglob 模式数组只保留标签键匹配的标签。与tagpass基于标签决定整条指标是否通过不同taginclude会移除所有不匹配的标签。任何标签都可被过滤包括全局标签和 agent 的host标签tagexcludetaginclude的反操作移除标签键匹配的标签同样可过滤全局标签与host标签。过滤的执行顺序Order of Operations过滤器生效的时间点取决于插件类型这决定了过滤是作用于进入插件的指标还是插件产出的指标输入插件选择器与修饰器都在插件采集完成后应用只有通过选择器且标签/字段已被修饰器调整的指标才会向下游输出处理器插件过滤在处理之前应用匹配选择器的指标进入处理器修饰器已应用不匹配的指标绕过处理器原样传递聚合器插件过滤在聚合之前应用匹配的指标已应用修饰器进入聚合不匹配的指标直接传递匹配的原始指标是否也转发给后续输出由聚合器的drop_original控制输出插件过滤在写入之前应用只有通过选择器且已被修饰器调整的指标才会发送到远端。总之选择器决定指标是否被该插件处理修饰器决定传递给插件的指标上保留哪些标签与字段。过滤示例tagpass 与 tagdrop[[inputs.cpu]] percpu true totalcpu false fieldexclude [cpu_time] # 不采集 cpu6 与 cpu7 的 CPU 数据 [inputs.cpu.tagdrop] cpu [ cpu6, cpu7 ] [[inputs.disk]] [inputs.disk.tagpass] # tagpass 条件是 OR不是 AND。 # 只要 (文件系统是 ext4 或 xfs) 或 (路径是 /opt 或 /home) # 该指标即通过 fstype [ ext4, xfs ] # 标签值同样支持 glob path [ /opt, /home* ] [[inputs.win_perf_counters]] [[inputs.win_perf_counters.object]] ObjectName Network Interface Instances [*] Counters [ Bytes Received/sec, Bytes Sent/sec ] Measurement win_net # 不发送 Windows 接口名instance以 isatap 或 Local 开头的指标 [inputs.win_perf_counters.tagdrop] instance [isatap*, Local*]fieldinclude 与 fieldexclude# 丢弃 guest 与 steal 的 CPU 使用指标 [[inputs.cpu]] percpu false totalcpu true fieldexclude [usage_guest, usage_steal] # 磁盘只保留 inode 相关指标 [[inputs.disk]] fieldinclude [inodes*]namepass 与 namedrop# 为 kubelet 丢弃所有容器相关指标 [[inputs.prometheus]] urls [http://kube-node-1:4194/metrics] namedrop [container_*] # 为 kubelet 只保留 rest client 相关指标 [[inputs.prometheus]] urls [http://kube-node-1:4194/metrics] namepass [rest_client_*]namepass / namedrop 与分隔符# 只通过 A.C.B 类型的指标丢弃如 A.C.D.B 的其它指标 [[inputs.socket_listener]] data_format graphite templates [measurement*] namepass [A.*.B] namepass_separator . # 丢弃 A.C.B 类型指标保留如 A.C.D.B 的其它指标 [[inputs.socket_listener]] data_format graphite templates [measurement*] namedrop [A.*.B] namedrop_separator .taginclude 与 tagexclude# cpu 插件的指标只保留 cpu 标签 [[inputs.cpu]] percpu true totalcpu true taginclude [cpu] # disk 插件的指标排除 fstype 标签 [[inputs.disk]] tagexclude [fstype]按测量名与标签将指标路由到不同输出[[outputs.influxdb]] urls [ http://localhost:8086 ] database telegraf # 丢弃所有以 aerospike 开头的测量 namedrop [aerospike*] [[outputs.influxdb]] urls [ http://localhost:8086 ] database telegraf-aerospike-data # 只接受 aerospike 数据 namepass [aerospike*] [[outputs.influxdb]] urls [ http://localhost:8086 ] database telegraf-cpu0-data # 只存储标签 cpu 匹配值 cpu0 的测量 [outputs.influxdb.tagpass] cpu [cpu0]基于输入来源路由到不同输出在输入处为指标打上influxdb_database标签在输出处据此选择目标库并在写入前用tagexclude移除该标签[[outputs.influxdb]] urls [http://influxdb.example.com] database db_default [outputs.influxdb.tagdrop] influxdb_database [*] [[outputs.influxdb]] urls [http://influxdb.example.com] database db_other tagexclude [influxdb_database] [outputs.influxdb.tagpass] influxdb_database [other] [[inputs.disk]] [inputs.disk.tags] influxdb_database other通过 Labels 与 Selectors 选择插件你可以给插件配置打上标签labels并在命令行传入一个或多个选择器selectors从而精确控制哪些插件实例被启用。选择器Selectors启动 Telegraf 时通过一个或多个--select标志提供选择器。每个--select的值是分号分隔的keyvalue列表keyvalue[;keyvalue]单个--select值内的多个键值对按逻辑AND组合必须全部匹配多个--select标志之间按逻辑OR组合插件匹配任一选择器集合即被启用值支持简单的 glob 模式如regionus-*。示例telegraf --config config.conf --config-directory directory/ \ --selectapppayments;regionus-* \ --selectenvprod \ --watch-config --print-plugin-config-sourcetrue标签Labels为插件添加可选的labels表用法与tags类似键值均为普通字符串[[inputs.cpu]] [inputs.cpu.labels] app payments region us-east env prodTelegraf 将命令行选择器与插件的 labels 匹配以决定该插件实例是否启用。从源码 config/plugin_selector.go#L112-L123 可以看到匹配逻辑未配置任何标签的插件或未提供任何选择器时插件默认全部启用一旦提供了选择器则要求插件的标签在对应键上找到匹配值。完整的语法与匹配规则见 labels and selectors 规范。传输层安全TLS涉及 TLS 的配置证书路径、CA、握手超时、跳过验证等请参考详细的 TLS 文档。总结配置文件由[global_tags]、[agent]与各类插件三大部分组成全部使用 TOML 语法使用telegraf config生成骨架用--input-filter/--output-filter/--section-filter裁剪范围用telegraf config check校验、telegraf config migrate迁移旧配置环境变量含 Shell 展开语法与 Secret Store 提供了两种凭据注入方案注意字符串引号与内存锁定限制掌握 agent 各参数interval、buffer、jitter、日志、缓冲策略等后再针对四类插件各自的通用参数覆盖、命名、过滤做精细调优指标过滤由选择器namepass/namedrop/tagpass/tagdrop/metricpass与修饰器fieldinclude/fieldexclude/taginclude/tagexclude组成理解它们在不同插件类型上的应用时机过滤在输入之后、处理/聚合/输出之前是设计路由与裁剪数据的关键。【免费下载链接】telegrafAgent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.项目地址: https://gitcode.com/GitHub_Trending/te/telegraf创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考