-
Notifications
You must be signed in to change notification settings - Fork 505
集群监控
lishanglin edited this page Aug 24, 2020
·
2 revisions
XPipe由Console组件完成对XPipe单向同步集群的健康检查工作,包括哨兵的检查,复制延迟的监控打点,Redis节点健康状态判断等
下面对这三类监控的原理及扩展能力做介绍
XPipe主机房的高可用依赖于Redis原生的哨兵模式,而Console会检查主机房内哨兵的监控是否与元信息一致,当出现不一致时对哨兵监控做出调整,以保证哨兵的监控名与哨兵监控的集群成员与元信息保持一致。
Console实例定时从备机房Redis监听哨兵消息__sentinel__:hello
,从而获取正在监听集群的哨兵列表,与元信息比较,删除多余哨兵,补充缺失哨兵。同时会从哨兵获取正在监控的Redis实例列表,当有发现未知Redis时会reset哨兵并通过邮件告警(需实现EmailService接口)。
以下配置添加到Console包解压目录下xpipe.properties配置文件后生效
配置名称 | 类型 | 释意 | 默认值 |
---|---|---|---|
console.health.sentinel.interval | Int | 哨兵检查时间间隔,单位毫秒 | 300000 |
console.sentinel.quorum | Object | 哨兵配置,total为一组哨兵总数,quorum为哨兵quorum数量 | {"total":5,"quorum":3} |
console.sentinel.rate.limit.open | Boolean | 哨兵调整限流开关 | false |
console.sentinel.rate.limit.size | Int | 哨兵每分钟允许调整数,需要先打开哨兵限流开关 | 3 |
console.health.sentinel.monitor.redundant.sensitive | Boolean | 是否对哨兵上的未知监控敏感,若为true会自动删除哨兵上的未知监控 | false |
Console会监控集群数据复制的延迟情况,将延迟数据打点上报(需实现MetricProxy接口),并在延迟持续过高或节点持续ping不通时将实例标记为Down。当多个Console实例皆将Redis节点标记为Down后,会通过邮件告警(需实现EmailService接口),并通知相关应用(需实现OuterClientService接口)。
延迟监控基于Redis原生的pub/sub机制,通过在pub上附加时间信息,并在sub时与当前时间相减,计算出整条复制链路的复制延迟。
以下配置添加到Console包解压目录下xpipe.properties配置文件后生效
配置名称 | 类型 | 释意 | 默认值 |
---|---|---|---|
redis.replication.health.check.interval | Int | 延迟检测时间间隔,单位毫秒 | 2000 |
console.healthy.delay | Int | 允许的最大延迟,超过该值认为复制异常,单位毫秒 | 2000 |
console.down.after.checknums | Int | 连续多少次延迟检测异常将Redis实例标记为Down | 5 |
console.quorum | Int | Console集群标记Redis实例ODown需要的Console实例个数 | 1 |
console.ping.down.after.milli | Int | 允许的Redis实例ping失败的最大时长,超过这个时间将Redis标记为Down,单位毫秒 | 12000 |
XPipe