开源运维监控系统介绍
监控系统功能介绍
监控系统的组成大体分为两个部分:数据采集部分(客户端)、数据存储分析告警展示部分(服务端)。
数据采集的工作模式可分为被动模式(服务端到客户端采集数据)和主动模式(客户端主动上报数据到服务端),被动模式对服务器的开销比较大,适合小规模的监控环境,主动模式对服务器的开销较小,适合大规模的监控环境。
采集数据的协议可分为两种,专用客户端采集和公用协议采集(SNMP、SSH、Telnet等);采集到的监控数据可存储于数据库、文本或其他方式,具体采用哪一种,应根据实际需求才决定。
规模较小,出于同一地域的环境,被监控的节点不多,产生的数据比较少,建议采用C/S(Client/Server,客户端/服务端)架构就足够了.
对于大规模的监控环境,被监控节点多,且监控类型多,监控产生的网络连接开心会非常巨大,而且由于跨地域等多种因素,需分布式解决方案,常见的方式为C/P/S(Client/Proxy/Server,客户端/代理端/服务端)架构,采用中间代理将大大提高监控服务端的处理速度,从而支持价格大型分布式监控的环境。
监控系统更重要的是告警和故障处理,这对及时处理问题和故障自愈非常重要,告警时,需考虑故障的有效汇报和集中汇报,防止出现"告警洪水",即同一类告警细心重复大量发送。
开源监控软件有哪些
在监控软件中,开源的解决方案分为流量监控(Cacti、MRTG、SmokePing、Graphite等)和性能告警(Nagios、Zabbix、 Prometheus、Zenoss、Core、Ganglia、OpenTSDB等),每款软件都有自己的特点和功能,各自的侧重点和目标不完全相同,但设计理念和实现方法大同小异,都具有共同特征,例如:采集数据、分析展示、告警及简单的故障自动处理,最终都能达到对IT系统服务可用性的一个完成展示,目前用得最多的必须是Zabbix和 Prometheus,下面将简单的介绍一下各款监控系统
MRTG
MRTG(Multi Router Traffic Grapher)是一套可用来绘图网络流量图的软件,数据采集用SNMP协议,MRTG将收集到的数据通过Web页面以GIF或 PNG格式绘制出图像,并以日、周、月为单位分别绘出,可以查询最大值和最小值,如下图所示:
SmokePing
SmokePing主要用于监控网络性能,包括常规的ping、www服务器性能、DNS查询性能、SSH性能等,底层也是用的RRDtool做支持,特点是绘制的图非常漂亮,网络丢包和延迟用颜色和阴影来表示,支持将多张图叠放在一起,如下图所示:
Graphite
Graphite是一款使用Python语言编写用于采集网站实时信息并进行统计的开源项目,Graphite服务支持平均每分钟4800次更新操作,简单的文本协议和绘图功能可以方便地使用在任何操作系统上。
Zenoss
Zenoss Core(简称Zenoss)是开源企业级IT管理软件,它允许IT管理员靠单一的web控制台来监控网络架构的状态和监控度.
Zenoss Core的强大功能来自深入的列表与配置管理数据库,用于发现和管理公司的IT环境的各类资产(包括服务器、网络和其他结构设备),Zenoss可以创建关键资产清单和对应的组件级别(接口、服务、进程、已安装的软件等).建立好模型后,Zenoss就可以监控和报告IT架构中格子资源的状态和性能状况了,同时还提供与CMDB关联的时间和错误管理系统,以协助和提高各类事件和提的管理效率,以此提高IT管理人员的效率.
Zenoss 采用SNMP来采集数据,其界面如下图所示:
Ganglia
Ganglia是一个跨平台、可扩展、高性能的分布式监控系统,如集群和网络,是基于分层设计,使用RRDtool存储数据,具有可视化界面,适合对集群系统的自动化监控,其监控端到被监控端的链接开销非常低,可以轻松处理2000个节点的集群环境,该软件部分监控截图如下图所示:
Zabbix
Zabbix是一个分布式监控系统,支持多种采集方式和采集客户端,支持SNMP、IPMI、JMX、Telnet、SSH等多种协议,他将采集到的数据存储在数据库汇总,然后对其进行分析整理,达到条件则触发告警,其灵活的扩展性和丰富的功能和是其他监控系统不能比的,它总体功能做得非常优秀,其界面如下图:
Zabbix具备上诉所介绍的所有监控软件功能,其具备丰富的功能、可扩展的能、二次开发的能力和简单易用的特点,Zabbix自身的定位是中型企业和大型企业,单个Server节点可以支持上万台设备,每秒可以处理1.5万次请求,理论上可以支持5万台设备.
Zabbix官方网站信息如下
Zabbix官网:https://www.zabbix.com/cn/
Zabbix是一个企业级的高度集成开源监控软件,提供分布式监控解决方案,可以监控设备、服务等的可用性和性能等,其产品是完全开放源代码,软件免费使用,服务收费.
Zabbix架构
Zabbix的通用架构是Client/Server架构,分布式为Client/Proxy/Server Client/Node/ServerZabbix-Server将采集到的数据持久存储在数据库中,前端web展示给用户。
Zabbix-Server的处理进程如下图所示:
Zabbix的运行流程
Zabbix的运行流程如下图所示:
Zabbix功能特性
Zabbix有常见的商业监控软件所具备的功能,如主机的性能监控、网络设备监控、数据库性能监控、SSH等通用协议监控,多种告警方式、详细的报表绘制、分布式、可扩展能、API等.
数据采集
可用、性能检测;
支持Agent SNMP(包括Trapping和Polling) IPMI 、JMX、 SSH、 Telnet等;
自定义检测;
自定义收集数据的频率;
服务端/代理端/客户端模式.
灵活触发器
可以自定义非常灵活的告警 阈值和多种告警相关联的条件
高度可定制的告警
发送通知,可定制包括告警级别、动作升级、收件人通知媒介;
通知可以使用全局宏变量和自定义的变量.
自动处理功能包括远程命令的自动调用和执行.
实时的绘图功能
监控项将数据实时绘制在图形上
Web监控能力
Zabbix可以模拟浏览器请求一个网站,并检测返回值和响应时间;
多种可视化展示
可以自定义监控的展示图,将多种监控数据集中展示到一张图中;
网络拓扑图;
自定义的Screens 和Slide shows可以将多种图形集中展示;
报表功能;
资源使用情况的监控展示;
历史数据存储
数据存储在数据库中;
历史数据的存放周期可配置;
定期删除过期的历史数据;
配置简单
配置比较简单,只需要以下两步即可;
第一步:添加设备;
第二步:应用模板即可完成监控;
使用模板
模板可以分组;
模板具有可继承性;
网络发现
支持自动发现网络设备和服务器(可通过配置自动发现服务规则实现);
Agent 自动注册;
支持自动发现(Low levi discovery)实现动态监控项的批量监控(支持自定义),内置自动发现包括文件系统、网络接口、SNMPOID,可以定制自动发现;
快速的访问接口
Web页访问基于PHP
远程访问
日志审计
API
应用AP功能可以方便地和其他系统结合,包括收集客户端的使用;
系统权限
不同的用户展示监控的资源不同;
对用户的身份认证;
程序特性
用C语言编写,其性能和内存开销非常小;
大型环境的支持
利用Zabbix-Proxy方式即可轻松构建远程监控