APP下载

基于zabbix数据源的自动化运维平台设计与实现

2019-09-10杨帅吴涛李超史超田伟

E动时尚·科学工程技术 2019年19期

杨帅 吴涛 李超 史超 田伟

摘 要:鉴于目前主流的zabbix等监控工具难以满足自动化运维实际需求,通过对zabbix监控数据源研究和zabbix-agent二次开发,完成监控数据收集,实现zabbix数据源调用、数据分析及可视化展示,从而构建一套满足运维个性化需求的自动化运维监控平台,实现软硬件资源监控和自动化巡检,为优化资源配置提供有力数据支撑,提升自动化运维管理水平。

关键词:zabbix数据源;自动化运维;可视化展示

1 引言

随着互联网用户业务规模的不断扩大,整个IT运维环境变得日益复杂,传统的被动、孤立、半自动式的运维手段已经无法满足运维人员实际运维需求,IT运维自动化已成为当前运维发展的大趋势。目前主流的开源自动化运维监控工具,如:zabbix、Nagios等,虽然可以满足基本的日常监控需求,但随着运维规模的不断扩大,运维设备种类不断增多,这些监控工具已无法满足日常运维工作的需求[1]。因此,亟需根据自身运维需求对现有的开源工具进行二次设计开发,构建一套满足运维需求的自动化运维监控平台,解决日常运维工作痛点、提高运维效率。

2 设计思路

基于zabbix监控数据将运维对象资源分配到相应的业务线使用,按照业务线进行软硬件资源配置和日常运维管理,从运维对象、业务线等不同维度对资源进行日常健康监控和分析,并进行报表数据可视化展示。同时,对软硬件资源运行状态进行监控并设置告警阈值,以运维监控资源数据为基础,结合整个运维流程,完成运维监控同自动化运维平台集成,实现自动化运维流程的全覆盖[2]。

本文针对自动化运维平台建设实际需求,整体分为基础数据监控、自动化运维平台程序及数据库两大部分。其中:基础数据监控通过利用zabbix-agent作为数据采集客户端,采用zabbix数据源提供基础监控数据;自动化运维平台程序及数据库基于Python 语言和Django框架进行主体程序设计开发,实现zabbix数据源数据的提取、整合计算,将分析处理后的数据存储至MySQL数据库为平台可视化展示提供数据支撑。

3 平台设计分析及实现

3.1 zabbix数据源分析

3.1.1 数据收集

通过zabbix server服务的采集进程完成zabbix agent 客户端对软硬件资源监控数据采集,并存储在zabbix数据库。同时,可根据用户个性化需求,通过数据采集脚本实现其它监控数据的采集[3]。

3.1.2 数据表结构分析

zabbix的数据源可通过MySQL、PostgreSQL、Oracle等数据库实现,下面以MySQL数据库为例对数据表结构进行分析设计。由于zabbix数据库中涉及众多表,而在实际应用中只需重点关注以下表即可,以下对表中的关键字段进行分析。

(1)hosts表

用于保存监控资源实例(包含模板等),主要记录如:IP、是否启用等信息,关注的字段为hostid、host和status。

(2)items表

用于保存所有监控项,主要包括监控项与主机对应关系、监控数据存储映射关系等。

(3)history表

与items表相关联,记录浮点型监控数据。当items表中value_type字段值为0时,监控数据记录于此表。

(4)history_uint表

与items表相关联,记录长整型监控数据。当items表中value_type字段值为3时,监控数据记录于此表中。

(5)trends表

记录浮点型趋势数据,每小时进行一次数据采集。当items表中value_type字段值为0时,趋势数据记录于此表中。

(6)trends_uint表

记录长整型趋势数据,每小时进行一次数据采集。当items表中value_type字段值为3时,趋势数据记录于此表中。

(7)triggers表

记录触发器和告警状态信息。

(8)functions表

与items、triggers表相关联。

3.1.3 表关系

通过对以上zabbix数据库表结构的分析,表关系主要为:通过items表将hosts表与history、history_uint、trends、trends_uint这四张表进行关联,实现监控数据和趋势数据的存储;同时,通过items表和functions表将hosts、triggers这两张表进行关联,实现触发器和告警信息的存储。

3.2 数据处理

本文在zabbix数据库表结构初始化基础上,结合平台设计需求,对表结构进行分析设计,构建数据库以满足自动化运维平台基础数据存储需求,为平台提供数据支撑。通过自动化运维平台的后台服务完成zabbix数据库中监控数据的抽取,采用数据分析处理算法对数据进行分析统计并前台展示,实现运维监控实际需求。以常用的“主机资源运行情况报表”为例对数据处理思路及过程进行分析。

首先,在hosts表中通过条件‘status=0’,筛选出被监控的主机资源信息,在items表中通过‘key_’字段筛选;其次,通过items表中的value_type字段值确认监控数据的存储表,由于主机资源运行情况报表统计频率为每天,可使用趋势表(trends表和trends_uint表)中的趋势数据进行统计;最后,通过hosts、items和trends(或trends_uint)这三张表进行联合查询,获取所需的监控数据。同时,将通过数据抽取得到的基础监控数据进行算法处理,如:加权平均、筛选最大最小值等整合处理,并将整合处理后的最终数据存储于自动化运维平台的数据库中。

4 结束语

本文对zabbix数据源涉及的表结构和表关系进行了分析设计,基于zabbix基础监控数据,结合运维监控实际需求完成数据整合处理,满足不同运维场景下的个性需求。通过对zabbix数据源的深入研究分析并进行二次设计开发,采用目前主流的自动化运维技术,构建了一套满足运维实际需求的自动化运维监控平台,提高了运维效率和运维管理水平。

参考文献

[1]龙炜.自动化运维工具在企业信息系统管理中的应用[J].微型机与应用,2017,36(05):102-104.

[2]陈正华.国网信息系统运维自动化平台的设计[J].工业仪表与自动化装置,2017(02):18-21.

[3]谢超群.基于Zabbix高校数据中心运维监控平台的建设研究[J].长春大学学报,2018,28(12):44-47.

作者简介

杨帅(1987-),男,运维工程师,现就职于国网电子商务有限公司,主要研究自动化运维技术及可视化应用等方向。

吴涛(1985-),男,工程师,现就职于国网电子商务有限公司,主要研究自动化运维技术及应用等方向。

李超(1989-),男,总监,现就职于国网电子商务有限公司,主要研究运维管理及自动化技术等方向。

史超(1988-),男,运维工程师,现就职于国网电子商务有限公司,主要研究自动化运维技术、数据库等方向。

田伟(1980-),男,运维工程师,现就职于国网电子商務有限公司,主要研究网络安全、自动化运维等方向。