北京白癜风医院哪家最好 http://m.39.net/news/ylzx/bjzkhbzy/2.从上到下思考整个架构
这里包含下面几个问题
什么系统需要监控
使用什么软件来监控
监控软件应该使用怎样的结构才能满足要求
常见的监控指标
性能调优
2.1.什么系统需要监控一般来说,运维工程师常见的,需要被监控的系统有
物理机:这里面有两个部分,一个是操作系统,一个是管理控制台(HP-ILO,IBMPC-AMM,IBM小型机-HMC)
虚拟机:有三个部分,一个是虚拟出来的Host,一个是hypervisor的软件(比如vmware-vSphere,redhat-ovirt),最后同样需要监控管理控制台
公有云主机:基本上每个公有云供应商都会提供一套监控,但是略微有差别,比如AWS默认是不会在系统中装agent的,所以如果不手动安装agent,监控的指标是有限的,但是像阿里云,默认是在系统中装agent的,所以监控指标比较全面
存储设备:如果是使用分布式存储,比如ceph之类的,可以按照监控主机和监控应用一样来对待。如果使用的是存储设备,比如3PAR,HPE或者IBM-DS之类的存储,那么就需要在选购存储的时候,把监控的问题考虑进去,因为存储其实是一个定制化的操作系统带一些特殊的raid卡,然后插满磁盘组成的,所以操作系统上可不可以安装agent或者是不是能暴露一些metrics就成了监控的关键。
网络设备:一般来说,网络设备是无法安装agent的,我们想要监控就需要使用snmp协议对网络设备进行监控,当然,也有一些高端设备是自带监控api的,可以使用一些软件去采集。
容器/编排工具的监控:对于这种动态的系统,我们监控的时候就需要考虑到我们的监控系统也应该是适用于动态环境下的监控。pod是随时销毁和创建的,如果我们手动安装agent,那么这对于运维来说,绝对是最痛苦的。
工具的监控:这里说的主要是指公司内部的系统,比如DevOps系统(jenkins,gitlab,harbor)和办公系统(Sap系统,office系统,邮件系统)
应用的监控:这应该是最难的一部分,这涉及到了4个黄金指标中的3项,延迟,错误率,流量。延迟是说系统的响应速度,错误率是说响应的错误率,流量是说QPS之类的逻辑指标。
2.2.需要什么软件来监控这一部分其实是最能体现工程师的水平的,没有一款开源软件是适合所有场景的,如果我们不想自己开发,那么可能在整个的系统中会用到非常多的监控。但是,首先我们先要了解为什么使用它。就好像你要求找老板申请budget,老板一定会问你why?如果想要你的方案被采纳,就一定要告诉别人way!这其中我做了下面几个场景的总结。
从网络来说,我们把软件分为pull和push模型,也就是服务器是主动找目标要资源,还是说目标主动把资源送过来。因为我们的生产环境基本都有防火墙,所以如果想使用pull的模式,就需要在防火墙上开端口。如果不开端口,我们可以考虑push的模式,让目标主动汇报自己的情况。但是这又有了另外一个问题,如果目标节点挂了,它就没办法push了,而一般的系统为了防止误报,都会有多次的重试,这样就会导致问题发现的不及时。
从协议来说,我们分为有agent和无agent的模型。有agent的,又分为