通用监控选项
编辑通用监控选项
编辑在任何位置定义 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 地址。mode: all
设置在您使用 DNS 负载均衡器并希望 ping 指定主机名的每个 IP 地址时非常有用。默认为 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 将存储为输出文档中的顶级字段,而不是分组在 fields
子字典下。如果自定义字段名称与 Heartbeat 添加的其他字段名称冲突,则自定义字段将覆盖其他字段。
tags
编辑将与监控器事件一起发送的标签列表。此设置是可选的。
processors
编辑要应用于监控器生成的数据的处理器列表。
请参见 处理器,了解有关在配置中指定处理器的相关信息。
data_stream
编辑包含与数据流命名相关的选项,遵循 Fleet 数据流 遵循的约定。默认情况下,Heartbeat 将写入名为 heartbeat-VERSION
的数据流。
# To enable data streams with the default namespace data_stream.namespace: default
pipeline
编辑要为此输入生成的事件设置的 Elasticsearch Ingest Pipeline ID。
还可以在 Elasticsearch 输出中配置 Pipeline ID,但这通常会导致更简单的配置文件。如果在输入和输出中都配置了 Pipeline,则使用输入中的选项。
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
。