基于Prometheus性能监控系统的服务器保护方法与流程

文档序号:16134193发布日期:2018-12-01 00:43阅读:604来源:国知局

本发明涉及服务器保护领域,特别是一种基于prometheus性能监控系统的服务器保护方法。



背景技术:

网站服务器往往由于突发事件,服务流量突然增大导致部分服务崩溃,进而导致整个服务出现不可用的情况,影响整个系统的可用性。为保护服务器正常运行,提升服务的可用性,需要对突发流量情况进行限流。

现有技术中,常见的是通过令牌桶算法进行限流,保护服务器。通过令牌桶预先在业务代码里面估算好服务器能承担的大小,进行限制,是可以一定程度做到对服务器保护,节约资源的情况。但通过提前在代码里面估算服务器承担的流量大小,进行限流,这不是实时根据服务器压力负载情况来进行调整的,存在以下问题:1)估算服务能接受流量过高,导致服务还没有到达限制流量的阈值就崩溃;2)估算服务能接受流量过低,导致服务资源没有更好使用,从而浪费了资源。

相关术语

prometheus(普罗米修斯):是一套使用go语言开发的开源监控系统,基本原理是通过http(超文本传输)协议周期性抓取被监控组件的状态,任意组件只要提供对应的http接口就可以接入监控。

redis:是一个高性能的键值对内存数据库,使用c语言编写。

redissentinel(哨兵):是redis官方推荐的高可用(ha)解决方案,用于监控redis集群中节点状态的工具。

队列:一种特殊的线性表,队列是一种操作受限制的线性表;进行插入操作的端称为队尾,进行删除操作的端称为队头。



技术实现要素:

本发明所要解决的技术问题是提供一种基于prometheus性能监控系统的服务器保护方法,通过prometheus性能监控系统来监控服务器数据,再通过redissentinel高可用架构队列进行限流,增加服务的稳定性和可用性。

为解决上述技术问题,本发明采用的技术方案是:

一种基于prometheus性能监控系统的服务器保护方法,包括以下步骤:

步骤1:在目标服务器上安装prometheus性能监控系统的软件包,通过prometheus性能监控系统收集能够判断服务器性能的监控数据,包括cpu内存、api响应的时间;

步骤2:将步骤1中收集到的目标服务器的监控数据进行存储;

步骤3:将目标服务器的监控数据展示在对应的数据图表系统;

步骤4:在数据图表系统中设置服务器限流的触发条件,并判断是否触发限流策略,进而对服务器进行限流;

步骤5:对服务器进行限流,包括:

1)若服务器流量变大,触发哨兵队列限流策略,即将新进入的流量加入队列,当服务器压力在设定时间内恢复正常并且哨兵队列里面没有数据,则取消限流策略;

2)若服务器流量变大,触发哨兵队列限流策略,当服务器压力在设定时间内没有恢复正常,则依然进行限流;若哨兵队列存储超过负载,则关闭多余请求,保护当前服务。

进一步的,所述数据图表系统采用grafana。

进一步的,所述服务器限流的触发条件为cpu内存消耗占比大于80%及api响应的时间值大于500ms。

与现有技术相比,本发明的有益效果是:在遇到短时突发流量的时候,可以通过这种监控服务器压力情况自动化进行限制流量来提升服务的稳定性,避免一些昂贵不需要的升级扩容,降低人力成本,也节约了服务器资源。

附图说明

图1是本发明基于prometheus性能监控系统的服务器保护方法的监控过程。

图2是本发明基于prometheus性能监控系统的服务器保护方法的限流过程。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明限流方法解决了以下问题:

1)实时响应:网站流量因为一些热点事件或者活动突然导致某一瞬间流量突然增加,通过prometheus性能监控系统可以实时判断服务器压力是否过大,进而决定是否实时开启流量限制服务;

2)自动化限流:根据业务场景不同,实时判断服务流量是否过大的规则(比如cpu内存占用率超过80%),提前设置好对应条件来触发开启限流配置,快速灵活;

3)减少资源消耗:通过实时判断流量大小(通过当前cpu内存判断服务器能承受的压力),继而来进行自动化限流,保护服务器,可以解决瞬时流量增大情况,既保护了服务器正常运行,也不必立即新增服务器资源,减少服务器资源的损耗和时间浪费。

本发明基于prometheus性能监控系统的服务器保护方法详述如下:

一、服务器性能实时判断

1、在目标服务器上安装prometheus性能监控系统的软件包,通过prometheus性能监控系统收集能够判断服务器性能的监控数据,包括cpu内存、api响应的时间;

2、监控系统(prometheus)将收集好的监控数据进行存储;

3、将目标服务器的监控数据展示在对应的数据图表系统(grafana);

4、在数据图表系统中设置服务器限流的触发条件(例如cpu内存超过80%,api响应时间大于500ms),判断是否触发限流策略。

二、自动化限流

一般情况下,服务器压力不大(cpu内存使用占比等低于50%),则不限流(保持正常);当需要限流时,执行限流策略,包括:

1、若服务器流量变大(cpu内存超过80%,api响应时间大于500ms),则触发redissentinel(哨兵)队列限流策略(将新进入的流量加入队列),但是服务器压力在设定时间(如30分钟)恢复正常并且redis队列里面没有数据,则取消限流策略。

2、若服务器流量变大,触发redissentinel队列限流策略,但是服务器压力在设定时间(如30分钟)没有恢复正常,则依然进行限流,如果redissentinel队列存储超过负载,则关闭多余请求,保护当前服务。



技术特征:

技术总结
本发明公开了一种基于Prometheus性能监控系统的服务器保护方法,包括以下步骤:步骤1:在目标服务器上安装Prometheus性能监控系统的软件包,通过Prometheus性能监控系统收集能够判断服务器性能的监控数据;步骤2:将收集到的目标服务器的监控数据进行存储;步骤3:将目标服务器的监控数据展示在对应的数据图表系统;步骤4:在数据图表系统中设置服务器限流的触发条件,并判断是否触发限流策略;步骤5:触发哨兵队列限流策略,对服务器进行限流。本发明方法自动化进行限制流量,提升了服务的稳定性,避免一些昂贵不需要的升级扩容,降低了人力成本,也节约了服务器资源。

技术研发人员:彭涛
受保护的技术使用者:成都知道创宇信息技术有限公司
技术研发日:2018.08.06
技术公布日:2018.11.30
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1