Consul - 查询节点
在本章中,我们将学习如何使用以下函数查询节点 −
- 使用 dig
- 使用 Monitor 命令
- 使用 Watch 命令
- 通过注册外部服务
让我们详细了解每个函数。
使用 Dig
Consul 在 127.0.0.1:8600 上监听 consul 中的 DNS 查询。它确定哪些节点可用于提供服务的方式是使用可以是 −
的检查执行脚本并返回 nagios 兼容代码。
返回 HTTP 响应代码的 HTTP 检查。
检查端口是否打开的 TCP 检查。
尝试 dig 的一般命令是 −
$ dig @127.0.0.1 -p <port> <service-name>.consul
现在,让我们尝试一个示例 dig 命令 −
$ dig @127.0.0.1 -p 8600 web.service.consul
输出将如以下屏幕截图所示。

使用 Monitor 命令
它用于连接并显示正在运行的 Consul 代理的日志。此命令将显示最近的日志。它还允许您以相对较高的日志级别记录代理。它包含各种日志级别,您可以关注这些级别,例如 - Trace、Debug、Info、Warn 和 Err。
让我们尝试以下命令 −
$ consul monitor
输出将如以下屏幕截图所示。

您还可以使用子命令(例如 -log-level 和 -rpc-address)设置监视器命令。默认情况下,RPC 的地址为 127.0.0.1:8400。有关更多信息,请单击此处。
使用 Watch 命令
此命令为我们提供了一种机制来监视节点列表、服务成员、键值等的变化。它还会调用一个具有视图最新值的进程。如果未指定进程,则当前值将处理为 STDOUT,这是一种检查 Consul 中数据的有用方法。Consul Watch 命令帮助有多种不同的选项,如以下屏幕截图所示 −

让我们尝试使用 -type = service 进行演示,如以下命令所示。
$ consul watch -type = service -service = consul

有关此主题的更多信息,您可以单击此处。
通过注册外部服务
注册后,DNS 接口将能够返回服务的相应"A 记录"或 CNAME 记录。让我们注册一个外部服务,例如 Amazon,如以下代码块和屏幕截图所示。
$ sudo curl -X PUT -d '{"Datacenter": "dc1", "Node": "amazon", "Address": "www.amazon.com", "Service": {"Service": "shop", "Port": 80}}' http://127.0.0.1:8500/v1/catalog/register

上述命令指定了一个名为 shop 的服务。该节点称为 amazon,其 URL 可通过端口 80 上的 www.amazon.com 访问。让我们检查一下 consul 上的输出,以确保我们已正确安装此服务。为此,请在 localhost:8500 打开浏览器窗口。

要删除服务,我们只需使用以下命令即可。
$ curl -X PUT -d '{"Datacenter": "dc1", "Node": "amazon"}' http://127.0.0.1:8500/v1/catalog/deregister

让我们检查一下它的 UI,如下面的屏幕截图所示。
