在本章中,我们将学习如何使用以下功能查询节点:

  • 使用 dig
  • 使用 Monitor 命令
  • 使用 Watch 命令
  • 通过注册外部服务

让我们详细了解每个功能。

使用 Dig

Consul 在 127.0.0.1:8600 上监听 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

输出如下图所示。

Consul - 查询节点 - 图1

使用 Monitor 命令

它用于连接并显示正在运行的 Consul 代理的日志。此命令将显示最近的日志。它还允许你以相对较高的日志级别记录代理。它包含各种日志级别,例如 Trace、Debug、Info、Warn 和 Err。

让我们尝试以下命令:

$ consul monitor

输出如下图所示。

Monitor Command

你还可以使用子命令如 -log-level 和 -rpc-address 设置 monitor 命令。默认情况下,RPC 地址是 127.0.0.1:8400。更多信息请点击 这里

使用 Watch 命令

此命令为我们提供了一种机制来监视节点列表、服务成员、键值等的更改。它还会调用一个进程,使用视图的最新值。如果没有指定进程,当前值会处理到 STDOUT,这可以是检查 Consul 数据的有用方法。Consul Watch Command 帮助有各种不同的选项,如下图所示:

Consul - 查询节点 - 图3

让我们尝试一个带有 -type = service 的演示,如下命令所示。

$ consul watch -type = service -service = consul

Watch Type

有关此主题的更多信息,请点击 这里

通过注册外部服务

一旦注册,DNS 接口将能够返回适当的 ‘A 记录’ 或 CNAME 记录。让我们注册一个外部服务,如亚马逊,如下代码块和截图所示。

  1. $ sudo curl -X PUT -d '{"Datacenter": "dc1", "Node": "amazon",
  2. "Address": "www.amazon.com",
  3. "Service": {"Service": "shop", "Port": 80}}'
  4. http://127.0.0.1:8500/v1/catalog/register

Consul - 查询节点 - 图5

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

Registering External Services

要删除该服务,我们可以简单地使用以下命令。

$ curl -X PUT -d ‘{“Datacenter”: “dc1”, “Node”: “amazon”}’ http://127.0.0.1:8500/v1/catalog/deregister

Remove Service

让我们检查其 UI,如下图所示。

Remove Service