TCP 选项

编辑

另请参见 通用监控选项

此处描述的选项配置 Heartbeat 通过 TCP 连接,并可以选择通过发送和/或接收自定义负载来验证端点。

示例配置

- type: tcp
  id: my-host-services
  name: My Host Services
  hosts: ["myhost"]
  ports: [80, 9200, 5044]
  schedule: '@every 5s'

hosts

编辑

要 ping 的主机列表。列表中的条目可以是:

  • 普通主机名,例如 localhost,或 IP 地址。如果指定此选项,则还必须为 ports 指定一个值。如果监控器 配置为使用 SSL,则 Heartbeat 将建立基于 SSL/TLS 的连接。否则,它将建立普通的 TCP 连接。
  • 主机名和端口,例如 localhost:12345。Heartbeat 连接到指定主机上的端口。如果监控器 配置为使用 SSL,则 Heartbeat 将建立基于 SSL/TLS 的连接。否则,它将建立 TCP 连接。
  • 使用语法 scheme://<host>:[port] 的完整 URL,其中:

    • schemetcpplainssltls 之一。如果指定了 tcpplain,即使监控器配置为使用 SSL,Heartbeat 也将建立 TCP 连接。如果指定了 tlsssl,Heartbeat 将建立 SSL 连接。但是,如果监控器未配置为使用 SSL,则将使用系统默认值(目前在 Windows 上不支持)。
    • host 是主机名。
    • port 是端口号。如果 URL 中缺少 port,则需要 ports 设置。

ports

编辑

如果 hosts 中指定的主机不包含端口号,则要 ping 的端口列表。通常最好在此处使用单个值,因为每个端口都将使用单独的 id 进行监控,其中给定的 id 值用作 Heartbeat 数据中的前缀,并且配置的 name 在通过此检查发送的事件中共享。

check

编辑

一个可选的有效负载字符串,用于发送到远程主机和预期的答案。如果没有指定有效负载,则如果连接尝试成功,则假定端点可用。如果指定了 send 但没有 receive,则任何响应都将被接受为 OK。如果指定了 receive 但没有 send,则不会发送任何有效负载,但客户端期望以“hello message”或“banner”的形式接收连接时的有效负载。

示例配置

- type: tcp
  id: echo-service
  name: Echo Service
  hosts: ["myhost"]
  ports: [7]
  check.send: 'Hello World'
  check.receive: 'Hello World'
  schedule: '@every 5s'

proxy_url

编辑

连接到服务器时要使用的 SOCKS5 代理的 URL。该值必须是方案为 socks5:// 的 URL。

如果 SOCKS5 代理服务器需要客户端身份验证,则可以像示例中所示那样在 URL 中嵌入用户名和密码。

  proxy_url: socks5://user:password@socks5-proxy:2233

使用代理时,主机名将在代理服务器上解析,而不是在客户端上解析。可以通过设置 proxy_use_local_resolver 选项来更改此行为。

proxy_use_local_resolver

编辑

一个布尔值,用于确定是在本地解析主机名还是在代理服务器上解析主机名。默认值为 false,这意味着名称解析发生在代理服务器上。

TLS/SSL 连接设置。如果监控器 配置为使用 SSL,它将尝试进行 SSL 握手。如果没有配置 check,监控器将仅检查它是否可以建立 SSL/TLS 连接。此检查可能会在 TCP 层或证书验证期间失败。

示例配置

- type: tcp
  id: tls-mail
  name: TLS Mail
  hosts: ["mail.example.net"]
  ports: [465]
  schedule: '@every 5s'
  ssl:
    certificate_authorities: ['/etc/ca.crt']
    supported_protocols: ["TLSv1.0", "TLSv1.1", "TLSv1.2"]

另请参见 SSL,以了解 ssl 选项的完整描述。