通用监视器选项
编辑通用监视器选项
编辑您可以在任何位置定义 Heartbeat 监视器时指定以下选项。这些选项对于所有监视器都是相同的。每种监视器类型都有特定于该监视器类型的其他配置选项。
type
编辑要运行的监视器类型。请参阅 监视器类型。
id
编辑此配置的唯一标识符。无论对任何配置字段进行更改,此标识符都不应随着对监视器配置的编辑而更改。示例:uploader-service
、http://example.net
、us-west-loadbalancer
。请注意,此唯一性仅在给定的 beat 实例中有效。如果您想从多个位置监视同一端点,建议这些 heartbeat 实例使用相同的 ID,以便可以关联它们的结果。您可以使用 host.geo.name
属性来消除歧义。
在针对索引的监视器数据进行查询时,这是您将用于聚合的字段。在导出的字段中显示为 monitor.id
。
如果您未明确设置此项,则将对监视器的配置进行哈希处理,并使用生成的值。此值将随对此监视器的任何选项更改而更改,从而使更改之间的时间聚合变得不可能。因此,建议您手动设置此项。
name
编辑此监视器的可选人类可读名称。此值在导出的字段中显示为 monitor.name
。
service.name
编辑此监视器的可选 APM 服务名称。对应于 service.name
ECS 字段。在监视同时使用 APM 的应用程序时设置此项,以启用 Kibana 中 Uptime 和 APM 数据之间的集成。
enabled
编辑一个布尔值,用于指定是否启用该模块。如果配置块中缺少 enabled
选项,则默认启用该模块。
schedule
编辑一个类似 cron 的表达式,用于指定任务计划。例如
-
*/5 * * * * * *
每 5 秒运行一次任务(例如,在 10:00:00、10:00:05 等时刻)。 -
@every 5s
从 Heartbeat 启动时起每 5 秒运行一次任务。
schedule
选项使用基于 此 cronexpr
实现的类似 cron 的语法,但添加了 @every
关键字。
要获取有关计划任务执行情况的统计信息,您可以使用 http.enabled: true
在 heartbeat.yml 中启用 HTTP 统计信息服务器,然后运行 curl https://127.0.0.1:5066/stats | jq .heartbeat.scheduler
以查看计划程序的统计信息。将提供有关作业和任务的统计信息。每次计划监视器都被视为一个单独的作业,而作业所执行的工作部分(如 DNS 查找和执行网络请求)则被定义为任务。提供的统计信息是
- jobs.active: 正在积极运行的作业/监视器数。
- jobs.missed_deadline: 在其计划时间之后执行的作业数。这可能是由于上一个作业的超时时间过长,或高负载阻止 heartbeat 跟上工作进度而导致的。
- tasks.active: 当前正在运行的任务数。
-
tasks.waiting: 如果设置了全局
schedule.limit
选项,则此数字将反映已准备好执行但尚未启动以防止超过schedule.limit
的任务数。
另请参阅任务计划程序设置。
ipv4
编辑一个布尔值,用于指定是否在使用主机名配置时使用 ipv4 协议进行 ping 操作。默认值为 true
。
ipv6
编辑一个布尔值,用于指定是否在使用主机名配置时使用 ipv6 协议进行 ping 操作。默认值为 true
。
mode
编辑如果 mode
为 any
,则监视器仅 ping 主机名的一个 IP 地址。如果 mode
为 all
,则监视器 ping 主机名的所有可解析 IP。如果您正在使用 DNS 负载均衡器并想 ping 指定主机名的每个 IP 地址,则 mode: all
设置非常有用。默认值为 any
。
timeout
编辑每次 ping 测试的总运行时间。这是测试连接和交换数据所允许的总时间。默认值为 16 秒 (16s)。
如果超出超时时间,Heartbeat 将发布 service-down
事件。如果为 timeout
指定的值大于 schedule
,则计划程序将不会执行中间检查。
run_from
编辑使用 run_from
选项设置与给定 heartbeat 监视器相关的地理位置字段。
run_from
选项用于标记监视器运行所在的地理位置。请注意,您还可以通过 heartbeat.run_from
选项在所有监视器上设置 run_from
选项。
run_from
选项采用两个顶级字段
-
id
:用于唯一标识地理位置的字符串。它被索引为observer.name
字段。 -
geo
:符合 ECS 地理字段的映射。它在observer.geo
下索引。
示例
- type: http # Set enabled to true (or delete the following line) to enable this example monitor enabled: true # ID used to uniquely identify this monitor in elasticsearch even if the config changes id: geo-test # Human readable display name for this service in Uptime UI and elsewhere name: Geo Test # List or urls to query urls: ["http://example.net"] # Configure task schedule schedule: '@every 10s' run_from: id: my-custom-geo geo: name: nyc-dc1-rack1 location: 40.7128, -74.0060 continent_name: North America country_iso_code: US region_name: New York region_iso_code: NY city_name: New York
fields
编辑您可以指定的可选字段,以向输出添加其他信息。例如,您可以添加可用于筛选日志数据的字段。字段可以是标量值、数组、字典或它们的任何嵌套组合。默认情况下,您在此处指定的字段将分组在输出文档中的 fields
子字典下。要将自定义字段存储为顶级字段,请将 fields_under_root
选项设置为 true。如果在常规配置中声明了重复字段,则其值将被此处声明的值覆盖。
fields_under_root
编辑如果此选项设置为 true,则自定义字段将存储为输出文档中的顶级字段,而不是分组在 fields
子字典下。如果自定义字段名称与 Heartbeat 添加的其他字段名称冲突,则自定义字段将覆盖其他字段。
tags
编辑将与监视器事件一起发送的标记列表。此设置是可选的。
processors
编辑要应用于监视器生成的数据的处理器列表。
有关在配置中指定处理器的信息,请参阅处理器。
data_stream
编辑包含与数据流命名相关的选项,遵循 Fleet 数据流 所遵循的约定。默认情况下,Heartbeat 将写入名为 heartbeat-VERSION
的数据流。
# To enable data streams with the default namespace data_stream.namespace: default
pipeline
编辑要为此输入生成的事件设置的 Elasticsearch 摄取管道 ID。
管道 ID 也可以在 Elasticsearch 输出中配置,但是此选项通常会产生更简单的配置文件。如果管道在输入和输出中都配置了,则使用输入中的选项。
index
(已弃用)
编辑此设置现在已被弃用,转而使用 data_stream
选项。如果存在,此格式化的字符串将覆盖来自此输入的事件的索引(对于 elasticsearch 输出),或者设置事件元数据的 raw_index
字段(对于其他输出)。此字符串只能引用代理名称和版本以及事件时间戳;要访问动态字段,请使用 output.elasticsearch.index
或处理器。
示例值:"%{[agent.name]}-myindex-%{+yyyy.MM.dd}"
可能会扩展为 "heartbeat-myindex-2019.11.01"
。
keep_null
编辑如果此选项设置为 true,则在输出文档中发布具有 null
值的字段。默认情况下,keep_null
设置为 false
。