配置轻量级监控
编辑配置轻量级监控
编辑在 Synthetics 应用中,您可以使用以下轻量级检查来监控网络端点的状态
- HTTP: 监控您的网站。HTTP 监控器会检查特定端点是否返回正确的状态代码并显示正确的文本。
- ICMP: 检查主机的可用性。ICMP 监控器使用 ICMP(v4 和 v6)回显请求来检查您正在 ping 的主机的网络可达性。这将告诉您主机是否可用并连接到网络,但不会告诉您主机上的服务是否正在运行。
- TCP: 监控主机上运行的服务。TCP 监控器检查各个端口,以确保服务可访问且正在运行。
可以使用 Synthetics 应用 或 项目监控 来配置轻量级监控。
Synthetics 应用
编辑要在 Synthetics 应用中使用 UI,请前往 Kibana 中的 Synthetics 应用来创建和配置监控。有关分步说明,请参阅 使用 Synthetics 应用。

项目监控
编辑要使用 YAML 文件创建项目监控,请设置项目并在 lightweight
目录中的 YAML 文件中配置监控。
在每个 YAML 文件中,定义一组 monitors
来检查您的远程主机。每个 monitor
项都是 YAML 列表中的一个条目,并以短划线 (-
) 开头。您可以定义要使用的监控类型、要检查的主机以及其他可选设置。
以下示例配置了三个分别通过 http
、icmp
和 tcp
协议进行检查的监控,并演示了如何使用 TCP 回显响应验证
heartbeat.monitors: - type: http name: Todos Lightweight id: todos-lightweight urls: "https://elastic.github.io/synthetics-demo/" schedule: '@every 1m' - type: icmp id: ping-myhost name: My Host Ping hosts: "myhost" schedule: '@every 5m' - type: tcp id: myhost-tcp-echo name: My Host TCP Echo hosts: "myhost:777" # default TCP Echo Protocol check.send: "Check" check.receive: "Check" schedule: '@every 60s'
有一些通用的监控配置选项,对于所有轻量级监控类型都是相同的。有关完整列表,请参阅 通用选项。
每种监控类型还具有特定于该类型的其他配置选项。请参阅
tcp
和 http
监控类型都支持 SSL/TLS 和一些代理设置。
通用选项
编辑在任何位置定义综合监控时,您可以指定以下选项。这些选项对于所有监控都是相同的。每种监控类型都有特定于该监控类型的其他配置选项。
选项(类型) | 描述 |
---|---|
必需。要运行的监控类型。以下之一
|
|
|
必需。此配置的唯一标识符。无论对任何配置字段进行更改,都不应随监控配置的编辑而更改。 示例: id: uploader-service id: https://example.net 在针对索引的监控数据进行查询时,这是您将进行聚合的字段。它在导出的字段中显示为 如果您未显式设置 |
|
此监控的人工可读名称。 示例: name: Uploader service name: Example website |
|
此监控的 APM 服务名称。对应于 |
|
是否启用监控。 默认值: 示例: enabled: false |
|
必需。任务计划。 分辨率低于 1 分钟的计划将保存到最接近的分钟。例如,当使用 CLI 推送监控时, 示例: schedule: @every 5m |
|
每次 ping 测试的总运行时间。这是允许测试连接和交换数据的总时间。 默认值: 示例: timeout: 2m |
|
将与监控事件一起发送的标签列表。 示例: tags: - tag one - tag two tags: ["tag one", "tag two"] |
运行监控的两种模式之一
默认值: 示例: |
|
|
如果配置了主机名,是否使用 ipv4 协议进行 ping。 默认值: 示例: ipv4: false |
|
如果配置了主机名,是否使用 ipv6 协议进行 ping。 默认值: 示例: ipv6: false |
启用或禁用此监控上的警报。阅读警报中的更多警报信息。
|
|
|
在监控失败时启用或禁用重新测试。默认值为 默认情况下,如果监控从“正常”变为“异常”,则会自动重新测试监控。如果重新测试的结果也为“异常”,则会创建一个错误,并且如果已配置,则会发送警报。然后,监控将按照定义的计划恢复运行。使用 示例: retest_on_failure: false |
|
在何处部署监控。您可以在多个位置部署监控,以检测这些位置之间的可用性和响应时间的差异。 要列出可用位置,您可以
示例: locations: ["japan", "india"] locations: - japan - india 也可以使用以下方法进行设置 通过 CLI 定义的值优先于轻量级监控配置中定义的值, |
|
监视器将部署到的私有位置。这些私有位置是指您托管和管理的地点,而 要列出可用的私有位置,您可以
示例: private_locations: ["Private Location 1", "Private Location 2"] private_locations: - Private Location 1 - Private Location 2 也可以使用以下方法进行设置 通过 CLI 定义的值优先于轻量级监控配置中定义的值, |
将随每个监视器事件发送的键值对列表。 示例: fields: foo: bar team: synthetics fields.foo: bar fields.team: synthetics |
HTTP 选项
编辑此处描述的选项配置 Synthetics 以通过 HTTP 连接,并可以选择验证主机是否返回预期的响应。
HTTP 监视器的有效选项包括所有通用选项以及以下 HTTP 特定选项
选项(类型) | 描述 |
---|---|
|
必需。要 ping 的 URL。 |
|
Synthetics 将遵循的总重定向次数。 默认情况下,Synthetics 不会遵循重定向,但会报告重定向的状态。如果设置为大于 当此选项设置为大于 默认值: |
在 |
|
|
HTTP 代理 URL。此设置是可选的。 示例: https://proxy.mydomain.com:3128 |
|
用于向服务器进行身份验证的用户名。凭据随请求一起传递。此设置是可选的。 当您的 |
|
用于向服务器进行身份验证的密码。此设置是可选的。 |
|
用于 HTTPS 端点的 TLS/SSL 连接设置。如果您不指定设置,则使用系统默认值。 示例: - type: http id: my-http-service name: My HTTP Service urls: "https://myhost:443" schedule: '@every 5s' ssl: certificate_authorities: ['/etc/ca.crt'] supported_protocols: ["TLSv1.0", "TLSv1.1", "TLSv1.2"] |
|
控制 HTTP 响应标头 默认值: |
控制 HTTP 响应正文内容到
|
|
|
ICMP 选项
编辑此处描述的选项配置 Synthetics 以使用 ICMP(v4 和 v6)回显请求来检查配置的主机。在大多数平台上,您必须使用提升的权限执行 Synthetics 才能执行 ICMP ping。
在 Linux 上,如果设置了正确的文件功能,则常规用户可以执行 ping。运行 sudo setcap cap_net_raw+eip /path/to/heartbeat
以授予 Synthetics 在 Linux 上的 ping 功能。或者,您可以授予用于运行 Synthetics 的用户 ping 权限。要以这种方式授予 ping 权限,请运行 sudo sysctl -w net.ipv4.ping_group_range='myuserid myuserid'
。
其他平台可能需要以 root 或管理员身份运行 Synthetics 才能执行 ping。
ICMP 监视器的有效选项包括所有通用选项以及以下 ICMP 特定选项
选项(类型) | 描述 |
---|---|
|
必需。要 ping 的主机。 示例: hosts: "myhost" |
|
如果未收到响应,则在发出另一个 ICMP 回显请求之前等待的时间。 默认值: 示例: wait: 1m |
TCP 选项
编辑此处描述的选项配置 Synthetics 以通过 TCP 连接,并可以选择通过发送和/或接收自定义有效负载来验证端点。
TCP 监视器的有效选项包括所有通用选项以及以下 TCP 特定选项
选项(类型) | 描述 |
---|---|
|
必需。要 ping 的主机。该值可以是
示例: hosts: "localhost:8000" hosts: "tcp://127.0.0.1:8000" |
要发送到远程主机的可选负载字符串和预期的答案。如果未指定负载,则如果连接尝试成功,则假定端点可用。如果在没有 示例: check.send: 'Hello World' check.receive: 'Hello World' check: send: 'Hello World' receive: 'Hello World' |
|
连接到服务器时要使用的 SOCKS5 代理的 URL。该值必须是 scheme 为 socks5:// 的 URL。 如果 SOCKS5 代理服务器需要客户端身份验证,则可以将用户名和密码嵌入到 URL 中。 使用代理时,主机名在代理服务器上解析,而不是在客户端上解析。您可以通过设置 示例: 需要客户端身份验证的代理 URL proxy_url: socks5://user:password@socks5-proxy:2233 |
|
|
一个布尔值,用于确定主机名是在本地解析还是在代理服务器上解析。默认值为 默认值: |
|
TLS/SSL 连接设置。如果监视器配置为使用 SSL,它将尝试 SSL 握手。如果未配置 示例: ssl: certificate_authorities: ['/etc/ca.crt'] supported_protocols: ["TLSv1.0", "TLSv1.1", "TLSv1.2"] 另请参阅 配置 SSL,了解有关 |
数据类型参考
编辑配置设置的值根据 Synthetics 的要求进行解释。如果某个值无法正确解释为所需的类型(例如,当需要数字时给出字符串),Synthetics 将无法启动。
布尔值
编辑布尔值可以是 true
或 false
。true
的替代名称是 yes
和 on
。 可以使用值 no
和 off
代替 false
。
enabled: true disabled: false
数字
编辑数字值要求您输入数字,不带单引号或双引号。
integer: 123 negative: -1 float: 5.4
某些设置仅支持有限的数字范围。
字符串
编辑在 YAML 中,支持多种字符串定义样式:双引号、单引号、无引号。
双引号样式是通过用 "
包围字符串来指定的。此样式提供使用 \
转义不可打印字符的支持,但代价是必须转义 \
和 "
字符。
单引号样式是通过用 '
包围字符串来指定的。此样式不支持任何转义(使用 ''
来引用单引号)。使用此形式时,只能使用可打印字符。
无引号样式不需要引号,但不支持任何转义,并且不能包含在 YAML 中具有特殊含义的任何符号。
在定义正则表达式、事件格式字符串、Windows 文件路径或非字母符号字符时,建议使用单引号样式。
持续时间
编辑持续时间需要一个数值,带有可选的小数部分和必需的单位。有效的时间单位是 ns
、us
、ms
、s
、m
、h
。有时,可以使用零或负持续时间禁用基于持续时间的功能。
duration1: 2.5s duration2: 6h duration_disabled: -1s
正则表达式
编辑正则表达式是在加载时编译为正则表达式的特殊字符串。
由于正则表达式和 YAML 使用 \
来转义字符串中的字符,因此强烈建议在定义正则表达式时使用单引号字符串。当使用单引号字符串时,\
字符不会被 YAML 解析器解释为转义符号。