今日头条

十大话题榜
扫描二维码在手机上浏览

做了5年运维,靠着这份监控知识体系,我从3K酿成了40K(原创)

从来没讲过运维,因为我以为运维这种工具不需要太多的知识面,然后我一个做了运维朋侪告诉我大错特错,他就是从3K的运维一步步到40K的,甚至笑着说:我现在感受自己什么都能做。

既然讲,就讲最重要的吧。

监控是整个运维以致整个产物生命周期中最重要的一环,事前实时预警发现故障,事后提供详实的数据用于追查定位问题。现在业界有许多不错的开源产物可供选择。选择一款开源的监控系统,是一个省时省力、效率最高的方案。固然,对监控不是很明确的朋侪们,看了以下文章可能会对监控整个体系有比力深刻的认识。

一、监控目的

每小我私家由于所在的行业、公司、业务、岗位差别,对监控的明白也不尽相同,可是我们需要注意,监控是需要站在公司的业务角度去思量,而不是针对某个监控技术的使用。

对系统不中断的实时监控:实际上是对系统不中断的实时监控(这就是监控);

实时反馈系统当前状态:我们监控某个硬件、或者某个系统,都是需要能实时看到当前系统的状态,是正常、异常、或者故障。

保证服务可靠性宁静性:我们监控的目的就是要保证系统、服务、业务正常运行

保证业务连续稳定运行:如果我们的监控做得很完善,纵然泛起故障,能第一时间吸收到故障报警,在第一时间处置惩罚解决,从而保证业务连续性的稳定运行。

二、监控方法

1.相识监控工具:我们要监控的工具你是否相识呢?好比CPU到底是如何事情的?

2.性能基准指标:我们要监控这个工具的什么属性?好比CPU的使用率、负载、用户态、内核态、上下文切换。

3.报警阈值界说:怎么样才算是故障,要报警呢?好比CPU的负载到底几多算高,用户态、内核态划分跑几多算高?

4.故障处置惩罚流程:收到了故障报警,我们怎么处置惩罚呢?有什么更高效的处置惩罚流程吗?

三、监控焦点

发现问题:当系统发生故障报警,我们会收到故障报警的信息。

定位问题:故障邮件一般都市写某某主机故障、详细故障的内容,我们需要对报警内容举行分析。好比一台服务器连不上,我们就需要思量是网络问题、还是负载太高导致长时间无法毗连,又或者某开发触发了防火墙克制的相关计谋等,我们就需要去分析故障详细原因。

解决问题:固然我们相识到故障的原因后,就需要通过故障解决的优先级去解决该故障。

总结问题:当我们解决完重大故障后,需要对故障原因以及防范举行总结归纳,制止以后重复泛起。

四、监控工具

下面我们需要选择一款适合公司业务的监控工具举行监控,。这里我对监控工具举行了简朴的分类。

1、老牌监控

MRTG(Multi Route Trffic Grapher)是一套可用来绘制网络流量图的软件,由瑞士奥尔滕的Tobias Oetiker与Dave Rand所开发,以GPL授权。MRTG最好的版本是1995年推出的,用Perl语言写成,可跨平台使用,数据收罗用SNMP协议,MRTG将手机到的数据通过Web页面以GIF或者PNG花样绘制出图像。

Ganglia是一个跨平台的、可扩展的、高性能的漫衍式监控系统,如集群和网格。它基于分层设计,使用广泛的技术,用RRDtool存储数据。具有可视化界面,适合对集群系统的自动化监控。其经心设计的数据结构和算法使得监控端到被监控端的毗连开销很是低。现在已有成千上万的集群正在使用这个监控系统,可以轻松地处置惩罚2000个节点的集群情况。

Cacti(英文寄义为仙人掌)是一套基于PHP、MySQL、SNMP和RRDtool开发的网络流量监测图形分析工具,它通过snmpget来获取数据使用RRDtool绘图,但使用者无须相识RRDtool庞大的参数。提供了很是强大的数据和用户治理功效,可以指定每一个用户能检察树状结构、主机设备以及任何一张图,还可以与LDAP联合举行用户认证,同时也能自界说模板。在历史数据展示监控方面,其功效相当不错。Cacti通过添加模板,使差别设备的监控添加具有可复用性,而且具备可自界说绘图的功效,具有强大的运算能力(数据的叠加功效)

Nagios是一个企业级监控系统,可监控服务的运行状态和网络信息等,并能监视所指定的当地或远程主机状态以及服务,同时提供异常告警通知功效等。Nagios可运行在Linux和UNIX平台上。同时提供Web界面,以利便系统治理人员检察网络状态、种种系统问题、以及系统相关日志等。Nagios的功效偏重于监控服务的可用性,能凭据监控指标状态触发告警。现在Nagios也占领了一定的市场份额,不外Nagios并没有与时俱进,已经不能满足于多变的监控需求,架构的扩展性和使用的便捷性有待增强,其高级功效集成在商业版Nagios XI中。

Smokeping主要用于监视网络性能,包罗通例的ping、www服务器性能、DNS查询性能、SSH性能等。底层也是用RRDtool做支持,特点是绘制图很是漂亮,网络丢包和延迟用颜色和阴影来标示,支持将多张图叠放在一起,其作者还开发了MRTG和RRDtll等工具。 Smokeping的站点为:http://tobi.oetiker.cn/hp。

开源监控系统OpenTSDB用HBase存储所有时序(无须采样)的数据,来构建一个漫衍式、可伸缩的时间序列数据库。它支持秒级数据收罗,支持永久存储,可以做容量计划,并很容易地接入到现有的告警系统里。OpenTSDB可以从大规模的集群(包罗集群中的网络设备、操作系统、应用法式)中获取相应的收罗指标,并举行存储、索引和服务,从而使这些数据更容易让人明白,如Web化、图形化等。

2、王牌监控

Zabbix是一个漫衍式监控系统,支持多种收罗方式和收罗客户端,有专用的Agent署理,也支持SNMP、IPMI、JMX、Telnet、SSH等多种协议,它将收罗到的数据存放到数据库,然后对其举行分析整理,到达条件触发告警。其灵活的扩展性和富厚的功效是其他监控系统所不能比的。相对来说,它的总体功效做得很是优秀。从以上种种监控系统的对比来看,Zabbix都是具有优势的,其富厚的功效、可扩展的能力、二次开发的能力和简朴易用的特点,读者只要稍加学习,即可构建自己的监控系统。

小米的监控系统:Open-Falcon。Open-Falcon的目的是做最开放、最好用的互联网企业级监控产物。

3、三方监控

现在市场上有许多不错的第三方监控,好比:监控宝、监控易、听云、另有许多云厂商自带监控,但在这里我不计划着重先容,如果想相识三方监控可自行上官网咨询。(制止说广告植入)

五、监控流程

上面先容了这么多,到底选择什么监控工具最合适呢?我这里推荐几款开源监控工具:Zabbix、Open-Falcon、LEPUS天兔(专用于监控数据库)。但本文还是基于Zabbix来构建整个监控体系生态圈。 下面我们就来聊聊Zabbix的整个流程:

数据收罗:Zabbix通过SNMP、Agent、ICMP、SSH、IPMI等对系统举行数据收罗;

数据存储:Zabbix存储在MySQL上,也可以存储在其他数据库服务;

数据分析:当我们事后需要复盘分析故障时,Zabbix能给我们提供图形以实时间等相关信息,方面我们确定故障所在;

数据展示:Web界面展示、(移动APP、java_php开发一个Web界面也可以);

监控报警:电话报警、邮件报警、微信报警、短信报警、报警升级机制等(无论什么报警都可以);

报警处置惩罚:当吸收到报警,我们需要凭据故障的级别举行处置惩罚,好比:重要紧迫、重要不紧迫,等。凭据故障的级别,配合相关的人员举行快速处置惩罚。

六、监控指标

上面相识了监控方法、目的、流程、也相识了监控有哪些工具,可能有人会疑惑,我们详细要监控些什么工具,在这里我举行了分类整理,包罗硬件监控、系统监控、应用监控、网络监控、流量分析、日志监控、宁静监控、API监控、性能监控、业务监控。

1、硬件监控

早期我们通过机房巡检的方式,检察硬件设备灯光闪烁情况判断是否故障,这样很是浪费人力,而且是重复性无技术含量的事情,大家明白。

固然我们现在可以通过IPMI对硬件详细情况举行监控,并对CPU、内存、磁盘、温度、风扇、电压等设置报警设置报警阈值(自行对监控报警内容编写合理的报警规模) 。

IPMI监控硬件服务参考资料:Zabbix IPMI Interface

2、系统监控

中小型企业基本全是Linux服务器,那么我们肯定是要监控起系统资源的使用情况,系统监控是监控体系的基础。

监控主要工具:

CPU有几个重要的观点:上下文切换、运行行列和使用率。这也是我们CPU监控的几个重点指标。

通常情况,每个处置惩罚器的运行行列不要高于3,CPU 使用率中用“户态/内核态”比例维持在70/30,空闲状态维持在50%,上下文切换要凭据系统忙碌水平来综合考量。

针对CPU常用的工具有:htop、top、vmstat、mpstat、dstat、glances。Zabbix提供系统监控模板:Zabbix Agent Interface。

CPU整体状态

上下文切换

负载状态

内存:通常我们需要监控内存的使用率、SWAP使用率、同时可以通过Zabbix描绘内存使用率的曲线图形发现某服务内存溢出等。

针对内存常用的工具有:free、top、vmstat、glances。

内存使用率

IO分为磁盘IO和网络IO。除了在做性能调优我们要监控更详细的数据外,日常监控只关注磁盘使用率、磁盘吞吐量、磁盘写入忙碌水平,网络也是监控网卡流量即可。常用工具有:iostat、iotop、df、iftop、sar、glances。

磁盘使用率

磁盘读/写吞吐

网卡收支口流量

TCP11种状态信息

其它系统监控另有运行的历程端口、历程数、登陆用户、Open File等(详细检察Zabbix自带OS Linux模板)。

其它相关监控

3、应用监控

把硬件监控和系统监控研究明确后,我们进一步操作是需要登陆到服务器上检察服务器运行了哪些服务,都需要监控起来。

应用服务监控也是监控体系中比力重要的内容,例如:LVS、HAProxy、Docker、Nginx、PHP、Memcached、Redis、MySQL、RabbitMQ等,相关的服务都需要使用zabbix监控起来。

nginx_status

PHP-FPM_status

Redis_status

JVM监控

笔者之前写过服务监控详细的操作历程,这里就纷歧一展示,详情会见:Zabbix监控种种应用服务。

Zabbix提供应用服务监控:Zabbix Agent UserParameter

Zabbix提供的Java监控:Zabbix JMX Interface

Percona提供MySQL数据库监控:percona-monitoring-plulgins

4、网络监控

作为一个针对全国用户的电商网站,时刻掌握各地到机房的网络状态也是必须的。

网络监控是我们构建监控平台是必须要思量的,尤其是针对有多个机房的场景,各个机房之间的网络状态,机房和全国各地的网络状态都是我们需要重点关注的工具,那如何掌握这些状态信息呢?我们需要借助于网络监控工具Smokeping。

Smokeping 是rrdtool的作者Tobi Oetiker的作品,是用Perl写的,主要是监视网络性能,www服务器性能,DNS查询性能等,使用rrdtool绘图,而且支持漫衍式,直接从多个agent举行数据的汇总。

同时,由于自己监控点比力少,还可以借助许多商业的监控工具,好比监控宝、基调、博瑞等。同时这些服务提供商还可以资助你监控CDN的状态。

监控宝

5、流量分析

网站流量分析对于运维人员来说,更是一门必须掌握的知识了。好比对于一家电商公司来说:通过对订单泉源的统计和分析,可以相识我们在某个网站上的广告投入有没有收到预期的效果。 可以区分差别地域的会见人数、甚至商品生意业务额等。百度统计、Google分析、站长工具等,只需要在页面嵌入一个js即可。

可是,数据始终是在对方手中,个性化定制不利便,于是Google出一个叫Piwik的开源分析工具。

piwik

百度统计

6、日志监控

通常情况下,随着系统的运行,操作系统会发生系统日志,应用法式会发生应用法式的会见日志、错误日志,运行日志,网络日志,我们可以使用ELK来举行日志监控。

对于日志监控来说,最见的需求就是收集、存储、查询、展示,开源社区正好有相对应的开源项目:Logstash(收集)+ElasticSearch(存储+搜索)+Kibana(展示)。

我们将这三个组合起来的技术称之为ELK Stack,所以说ELK Stack指的是Elasticsearch、Logstash、Kibana技术栈的联合。

如果收集了日志信息,部署更新有异常泛起,可以立刻在Kibana上看到。

ELK日志展示

固然也可以通过Zabbix过滤错误日志来举行告警。

Zabbix日志展示

7、宁静监控

虽然Linux开源的宁静产物不少,好比四层iptables,七层WEB防护Nginx+Lua实现WAF,最后将相关的日志都收至ELkstack,通过图形化举行差别的攻击类型展示。可是始终是一件比力泯灭时间,而且小我私家效果并不是很好。这个时候我们可以选择接入第三方服务厂商。

某某三方宁静

三方厂商提供全面的毛病库,涵盖服务、后门、数据库、设置检测、CGI、SMTP等多种类型。

全面检测主机、Web应用毛病自主挖掘和行业共享相联合第一时间更新0-day毛病,杜绝最新宁静隐患。

8、API监控

由于API变得越来越重要,很显然我们也需要这样的数据来分辨我们提供的 API是否能够正常运作。

监控API接口GET、POST、PUT、DELETE、HEAD、OPTIONS的请求。可用性、正确性、响应时间为三大重性能指标。

API监控

三方API监控

响应时间

9、性能监控

全面监控网页性能,DNS响应时间、HTTP建设毗连时间、页面性能指数、响应时间、可用率、元素巨细等。Zabbix提供URL监控:Zabbix Web 监控。

Zabbix站点监控

终端响应时间

第三方监控监控大盘。各种图表一目了然,全面体现网页性能康健状况。

10、业务监控

没有业务指标监控的监控平台,不是一个完善的监控平台,通常在我们的监控系统中,必须将我们重要的业务指标举行监控,并设置阈值举行告警通知。好比电商行业:

每分钟发生几多订单、每分钟注册几多用户、天天有几多活跃用户、天天有几多推广运动、推广运动引入几多用户、推广运动引入几多流量、推广运动引入几多利润等,重要指标都可以加入Zabbix上,然后通过Screen展示。

注:由于业务监控图表,涉及到隐私的数据太多,就不截图了。

七、监控报警

故障报警通知的方式有许多种,固然最常用的还是短信和邮件。

短信报警

邮件报警

八、报警处置惩罚

一般报警后故障如那边理,首先我们可以通过告警升级机制先自动处置惩罚,好比Nginx服务down了,可以设置告警升级自动启动Nginx。

可是如果一般业务泛起了严重故障,我们通常凭据故障的级别、业务,来指派差别的运维人员举行处置惩罚。

固然差别业务形态、差别架构、差别服务可能接纳的方式都差别,这个没有一个牢固的模式套用。

九、面试监控

在运维面试中,经常会被问题监控相关的问题,这个问题到底该如何往返答,我针对本文给大家提供了一个简朴的回覆思路

1、硬件监控

通过SNMP来举行路由器交流机的监控(这些可以跟一些厂商相同来相识如何做)、服务器的温度以及其它,可以通过IPMI来实现。固然如果没有硬件全都是云,直接跳过这一步骤。

2、系统监控

如CPU的负载,上下文切换、内存使用率、磁盘读写、磁盘使用率、磁盘inode使用率。固然这些都是需要设置触发器,因为默认太低会频繁报警。

3、服务监控

好比公司用的LNMP架构,Nginx自带Status模块、PHP也有相关的Status、MySQL的话可以通过Percona官方工具来举行监控。Redis这些通过自身的info获取信息举行过滤等。方法都类似。要么服务自带。要么通过剧本来实现想监控的内容,以及报警和图形功效。

4、网络监控

如果是云主机又不是跨机房,那么可以选择不监控网络。固然你说我们是跨机房以及如何如何,推荐使用smokeping来做网络相关的监控,或者直接交给你们的网络工程师来做,因为术业有专攻。

5、宁静监控

如果是云主机可以思量使用自带的宁静防护。固然也可以使用iptables。如果是硬件,那么推荐使用硬件防火墙。使用云可以购置防DDOS,制止泛起故障导致down机一天。如果是系统,那么权限、密码、备份、恢复等基础方案要做好。Web同时也可以使用Nginx+Lua来实现一个Web层面的防火墙。固然也可以使用集成好的OpenResty。

6、Web监控

Web监控的话题其实还是许多。好比可以使用自带的Web监控来监控页面相关的延迟、js响应时间、下载时间、等等。这里我推荐使用专业的商业软件监控宝或听云来实现。究竟人家全国各地都有机房(如果自己是多机房那就另说了)。

7、日志监控

如果是Web的话可以使用监控Nginx的50x、40x的错误日志,PHP的ERROR日志。其实这些需求无非是,收集、存储、查询、展示,我们其实可以使用开源的ELKStack来实现。Logstash(收集)、Elasticsearch(存储+搜索)、Kibana(展示)。

8、业务监控

上面做了那么多,其实最终还是保证业务的运行。这样我们做的监控才有意义。所以业务层面这块的监控需要和开发以及总监开会讨论,监控比力重要的业务指标,(需要开会确认)然后通过简朴的剧本就可以实现,最后设置触发器即可 。

9、流量分析

平时我们分析日志都是拿awk sed xxx一堆工具来实现。这样对我们统计IP、PV、UV不是很利便。那么可以使用百度统计、Google统计、商业,让开发嵌入代码即可。为了制止隐私也可以使用Piwik来做相关的流量分析。

10、可视化

通过Screen以及引入一些第三方的库来美化界面,同时我们也需要知道,订单量突然增加、突然淘汰。或者说突然来了一大波流量,这流量从哪儿来,是不是推广了,还是被攻击了。可以联合监控平来梳理各个系统之间的业务关系。

11、自动化监控

如上我们做了那么多的事情,固然不能是一台一台的来加key实现。可以通过Zabbix的主动模式以及被动模式来实现。固然最好还是通过API来实现。

总结

真正想做到更完整的监控体系,现在的开源软件确实无法很好地满足,有条件的公司都开始自己开发自己的监控系统,好比小米开源的Open-Falcon。

也有比力好的开源的监控框架如Sensu等,再加上InfluxDB、Grafana可以用来定制切合自己企业的监控平台。

赞 0 打赏
0
分享海报
版权声明
未经允许不得转载:
文章地址:汇美优普-热门搜索话题榜 » 做了5年运维,靠着这份监控知识体系,我从3K酿成了40K(原创)

评论 抢沙发

评论前必须登录!

 

图片正在生成中,请稍后...

周日

05/31

做了5年运维,靠着这份监控知识体系,我从3K酿成了40K(原创)

从来没讲过运维,因为我以为运维这种工具不需要太多的知识面,然后我一个做了运维朋侪告诉我大错特错,他就是从3K的运维一步步到40K的,甚至笑着说:我现在感受自己什么都能做。

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

登录

记住我

注册