基于ZABBIX的高可用监控系统研究
2017-09-20张苗苗
张苗苗
摘 要 监控系统对于整个服务器集群、各种网络设备硬件设备都有重要作用。本文通过研究开源监控zabbix系统,搭建出一套自己的分布式监控系统,并解决分析中心处理服务器的单点故障问题。对zabbix做二次开发,添加特定监控项等功能。实现一套分布式、高可用、高可靠的监控系统。对于服务器等各种监控对象实现从发现到故障定义报警的自动化,提高监控运维工作自动化水平。
关键词 zabbix 高可用 自动化 监控系统
中图分类号:TP393 文献标识码:A
0 前言
在一个IT环境中,会存在各种各样的设备,包括软件设备与硬件設备,其组成也是非常复杂的。保证这些资源的正常运行,需要IT人员进行设计、架构、维护和调优。而掌握基础环境和业务应用系统的可用性,需要获取各个组件的运行状态,例如CPU的利用率、系统的负载、服务的运行、端口的连通、带宽流量、网站状态访问码信息。这些都离不开监控系统。
1 zabbix系统简介
Zabbix是一个基于WEB界面的分布式开源企业级自动化运维解决方案,能够监控各种网络设备、存储以及服务器系统应用的运行参数,可以提供灵活的报警机制使系统管理员快速定位到故障设备。其具有主动式监控、支持微信、电话、邮件等多维化报警功能、支持多种系统的异构平台、支持IP协议的设备均可监控、开源软件支持按需定向开发、支持脚本运行可实现自动化运维等特点。
一个监控系统的组成大致可以分为两部分:客户端的数据采集和服务端的数据存储分析和告警展示。Zabbix可以实现的功能有:数据收集,数据存储,报警功能,可视化界面等。
2采用的研究方法与技术路线
通过开源工具搭建分布式集群监控系统平台,其中包含监控中心处理节点以及其HA备份节点、数据存储节点、数据检测对象节点,实现数据的采集控制自动化处理。对故障类型以影响集群中节点的可用性的严重程度来进行分层划分。相对应得故障检测脚本、故障自动恢复脚本、故障日志记录、故障报警等都会根据故障类型的划分来做研究。
主要使用zabbix监控系统作为整个监控系统开发的平台,选用python语言作为二次开发的语言。在自动化配置方面,结合puppet自动化运维工具技术,实现部分功能的自动化配置。在高可用方面,采用pacemaker+corosync的技术解决容易出现的单节点故障问题。对于数据库mysql方面,对一些瓶颈做处理,优化数据库的性能。
3总体实施方案架构
本次方案使用开源监控系统Zabbix进行部署,监控对像主要划分为个人PC、应用服务等,应用服务器中主要分为数据库、浏览器、文件存储服务器。将Zabbix-server存储数据的数据库单独分离出来,避免数据库存储那里成为整个监控系统的瓶颈。对于监控中心处理服务器,也就是Zabbix-server,整个监控系统数据处理的核心添加高可用,解决单点故障问题。
PC端说明:PC端主要代表个人PC,例如windows、mac系统等,采集的监控项主要是主机的监控,例如CPU、内存、磁盘、网卡等。采用Zabbix-agent模式来采集数据。
应用服务器说明:应用服务器端主要是采集服务器相关的数据信息,包括基础服务器硬件性能的监控,还有其上运行的应用程序的监控,例如服务状态、请求数,并发连接数。数据库的事务数,死锁数等。还有其上的日志监控。同样也是采用Zabbix-agent模式来采集数据。
监控处理中心服务器说明:监控处理中心服务器作为整个监控系统的核心,负责接受agent发送的监控信息,设置监控项,监控告警定义,监控结构可视化的展示都在这个中心处理服务器上。因此如果其出现宕机,没有备用的资源时,会导致整个监控系统陷入瘫痪状态。因此在此处添加了高可用配置项,提高整个监控系统的高可用性。
存储服务器:由于Zabbix-server的处理数据都会放在同一个数据库中,包括得到的各种监控信息等,这会使数据库成为影响整个监控系统性能的一个瓶颈,因此将其单独分开存储,提高整个监控系统的处理效率。
4结语
本文所做的工作,主要是搭建一套高可用、高可靠、高效率的监控。通过采用开源工具Zabbix,结合其他工具实现对其二次开发。设计出了一套能够自动发现监控主机对象、自动添加监控项模板、自动采集监控信息,并能在达到阈值时自动进行报警的监控系统。并利用HA技术实现监控系统的高可用性。
参考文献
[1] 郑红强,王春露,王海峰,张天乐.基于 B/S 架构的智能交通信息系统监控平台的设计[J]. 电子设计工程, 2010(04): 44-47.
[2] 杨豪,吕海明.Zabbix 系统在联网视频监控平台中的应用[J]. 信息通信, 2014(10): 86-87.
[3] 李颂华,张大红.应用 ZABBIX 构建高校网络服务器监控系统[C]. 中国计算机用户协会网络应用分会 2008 年网络新技术与应用研讨会, 2008.
[4] J.O.Kephart and D.M.Chess,The Vision of Autonomic Computing,IEEE Computer,Vol.36,No.1,pp.41-50,Jan 2003.endprint