Zookeeper实现集群和负载均衡---(4)Zabbix集成集群监控

1.前言
上一章描述了现有系统架构的详细方案,本章节主要描述集群监控描述。
2.Zabbix
  Zabbix是一个企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制)支持自动发现网络设备和服务器;支持分布式,能集中展示、管理分布式的监控点;扩展性强,server提供通用接口,可以自己开发完善各类监控。
 Zabbix支持多种网络方式下的监控,可通过分布式的方式部署和安装监控代理,整个架构如(图一、图二)所示。
 Zookeeper实现集群和负载均衡---(4)Zabbix集成集群监控_第1张图片
Zabbix的报警流程
Zookeeper实现集群和负载均衡---(4)Zabbix集成集群监控_第2张图片
Zabbix支持10多个类型的监控方式,内置23个监控模板,可以实现对服务器或网络设备的CPU、文件系统、内存、网卡、操作系统、性能、进程、系统安全、服务状态、网站性能等等这些基本模块进行监控。
除了这些我们能想得到的常见监控外,Zabbix也支持Zabbix Agent配置中通过“UserParameter”自定义的监控采集参数实现更多的监控项目。Zabbix也可以对支持JMX的程序的进行详细的监控。
从上面的介绍可以看出,通过Zabbix监控的配置结合自定义的监控脚本,Zabbix可以灵活的扩展到各种应用服务等做出全面的监控。
3.Zabbix集成方式
1. 自定义的监控采集参数
Zabbix Agent配置中通过“UserParameter”自定义的监控采集参数实现更多的监控项目。比如我们想对基于linux系统的Mysql服务进行监控室,我们除了通过内置的linux监控模板监控基本状态,我们可以通过对该台机器的Zabbix Agent配置中的“UserParameter”参数来定义自定义监控采集项。
2. 自定义JMX监控模板
Zabbix 2.0 已经将 JMX 监控加入了系统中,本身不再依赖第三方工具。这是得对 Tomcat 应用以及其他 Java 应用的监控更加简单。因此,Zabbix集成java程序的监控特别有优势。
3. 利用Zabbix文件监控特性
应用系统实现数据的采集,并将监控项数据写入文件,如judge.txt内。在测试主机的items中加入对应的监控项,监控项的属相如:Name为ZkConnectCunter,key为“vfs.file.regmatch[judge.txt,1]”,Interval位30。意思是每30秒去检测judge.txt内内容,若内容为1,则返回值为1,否则返回0,这样来判断应用系统的监控项,实现对应用系统监控项的自动监控。
4.Zabbix集成Zookeeper监控
Zookeeper 集群的运行状况是根据集群运行的各项指标决定的。Zookeeper监控系统实现的目的是获取监控指标数据,并检查数据是否异常,异常时触发报警,及时通知运维人员处理。
目前Zookeeper获取监控指标已知的有两种方式:
1、通过Zookeeper自带的 four letter words command 获取各种各样的监控指标。
2、通过JMX Client连接Zookeeer对外提供的MBean来 获取监控指标 (需要修改启动脚本,使其支持远程JMX连接)。
上述两种获取Zookeeper监控指标的结果都是一致的,调研Zabbix的结果可知,Zabbix显然支持Zookeeper监控指标两种获取方式。
其中,四字命令的监控方式,可以通过在Agent上自定义增加监控指标项,利用脚本获取数据,JMX监控方式,可以利用Zabbix集成JMX插件实现。
简单列举Zookeeper监控项:
集群单机自检
AliveServer/TotalServer 存活单机占比
ClusterServer State 集群单机状态
ClusterServer LatencyAvg 集群单机平均延迟
ClusterServer Connections 集群单机连接数
ClusterServer NodeCount集群节点目录数
ClusterServer ClientLatencyAvg集群节点客户端延迟
ClusterServer WatcherCount集群节点监听数
RegisterService State ZK服务中心注册服务状态
考虑到Zookeeper的监控项较多,如果使用自定义监控项实现,不利于扩展,数据的获取,特征值提取,报警设置等操作较为复杂,不利于扩展多台机器。Zookeeper支持JMX监控的特性促使我们使用JMX方式实现,监控便捷易于扩展。其中,集群自检无法通过JMX实现,需要自定义监控项实现。
因此,Zookeeper的监控可以使用JMX方式实现,获取数据,设置报警规则处理。

你可能感兴趣的:(负载均衡,zookeeper,集群,监控)