通用监控选项
编辑通用监控选项编辑
在任何位置定义 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 中启用正常运行时间和 APM 数据之间的集成。
enabled
编辑
一个布尔值,指定是否启用该模块。如果配置块中缺少 enabled
选项,则默认情况下会启用该模块。
schedule
编辑
一个类似 cron 的表达式,指定任务计划。例如
-
*/5 * * * * * *
每 5 秒运行一次任务(例如,在 10:00:00、10:00:05 等时间运行)。 -
@every 5s
从 Heartbeat 启动时间开始,每 5 秒运行一次任务。
schedule
选项使用类似 cron 的语法,该语法基于 此 cronexpr
实现,但添加了 @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
,则监控器对主机名的所有可解析 IP 地址进行 ping 操作。如果使用 DNS 负载均衡器并希望对指定主机名的每个 IP 地址进行 ping 操作,则 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 geo 字段 的映射。它被索引在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 摄取管道 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
。