consul服务监控-服务从注册中心下线通知

一、问题

1、服务不可用我们无法第一时间知道那个服务不可用,只有通过人为(用户)的触发才能发现服务不可用,然后信息同步给我们,我们再去排查问题,这样一来会使用户对我们系统的失去安全感。
2、运维这边没有没有更好的运维系统来实现对服务监控。

Q:为什么服务从注册中心掉线。
A:第一层就是健康检查未通过,其次就是造成健康检查未通过的原因,服务宕机、网络波动、服务错误,都可能会造成服务健康检查不通过。

二、思路:

从源头着手,注册中心就是问题源头,只要我们从注册中心知道那个服务掉线了,及可用情况就可以,发起作业报警,通知相关人员处理。

三、解决方案:

1、那就开始着手了解下consul,通过从consul官网了解到watches好像符合我们的目的,他的目的就是监视各个服务的状态其中还支持http回调。
Watch Types

The following types are supported. Detailed documentation on each is below:

key - Watch a specific KV pair
keyprefix - Watch a prefix in the KV store
services - Watch the list of available services
nodes - Watch the list of nodes
service- Watch the instances of a service
checks - Watch the value of health checks
event - Watch for custom user events

2、通过了解watch我们需要增加consul的配置文件,但是问题来了,通过测试他这个监控是获取当前服务状态信息,他对掉线的服务不会获取到更多的信息,例如多实例情况下当我们服务A有两个实例分别是实例1和实例2,服务A两个实例注册到注册中心,我们可以获取到服务A实例信息,但是服务A的实例1下线了我们可以获取到服务信息,当实例2下线了我们就无法获取到实例的信息了,至少这里是获取不到的,总的来说,多实例情况下,当最后一个实例掉线我们无法获取到实例信息,单实例更糟糕,一个掉线我们就什么也拿不到,什么也做不了,至少通过这种方式无法达到我们的目的,小伙伴可以测试下。

3、起始是想通过services监视类型来做到一个配置监视所有,经过尝试不支持会出现上面的问题,既然不行就要换下方式,我们使用service我们可以在配置文件中增加扩展参数,这样服务下线我们就可以知道那个服务下线了,配置文件如下 每个服务都要配置(比较麻烦的是每个服务都要配置)
新建config.json放到consul配置文件目录中

{
    "datacenter": "dc1",
    "data_dir": "D:\\Softwear\\consul_1.2.2_windows_amd64",
    "ui": true,
    "watches": [{
        "type": "service", ###监视类型
        "service": "consul-demo-02", ###要监视服务名称
        "handler_type": "http",###回调类型
        "http_handler_config": {
            "path": "http://localhost:9609/notice/wechat/services",###回调通知地址
            "method": "POST",###回调请求方式
            "header": {###header参数
                "name": ["consul-demo-02"],   ###服务名称  为了确定知道
                "environmental":["线上环境"],  ###  所在环境
                "member":["2"] ###服务实例数量
            }
        }
    }
    ]
}

业务流程图

在这里插入图片描述项目git地址https://github.com/fhlkds/service-watches-monitoring

使用步骤:

1、启动启动consul 命令:consul agent -config-dir=配置文件目录 -dev

 我的启动命令是 consul agent -config-dir=D:/Softwear/consul_1.2.2_windows_amd64/wechat -dev

然后启动consul-watches-notice-service服务

收到邮件
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值