基于Zabbix的内网编辑系统监控应用研究

2018-08-17 07:27邵建辉
中国传媒科技 2018年7期
关键词:触发器报警服务器

文/邵建辉

引言

服务器是当今计算机网络体系中的核心部分,其可用性和性能是决定关键业务能否顺利运行的重要因素。在新闻编辑系统中,服务器的安全稳定运行是新闻稿件编发业务正常开展的前提和基础之一,如何在一定规模的内网编辑系统中实时了解各个服务器的运行状态,同时查看历史运行状态和趋势,提前了解运行中存在的问题,以采取有效的处理措施,为系统安全运行提供保障。因此,使用专用服务器监控软件无疑是很好的选择,目前,类似编辑业务系统使用的监控软件只具备实时监控功能,无数据库存储,无法查看历史运行状态和趋势,为此本文基于Zabbix开展了内网编辑系统监控应用研究,借助于该软件系统,我们可以轻易地实现以上的要求,减轻我们繁重的服务器管理任务,提前预判可能存在的问题,进而采取措施,实现业务系统的持续运行。

1.Zabbix简介

Zabbix是一个基于WEB界面的分布式开源企业级自动化运维解决方案,能够监控各种网络设备、存储以及服务器系统应用的运行参数,可以提供灵活的报警机制,使系统管理员快速定位到故障设备,其还具有主动式监控、支持微信、电话、邮件等多维化报警功能,支持多种系统的异构平台、支持IP协议的设备均可监控、开源软件支持按需定向开发、支持脚本运行可实现自动化运维等特点,因此得到各大互联网公司的广泛认可和应用。

1.1 Zabbix架构及运行

根据网络环境、监控规模,Zabbix主要可分三种架构:server-client、master-node-client 和 server-proxy-client。本文采用server-client架构,server-client架构是Zabbix的最简单的架构,监控机和被监控机之间不经过任何代理,直接由Zabbix server和Zabbix agentd之间进行数据交互,适用于网络比较简单,设备比较少的监控环境。

Zabbix server安装在监控服务器上,通过C/S模式采集数据,并将历史数据存储在数据库(MySQL,ORACLE等)中,以web方式显示数据和配置系统。可以通过SNMP、Zabbix agent、ping、端口监视等方法提供对远程服务器/网络状态进行监控和数据收集等功能,它可以运 行 在 Linux、Solaris、HP-UX、AIX、Free BSD、Open BSD、OS X等平台上。

Zabbix agent安装在被监视的目标服务器上,主要完成对硬件信息、系统性能、文件系统、应用系统和网络等信息的收集。Zabbix agent收集数据分为主动和被动两种模式。

1.1.1 主动模式

agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server。

1.1.2 被动模式

server向agent请求获取监控项的数据,agent返回数据。

1.2 Zabbix监控报警流程

Zabbix监控报警由如下组成部分:Item(监控项)、Trigger(触发器)、Action(动作)、Media(报警介质)、User(用户)、Event(事件)等。Item为监控采集的项目,可以使用Zabbix内建的item,也可以通过在conf文件里增加UserParameter自定义,建立用户自己的监控项;Trigger为报警触发器,将采集来的item值进行一定的判断,产生具有一定报警等级的事件;Action就是server对事件(Event)需要做相应的措施,而Action的方式是由Media来决定,Media有五种,常见的是mail、sms、script这三种。

一个完整的监控报警流程如下:server通过agent定时获取Item(监控项)数据,Trigger(触发器)根据定义的触发设置进行判断,如果满足触发条件,产生具相应报警等级(分为灾难、严重、一般严重、警告、消息五个等级)的事件,并以定义的媒介通知定义的用户,等待用户确认处理。

2.内网编辑系统监控应用

2.1 Zabbix安装部署

根据内网编辑系统服务器数量规模,监控系统采用server-client架构,直接由Zabbix server和Zabbix agentd之间进行数据交互,Zabbix agent收集数据采用被动模式,即server向agent请求获取监控项数据。

服务器端安装:①安装PHP运行环境;②安装数据库支持,如MySQL;③创建服务器端的Zabbix系统帐号;④下载Zabbix源代码,在Linux下编译安装服务器端。由于在内网中,通过源码编译安装,Zabbix server选择3.0TLS版(最新版本为3.0.19),操作系统选Cenos7.5。

客户端安装:根据被监控的服务器的操作系统类型选择不同的Zabbix agent客户端并安装。Windows服务器直接安装64位可执行文件;Linux服务器采用源码编译安装。

2.2 创建监控项

根据内网编辑系统业务梳理,监控项主要分为文件系统、系统性能、应用进程、稿件目录、网络状态、web监控等主项,具体如表1所示。

表1 内网编辑系统监控项

(1)文件系统监控主要监控服务器磁盘空间的使用状况,监控项的KEY值设置为:vfs.fs.size[磁盘,pused],返回值为磁盘使用百分比。

(2)系统性能监控主要监控服务器的CPU使用和内存可用情况,监控项的KEY值设置为:system.cpu.load[,avg1]和 vm.memory.size[available],返回值分别为CPU使用平均百分比和内存可用字节。

(3)应用进程监控主要监控服务器各应用进程运行状态,监控项的KEY值设置为:proc.num[,,,应用进程名],返回值为该应用进程运行个数。

(4)稿件目录监控主要监控接收或发送稿件处理状态,分为目录为空检查和目录超时检查。目录超时检查项的KEY值设置为:vfs.file.time[文件目录路径],返回值为Unix时间戳,单位为秒;目录为空检查项的KEY,Zabbix内建KEY不能实现,必须定制,定制方法如下:

修改Agent端的服务器的zabbix_agentd.conf配置文件,设置UnsafeUserParameters=1,增加UserParameter=user.filecount[*],ls -l “$1” |grep “^-”|wc -l;在 Server端设置目录为空检查项的自定义KEY值为:user.filecount[文件目录路径],返回值为被监控文件目录下文件个数。

2.3 创建触发器

一般触发器设置格式为:{:.)},内网编辑系统监控触发器设置如下:

(1)文件系统监控触发器:{服务器名:vfs.fs.size[磁盘,pused].last(0)}>80,设置磁盘使用率大于80%报警,报警级别严重。

(2)系统性能监控触发器:{服务器名:system.cpu.load[/,avg1].last(0)}>80,设置CPU平均使用率大于80%报警,报警级别严重;{服务器名:vm.memory.size[available].last(0)}<1,设置内存可用空间小于1Gb报警,报警级别严重。

(3)应用进程监控触发器:{服务器名:proc.num[,,,应用进程名].last(0)}<>1,设置进程数量不为1则报警,报警级别严重。

(4)稿件目录监控触发器:{服务器名:user.filecount[文件目录路径].min(10m)}>0,设置10分钟内目录为空则报警,报警级别一般严重;{服务器名:vfs.file.time[文件目录路径].fuzzytime(1h)}=0,设置目录超时1小时无更新则报警,报警级别严重。

(5)网络状态和web监控使用系统默认值,当服务器PING不通或web页面返回错误时报警。

2.4 设置图形监控界面

根据设置的监控项内容,可设置图形化监控界面,并进行聚合,便于直观地查看历史监控状态和未来趋势,配合合理有效的触发器设置,可提前发现问题端倪。本文图形监控界面示例如下。

图1 Zabbix图形监控界

结语

本文通过采用开源工具Zabbix,在内网编辑系统部署搭建了一套分布式、高效、可视化的监控系统,减轻了繁重的服务器管理任务,并经过用户定制,添加自定义监控项,完成对内网编辑系统服务器上关键应用进程、稿件目录和出入库状态等监控,可通过Web查看整个系统中服务器的当前运行情况和历史运行记录,为系统管理员提供实时的判断依据,也可提前预判可能存在的问题,进而采取措施,对保障内网编辑系统的正常运行具有重要意义。

猜你喜欢
触发器报警服务器
浅谈时序逻辑电路的成长记忆
服务器组功能的使用
通信控制服务器(CCS)维护终端的设计与实现
PowerTCP Server Tool
触发器在酒店管理系统中的应用
LKD2-HS型列控中心驱采不一致报警处理
2015款奔驰E180车安全气囊报警
计算机网络安全服务器入侵与防御
死于密室的租住者
奔驰E260车安全气囊报警