读书笔记-企业级分布式监控系统-概述

网友投稿 815 2022-09-30

读书笔记-企业级分布式监控系统-概述

读书笔记-企业级分布式监控系统-概述

一个监控系统的组成大体可以分为两个部分:数据采集部分(客户端)和数据存储分析告警展示部分(服务器端)。数据采集的工作模式可以分为被动模式(服务器端到客户端采集数据)和主动模式(客户端主动上报数据到服务器端)。采集数据的协议方式可分为:专用客户端采集和公用协议采集(SNMP、SSH、Telnet等)。

监控系统的开源软件现状

在监控软件中,开源的解决方案有流量监控(MRTG、Cacti、SmokePing、Graphite等)和性能告警(Nagios、Zabbix、Zenoss Core、Ganglia、OpenTSDB等)可供选择,并且每种软件都有自己的特点和功能,各自的侧重点和目标不完全相同,在设计理念和实现方法上也大同小异,但都具有共同特征。例如,采集数据、分析展示、告警以及简单的故障自动处理。

MRTG(Multi Router Traffic Grapher)是一套可用来绘制网络流量图的软件,由瑞士奥尔滕的Tobias Oetiker与Dave Rand所开发,以GPL授权。MRTG最早的版本是在1995年春推出的,用Perl语言写成,可跨平台使用,数据采集用SNMP协议,MRTG将收集到的数据通过Web页面以GIF或PNF格式绘制出图像,并以日、周、月为单位分别绘出,可以查询最大值和最小值。MRTG原本只能绘出网络设备的流量图,后来发展出了各种插件。因此,网络以外的设备也可由MRTG监控,例如,服务器的硬盘使用量、CPU的负载等。

Cacti是一套基于PHP、MySQL、SNMP和RRDtool开发的网络流量监测图形分析工具,它通过snmpget来获取数据,使用RRDtool绘图,但使用者无须了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、主机设备以及任何一张图,还可以与LDAP结合进行用户认证,同时也能自定义模板,在历史数据的展示监控方面,其功能相当不错。

SmokePing主要用于监视网络性能,包括常规的ping、WWW服务器性能、DNS查询性能、SSH性能等。底层也是用RRDtool做支持,特点是绘制的图非常漂亮,网络丢包和延迟用颜色和阴影来表示,支持将多张图叠放在一起。SmokePing的站点为:Core是开源企业级IT管理软件,它允许IT管理员依靠单一的Web控制台来监控网络架构的状态和健康度。Zenoss Core的强大功能来自深入的列表与配置管理数据库,用于发现和管理公司IT环境的各类资产(包括服务器、网络和其他结构设备)。Zenoss可以创建关键资产清单和对应的组件级别(接口、服务、进程、已安装的软件等)。建立好模型后,Zenoss就可以监控和报告IT架构中各种资源的状态和性能状况了。同时还提供与CMDB关联的事件和错误管理系统,以协助提高各类事件和提醒的管理效率,以此提高IT管理人员的效率。Zenoss Core采用SNMO来采集数据。

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

开源监控系统OpenTSDB用HBase存储所有时序(无须采样)的数据,来构建一个分布式、可伸缩的时序数据库。它支持秒级数据采集,支持永久存储可以做容量规划,并很容易地接入到现有的告警系统里。OpenTSDB可以从大规模的集群(包括集群中的网络设备、操作系统、应用程序)中获取相应的采集指标,并进行存储、索引和服务,从而使这些数据更容易让人理解,如Web化、图形化等。在对实际性要求比较高的场合,OpenTSDB是一个很好的选择。它支持秒级别的数据采集,这在其他监控系统中是无法想象的。因得益于其存储系统的选择,所以它支持大数据分析。

Zabbix是一个分布式监控系统,支持多种采集方式和采集客户端,有专用的Agent代理,也可以支持SNMP、IPMP、JMX、Telnet、SSH等多种协议,它将采集到的数据存放到数据库,然后对其进行分析整理,达到条件出发告警。

监控系统的原理探究

在一个监控系统中,构成要素为监控服务器端程序、数据存储、被采集节点等相关模块,其告警分析和自动故障处理功能由服务器端执行。在数据采集完成之后,需要对采集到的数据进行分析和处理,判断是否有异常,是否属于告警条件。告警条件如何设置呢?通常是根据实际的经验值、业务需求来设置告警阈值。

从工作模式来看,监控系统的数据采集可以分为两种:主动监控和被动监控。监控系统需要提供一个API,方便其他功能系统对监控数据进行操作管理。API一般分为RESTful、SOAP等形式,数据类型有JSON、XML等多种。

Zabbix简介

Zabbix SIA公司是Zabbix的官方技术团队成立的公司,其运作模式是商业软件的开源-软件的使用免费,服务收费。Zabbix是一个自由开放源代码的产品,用户可以对源代码进行任意修改和二次开发。Zabbix采用GNU General Public License(GPL) version 2开源协议。Zabbix-Agent完全支持Linux、UNIX、Windows、AIX、BSD和Solaris的监控,Server和Agent都采用C语言编码,对系统的资源占用非常小。

Zabbix的通用架构是Client/Server架构,分布式架构为Client/Proxy/Server或Client/Node/Server,Zabbix-Server将采集到的数据持久化到数据库中,用前端UI友好地展示给用户。

Zabbix的运行流程

数据收集:1.可用、性能检测 2.支持Agent、SNMP(包括Trapping和Polling)、IPMI、JMX、SSH、Telnet等 3. 自定义的检测 4. 自定义收集数据的频率 5. 服务器端/代理端和客户端模式

灵活的触发器:可以定义非常灵活的告警阈值和多种告警相关联的条件

高度可定制的告警:1.发送通知,可定制包括告警级别、动作升级、收件人和媒体类型 2. 通知可以使用全局宏变量和自定义的变量 4. 自动处理功能包括远程命令的自动调用和执行

实时的绘图功能:监控项将数据实时绘制在图形上

Web监控能力:Zabbix可以模拟浏览器请求一个网站,并检查返回值和响应时间

使用模板:模板可以分组,模板具有可继承性

网络发现:支持自动发现网络设备和服务器(可以通过配置自动发现服务规则实现),Agent自动注册,支持自动发现(Low level discovery)实现动态监控项的批量监控(支持自定义),内置的自动发现包括文件系统、网络接口、SNMP OID,可定制自动发现。

快速的访问接口:Web页面基于PHP,远程访问,日志审计

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:小程序回到顶部有哪两种方式
下一篇:springboot之Jpa通用接口及公共方法使用示例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~