系统监控哲学

        在云原生环境下,监控是维护系统稳定的重中之重,确保系统运行在安全状态,在系统异常时候及时告警 甚至提前进行预警都至关重要。

        设计监控系统要涉及几个方面:

1.监控系统的选型,监控系统说是系统,做起来必须有监控agent,比如一个服务器集群或者一个容器集群,得要在分布的节点上面采集数据,这就需要利用agent将监控指标数据发给数据中心,agent一般可以看成一个定时器,定时或者实时上报数据,更新频率一定程度决定了告警速率。

 agent可以做个简单的agent,只用来接受配置和上传数据。或者让agent相互写作,具备相互调用,取得协作结果的能力,甚至把一个agent作为主节点或者控制节点,由其发起监控任务。

        另一种选型就是具备中央控制器,控制器可以批量下发监控任务,维护监控状态,解决数据异常,协调各个agent的工作,代价就是要确保agent与中央控制器的连接,存在保活的要求,而且数据通信与上报等功能要维护开发。

2、监控部署:

        监控部署也比较重要,在业务增长迅速,变化较大的时候重要,如果系统固定、部署需求没啥变化的话不用关心。

        部署的时候需要考虑环境依赖,比如依赖一些库,需要提前安装部署,然后就是部署安装需要考虑在离线环境,而且必要时可能要具备通用性,能够适配多种环境。

        另外一点就是部署安装的自动化,比如自动化配置环境,自动化安装代码,自动化运行,还需要考虑开机自启动和agent可能出现异常的情况。

3.监控更新:

        在监控有新功能或者修复以前bug的情况是需要更新的,更新主要考虑是否能够批量更新,另外更新是否具备版本号。

        然后更新的方式可以是替换代码文件,重启agent,在批量操作情况下,如何拉取所有需要更新agent的机器 和 如何并发快速更新以及获取更新结果很有必要。

4、阈值设置:

        监控往往还伴随指标设置,比如数据到达某个指标的时候需要考虑采取什么动作,这个指标的值就是阈值。阈值首先要保证能够变化,阈值的高低决定灵敏度和指标宽松程度。阈值其实是反应系统相对于常态的偏离程度。

        在大数据时代和ai时代,这个阈值可以是动态变化的 ,利用一些智能算法和统计学指标,可以标记异常,甚至提前预测异常。       

5、处理监控需求变动:

        最后一点需要考虑需求变动,监控的需求不会一成不变,往往会增加或者调整,这时候要设计一个比较通用的架构。比如一个监控任务可能是利用shell命令获取数据,这时候最好不要写死。只做固定一种命令,可以实现一个通用的架构:能够批量执行各种shell命令和拉取命令结果。这时候有新的任务,需要用新的shell命令去监控指标,这时候只需要做下微调,即可支持新任务,架构具备一定的通用性

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值