前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >聊聊监控系统

聊聊监控系统

作者头像
SRE运维实践
发布2019-07-08 12:21:17
2.4K0
发布2019-07-08 12:21:17
举报
文章被收录于专栏:SRE运维实践SRE运维实践

1、 为什么需要监控系统

作为运维者,第一个接触的基本上是监控平台,各种各样的监控,看各种各样的指标,好像没有监控就觉得不正常,那么为什么需要监控呢?

监控:预防故障,例如当磁盘空间增长到一定的程度的时候,就会产生故障,这个时候监控系统的作用就是当达到一个阀值的时候,发出告警,然后进行处理。

监控:预测变化趋势,例如我的分布式文件系统,每天数据增长1T空间,那么我总共有多少空间,剩余空间大小,是否要进行扩容等操作。

监控:当故障发生的时候,能提供给我基本信息给与我排查的思路,例如redis不可读,是否能看到是哪个实例,能看到相关的日志信息,能测试是否刻读写,能查看哪个是master。

监控:监控系统关键指标,例如对于web服务器来说,响应速度,来判断是否中间件有问题,是否数据库有问题,还是网络有问题;活跃的用户数,每天我的网站有多少用户访问;有多少新注册的用户。

2、 如何选择监控系统

看过好多监控系统,各种各样的公司使用的监控系统各不一样,有的用nagios,有的用zabbix,有的自研,so much more choice。。。

选择监控系统的时候,无非是需要几个特性的支持:

是否支持多主机监控,例如监控一个分布式系统的集群;

是否支持多维度的数据分析,例如一个主机上有多少个容器,一个主机上容器总共使用了多少内存,每个容器又使用了多少内存;

是否支持各种各样的告警方式,设置一个阀值,可以声音告警,可以颜色告警,可以邮件通知,可以短信通知,可以短信通知,可以电话通知

是否支持告警过滤或者屏蔽,当一个告警是相同的时候,充斥着大量的告警,平台是否支持暂时忽略,或者只通知几次,后面在界面上显示告警的内容,开始发生的时间,发生的次数;

3、 告警系统的优化

当一个告警系统每天发出的告警数量超过10条,是不是应该优化?这个主要看运维的人数,如果每个告警都需要人工进行干涉,那么这个告警数量可能过多,要么优化运维的系统,要么把开发加入运维的团队中进行on call。

当一个告警系统每天发出的误报数量在5条以上,如何优化?如果是正常的动作导致,那就不应该告警,例如在进行发布应用的时候,一个port down,这种告警就不应该发生,应该做到自动屏蔽。

当一个告警系统发出了迷惑性的告警,何为迷惑性,就是监控平台发出了告警,但是却找不到明确的错误信息,那么这种告警必须进行优化,在告警的时候,应该给出具体的报错信息,总是有人喜欢自定义告警,然后不给出本来的报错信息,非要进行封装一层。。。。自作聪明。。。从现象直接能看到本质问题,这种告警平台是最好的。

4、 容器的监控

对于一个容器系统,我需要监控哪些指标?

宿主机的负载,内存,CPU,磁盘,网络;

容器数量,容器的运行状态,容器的使用的内存,进程,cpu,网络,磁盘;

其实,当你使用了k8s管理平台之后,可能你会发现,这种监控可能没有太大的含义。。。

当使用了这种重量级的管理平台之后,都是有自愈功能的。。。。就是当一个容器里面运行着java进程,OOM被杀之后,k8s的管理平台会自己再次创建一个容器,自动进行dns解析,自动进行负载均衡,自动进行服务。。。self-healing。。。金刚狼的能力。。。

分析OOM,那是媛们的事情。。。这个时候,运维在干啥,无须进行人工干涉,传统运维都是出现OOM,手动重启下java进程,现在。。。。运维平台自己干活了。。

期望状态?你期望服务是什么状态,它会自动进行调度到最终的状态。。。你要几个副本进行负载均衡,就给你几个。

你要进行升级,自动rolling进行更行,先创建一个高版本的镜像,然后删除一个实例容器,负载均衡加入轮询。。。怕发布的时候中断服务?那是不可能的,7*24。。so easy。。。

要进行扩容,都不需要手动进行处理,可以根据流量自己进行判断,流量太高了,就自动进行创建容器,进行负载均衡。。。。流量降低了,自动销毁容器,进行负载均衡。。。

对于这种能自我管理的应用或者服务,还需要监控么。。。。

充其量。。。只要做好响应的规划就好了,给你多少内存,给你多少CPU,给你多少磁盘,偶尔看看增长趋势。。。。so。。。

但是。。。在出现故障的时候,还是需要告警平台。。。

适用的场景不同,从而选择不同,当你需要一个能使用shell直接连接的时候,监控工具weavescope,很是漂亮。。。

当你需要进行多纬数据分析的时候,并且设定阀值,自动进行告警的时候,那么prometheus还是很酷的。

5、 IAAS的监控

在很多的时候,构建一个IAAS平台,一种自我测试的监控系统,那是相当酷的。。。我喜欢

何为自我测试呢?

例如构建了分布式的文件系统,相隔几分钟,自己上传一个文件,访问文件,删除文件,如果这个测试能通过,那么表示基础设施完全正常。

例如构建一个DAAS,数据库即服务,那么相隔几分钟,自己创建一个mysql的master和slave,然后写入数据,HA切换,然后删除,如果这个测试能通过,那么表示基础服务完全正常。

这种思想还是极好的。

监控平台如何构建?不想大段的论述了,据我所知,python。。。提供各种各样的restful API,然后在前台界面中进行各种各样的接口调用就好了,其实就是拆。。。将原来的一个功能,分拆为很多很多接口,定义endpoint就好了,其实这种正好切合了容器的微服务思想。。。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SRE运维实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档