监控:DNS服务发现监控
HertzBeat 集成 DNS 服务,通过 DNS 记录自动发现服务实例并为发现的实例创建监控任务。
概述
DNS 服务发现允许 HertzBeat 通过查询 DNS 记录来发现服务实例。这是一种简单可靠的服务发现方法,利用标准 DNS 基础设施来查找服务实例。特别适用于使用 DNS SRV 记录或需要通过 DNS 发现服务的环境。
监控前操作
配置 DNS 记录
确保您的 DNS 服务器已正确配置服务发现记录。不同的记录类型有不同的格式:
- SRV 记录:用于服务发现,包含服务主机和端口信息
- A 记录:返回 IPv4 地址
- AAAA 记录:返回 IPv6 地址
- MX 记录:邮件服务器记录
- NS 记录:名称服务器记录
配置参数
| 参数名称 | 参数帮助描述 |
|---|---|
| 任务名称 | 标识此监控的名称,名称需要保证唯一性 |
| DNS地址 | DNS 服务器地址。示例:8.8.8.8 或 192.168.1.1 |
| DNS端口 | DNS 服务器端口,默认为 53 |
| 记录类型 | 要查询的 DNS 记录类型。选项:SRV、A、AAAA、MX、NS |
| 记录名称 | 要查询的 DNS 记录名称。示例:SRV 记录为 _http._tcp.example.com |
| 采集间隔 | 监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒 |
| 描述备注 | 更多标识和描述此监控的备注信息,用户可以在这里备注信息 |
使用步骤
-
创建服务发现监控
- 在 HertzBeat Web 界面中,导航到 监控 → 新增监控
- 选择监控类型:DNS服务发现
- 填写基本配置参数
-
配置监控模板
- 创建服务发现监控后,需要指定一个监控模板
- 模板定义了为发现的服务实例创建什么类型的监控
- 对于 SRV 记录,常用的模板包括端口、HTTP 等
- 对于 A/AAAA 记录,可以使用 Ping 或端口监控
-
自动发现
- HertzBeat 会根据采集间隔定期查询 DNS 服务器
- 为新发现的服务实例自动创建监控任务
- 自动删除已消失服务实例的监控任务
-
查看发现的实例
- 在监控列表中,您可以看到所有自动创建的子监控任务
- 每个子监控任务对应一个发现的服务实例
使用示例
示例 1:SRV 记录发现
假设您的 Web 服务有一个 SRV 记录:
- SRV 记录:
_http._tcp.example.com - DNS 服务器:
8.8.8.8 - 预期发现:自动发现所有 HTTP 服务实例
配置示例:
- 任务名称:
DNS-SRV-Discovery - DNS地址:
8.8.8.8 - DNS端口:
53 - 记录类型:选择
SRV - 记录名称:
_http._tcp.example.com - 采集间隔:
60秒 - 监控模板:选择
端口监控(使用 SRV 记录中的端口)
配置完成后:
- HertzBeat 查询
_http._tcp.example.com的 SRV 记录 - 从 SRV 记录响应中提取主机和端口信息
- 为每个服务实例自动创建端口监控
示例 2:A 记录发现
通过 A 记录发现服务实例:
- A 记录:
services.example.com - 该域名可能解析到多个 IP 地址
配置示例:
- DNS地址:
192.168.1.1(内部 DNS 服务器) - DNS端口:
53 - 记录类型:选择
A - 记录名称:
services.example.com - 监控模板:选择
Ping或端口监控
示例 3:MX 记录发现
通过 MX 记录发现邮件服务器:
- DNS地址:
8.8.8.8 - 记录类型:选择
MX - 记录名称:
example.com - 监控模板:选择
端口监控(端口 25)