一篇文章全面了解监控知识体系
时间:2020-08-02 06:49 来源:未知 作者:admin 点击:次
前言介绍
监控是整个运维乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供详实的数据用于追查定位问题。 ps:本文内容较多,文章篇幅很长,可以先收藏,后续慢慢阅读。 作者介绍
徐亮伟,江湖人称标杆徐,曾负责大规模集群架构自动化运维工作。擅长自动化运维,并且在分布式、Python自动化、云计算虚拟化等领域有较深入研究。个人博客:徐亮伟架构师之路
感谢我的老师赵班长的中小企业监控体系构建实战才有了此篇文章的诞生。
0 监控目标我们先来了解什么是监控,监控的重要性以及监控的目标,当然每个人所在的行业不同、公司不同、业务不同、岗位不同、对监控的理解也不同,但是我们需要注意,监控是需要站在公司的业务角度去考虑,而不是针对某个监控技术的使用。 ![]()
1 监控方法既然我们了解到了监控的重要性、以及监控的目的,那么下面我们需要了解下监控有哪些方法。
![]()
1.了解监控对象:我们要监控的对象你是否了解呢?比如CPU到底是如何工作的? 2 监控核心我们了解了监控的方法、监控对象、性能指标、报警阈值定义、以及故障处理流程几步骤,当然我们更需要知道监控的核心是什么? ![]()
1.发现问题:当系统发生故障报警,我们会收到故障报警的信息 3 监控工具
下面我们需要选择一款合适公司业务的监控工具进行监控,这里我对监控工具进行了简单的分类
老牌监控: Grnglia是一个跨平台的、可扩展的、高性能的分布式监控系统,如集群和网格。它基于分层设计,使用广泛的技术,用RRDtool存储数据。具有可视化界面,适合对集群系统的自动化监控。其精心设计的数据结构和算法使得监控端到被监控端的连接开销非常低。目前已经有成千上万的集群正在使用这个监控系统,可以轻松的处理2000个节点的集群环境。
Cacti(英文含义为仙人掌)是一套基于PHP、MySQL、SNMP和RRDtool开发的网络流量监测图形分析工具,它通过snmpget来获取数据使用RRDtool绘图,但使用者无须了解RRDtool复杂的参数。提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、主机设备以及任何一张图,还可以与LDAP结合进行用户认证,同时也能自定义模板。在历史数据展示监控方面,其功能相当不错。
Nagios是一个企业级监控系统,可监控服务的运行状态和网络信息等,并能监视所指定的本地或远程主机状态以及服务,同时提供异常告警通知功能等。
Smokeping主要用于监视网络性能,包括常规的ping、www服务器性能、DNS查询性能、SSH性能等。底层也是用RRDtool做支持,特点是绘制图非常漂亮,网络丢包和延迟用颜色和阴影来标示,支持将多张图叠放在一起,其作者还开发了MRTG和RRDtll等工具。
开源监控系统OpenTSDB用Hbase存储所有时序(无须采样)的数据,来构建一个分布式、可伸缩的时间序列数据库。它支持秒级数据采集,支持永久存储,可以做容量规划,并很容易地接入到现有的告警系统里。 王牌监控
Zabbix是一个分布式监控系统,支持多种采集方式和采集客户端,有专用的Agent代理,也支持SNMP、IPMI、JMX、Telnet、SSH等多种协议,它将采集到的数据存放到数据库,然后对其进行分析整理,达到条件触发告警。其灵活的扩展性和丰富的功能是其他监控系统所不能比的。相对来说,它的总体功能做的非常优秀。 小米的监控系统:open-falcon。open-falcon的目标是做最开放、最好用的互联网企业级监控产品。 OWL是TalkingData公司推出的一款开源分布式监控系统OWLgithub地址 三方监控: 现在市场上有很多不错的第三方监控,比如:监控宝、监控易、听云、还有很多云厂商自带监控,但是在这里我们不打算着重介绍,如果想了解三方监控可自行上官网咨询。(避免说广告植入) 4 监控流程
上面介绍了这么多,那么到底选择什么监控工具最合适呢,我这里推荐几款开源监控工具:zabbix、Open-Falcon、LEPUS天兔(专用于监控数据库)。 ![]()
1.数据采集: Zabbix通过SNMP、Agent、ICMP、SSH、IPMI等对系统进行数据采集 5 监控指标我们上面了解了监控方法、目标、流程、也了解了监控有哪些工具,可能有人会疑惑,我们具体要监控写什么东西,那么我在这里进行了分类整理: 硬件监控 系统监控 应用监控 网络监控 流量分析 日志监控 安全监控 API监控 性能监控 业务监控
5.1 硬件监控早期我们通过机房巡检的方式,查看硬件设备灯光闪烁情况判断是否故障,这样非常浪费人力,并且是重复性无技术含量的工作,大家懂得。 ![]()
当然我们现在可以通过IPMI对硬件详细情况进行监控,并对CPU、内存、磁盘、温度、风扇、电压等设置报警设置报警阈值(自行对监控报警内容编写合理的报警范围) ![]()
IPMI工具无法获取到硬件的状态,可以借助MegaCli工具探测Raid磁盘队列状态 5.2 系统监控中小型企业基本全是Linux服务器,那么我们肯定是要监控起系统资源的使用情况,系统监控是监控体系的基础。 监控主要对象: ![]()
CPU有几个重要的概念:上下文切换、运行队列和使用率。
这也是我们CPU监控的几个重点指标。 针对CPU常用的工具有:htop、top、vmstat、mpstat、dstat、glances
zabbix提供系统监控模板:
![]()
![]()
内存:通常我们需要监控内存的使用率、SWAP使用率、同时可以通过zabbix描绘内存使用率的曲线图形发现某服务内存溢出等。 针对内存常用的工具有: free、top、vmstat、glances
![]()
IO分为磁盘IO和网络IO。除了在做性能调优我们要监控更详细的数据外,那么日常监控,只关注磁盘使用率、磁盘吞吐量、磁盘写入繁忙程度,网络也是监控网卡流量即可。 常用工具有:iostat、iotop、df、iftop、sar、glances ![]()
![]()
![]()
![]()
![]()
其它的系统监控还有运行的进程端口、进程数、登陆用户、Open File等(详细查看zabbix自带OS Linux模板) ![]()
5.3 应用监控
把硬件监控和系统监控研究明白后,我们进一步操作是需要登陆到服务器上查看服务器运行了哪些服务,都需要监控起来。
![]() ![]() ![]() ![]()
笔者之前写过服务监控详细的操作过程,这里就不一一展示,详情访问:zabbix监控各种应用服务
zabbix提供应用服务监控: 5.4 网络监控
作为一个针对全国用户的电商网站,时刻掌握各地到机房的网络状态也是必须的。 Smokeping 是rrdtool的作者Tobi Oetiker的作品,是用Perl写的,主要是监视网络性能,www 服务器性能,dns查询性能等,使用rrdtool绘图,而且支持分布式,直接从多个agent进行数据的汇总。 同时,由于自己监控点比较少,还可以借助很多商业的监控工具,比如监控宝、听云、基调、博瑞等。同时这些服务提供商还可以帮助你监控CDN的状态。
![]() ![]() ![]()
5.5 流量分析
网站流量分析对于运维人员来说,更是一门必须掌握的知识了。比如对于一家电商公司来说:
百度统计、google分析、站长工具等等,只需要在页面嵌入一个js即可。
![]() ![]()
5.6 日志监控通常情况下,随着系统的运行,操作系统会产生系统日志,应用程序会产生应用程序的访问日志、错误日志,运行日志,网络日志,我们可以使用ELK来进行日志监控。
对于日志监控来说,最见的需求就是收集、存储、查询、展示,开源社区正好有相对应的开源项目: 如果收集了日志信息,那么如果部署更新有异常出现,可以立即在kibana上看到。 ![]()
当然也可以通过Zabbix过滤错误日志来进行告警。 ![]()
5.7 安全监控虽然Linux开源的安全产品不少,比如四层iptables,七层WEB防护nginx+lua实现WAF,最后将相关的日志都收至Elkstack,通过图形化进行不同的攻击类型展示。但是始终是一件比较耗费时间,并且个人效果并不是很好。这个时候我们可以选择接入第三方服务厂商。 ![]() ![]() ![]()
三方厂商提供全面的漏洞库,涵盖服务、后门、数据库、配置检测、CGI、SMTP等多种类型 5.8 API监控
由于API变得越来越重要,很显然我们也需要这样的数据来分辨我们提供的 API是否能够正常运作。
![]() ![]()
5.9 性能监控
全面监控网页性能,DNS响应时间、HTTP建立连接时间、页面性能指数、响应时间、可用率、元素大小等 ![]() ![]() ![]()
![]()
第三方监控监控大盘。各类图表一目了然,全面体现网页性能健康状况。 5.10 业务监控没有业务指标监控的监控平台,不是一个完善的监控平台,通常在我们的监控系统中,必须将我们重要的业务指标进行监控,并设置阈值进行告警通知。比如电商行业:
每分钟产生多少订单, 6 监控报警故障报警通知的方式有很多种,当然我们最常用的还是短信,邮件 ![]()
7 报警处理
一般报警后我们故障如何处理,首先,我们可以通过告警升级机制先自动处理,比如nginx服务down了,可以设置告警升级自动启动nginx。 ![]()
8 面试监控在运维面试中,常常会被问题监控相关的问题,那么这个问题到底该如何来回答,我针对本文给大家提供了一个简单的回答思路。
1.硬件监控。 12.分布式监控 9 监控总结
真正想做到更完整的监控体系,目前的开源软件,确实无法很好的满足,有条件的公司都开始自己开发自己的监控系统,比如小米开源的Open-Falcon。
当然我说的还是很简单,经验有限、思路也仅能提供这么多。 如果觉得本文不错,可以对笔者进行赞赏。(你的赞赏就是我的动力) (责任编辑:admin) |
- 上一篇:有关视频监控系统方面的知识
- 下一篇:教你读懂安防监控必备“基础知识”