本节将介绍如何为节点和服务配置健康检查,进一步提升系统监控能力。此前已演示了Consul的运行、节点与服务的管理及查询,操作简便直观。
1、 运行 vagrant up 命令启动虚拟机(若未运行),记录显示的两个 IP 地址,后续用于配置 xshell 连接。
2、 先安装Xshell软件,通过它连接虚拟机,避免使用cmd导致无法复制的问题,操作更便捷高效。
3、 用户名与密码均为vagrant
4、 参照堡垒机连接虚拟机方法,完成安装与连接操作。
5、 如何经由堡垒机接入虚拟机
6、 明确检查标准与要求,确保执行准确无误。
7、 与服务类似,可通过提交检查定义文件或发送HTTP API请求来执行检查。
8、 本节将采用检查定义的方法,与前文定义服务的方式相同,这也是最常用的定义手段。
9、 为节点n2创建两份定义文件。
10、 输出一个JSON格式内容,其中包含服务信息:名称为web,标签为空,端口号为80。
11、 首次操作因权限不足失败,切换为root权限后顺利解决。
12、 输出命令:echo {检测: {名称: ping, 类型: 网络连通性测试}}
13、 将服务名称更改为web,并添加一项健康检查机制,每10秒通过curl发起请求以验证服务是否正常运行。与主机级健康检查类似,若检测脚本返回值非零,则判定该服务处于不健康状态。
14、 第二个定义了主机层面的健康检查,通过每30秒执行一次ping -c1 baidu.com命令来实现。该命令在Linux系统中发送一个ICMP请求包检测网络连通性(Windows不支持此语法)。若命令返回值非零,则判定节点状态异常。所有基于脚本的健康检查均遵循这一规则,以退出码判断运行结果。
15、 启动n1和n2节点的consul服务(若尚未运行)。
16、 在新终端中启动n1,执行命令连接n2。
17、 检查健康状况,确保身体各项指标正常运行。
18、 在n2的启动日志中可发现,service:web 的状态显示为 critical,表明服务检查失败,需进一步排查问题原因。
19、 执行如下命令:curl http://localhost:8500/v1/health/state/critical,用于查询本地服务的健康状态信息。
20、 发现已查询到服务:web
21、 通过命令查询服务,实际结果显示的是n1的服务信息。
22、 n2未成功,故无查询结果。
