通用监视器选项

编辑

您可以在任何位置定义 Heartbeat 监视器时指定以下选项。这些选项对于所有监视器都是相同的。每种监视器类型都有特定于该监视器类型的其他配置选项。

type

编辑

要运行的监视器类型。请参阅 监视器类型

此配置的唯一标识符。无论对任何配置字段进行更改,此标识符都不应随着对监视器配置的编辑而更改。示例:uploader-servicehttp://example.netus-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

编辑

如果 modeany,则监视器仅 ping 主机名的一个 IP 地址。如果 modeall,则监视器 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