APP下载

开源监控软件在信息化系统运维管理中的应用

2019-06-22马长峰梁丹池

视听 2019年5期
关键词:交换机运维报警

马长峰 梁丹池

(广西广播电视技术中心)

一、引言

随着信息化建设的快速发展,面对众多的信息化系统和设备,在运维中面临的问题主要有:一、技术人员匮乏,疲于应付;二、运维管理的难度、复杂度和工作量都大大增加;三、不同设备、系统的管理后台不统一,运维人员要逐个登录后台查看;四、缺乏可靠、稳定的告警手段。

为了保证信息化系统能稳定、可靠运行,提升技术人员的运维能力、管理水平、保障能力和工作效率,监控平台的智能、自动、全面、人性化就十分重要。Zabbix是一款强大的开源监测平台软件,可以对各异构平台、设备进行监测;并且提供二次开发接口,可向其它系统推送监测的数据,可减轻运维技术人员工作量。本文以Zabbix 3.4版为例,介绍测试平台的搭建与使用过程。

二、软件简介

Zabbix是在2001年发布的一个用于监视网络服务、设备状态等信息的免费开源软件。它具有信息采集、存储、展示等功能,主要的核心组件有server、agent、database、web、proxy,可通过SNMP、Agent、JMX、IPMI、Trapper等方式实现对服务器性能(cpu、内存占用率和硬盘利用率等)、网络设备硬件性能和流量、web应用(响应时间、响应代码、下载速度等)、数据库(增删查改、流入流出带宽等)等多项监控。

三、平台部署

(一)开局部署

本次测试的Zabbix软件部署在Linux的Centos7.3系统中,首先在虚拟化平台中配置一台安装好操作系统的虚拟机,使能SSH功能后,便可通过SecureCRT等终端管理软件登录到虚拟机上进行后续操作。

(二)部署软件

1.开放防火墙端口

Centos系统的防火墙策略默认是关闭所有端口,而Zabbix的agnet和web服务运行在10050及80端口,所以要先使用相关命令开放相关端口和修改防火墙策略来确保正常通讯。

2.关闭 SELinux

Linux系统中root账号拥有最大的权限,该账号被黑客利用将会产生重大安全事件,所以Linux系统又通过SELinux模块在用户权限上增加了进程的控制权限,进一步保障了系统的安全性。为减少测试工作操作量,建议暂时关闭SELinux。

3.安装数据库

目前Centos7不再包含MySQL数据库,默认采用了MariaDB数据库,该数据库为MySQL的一个分支。下载并安装好数据库,启动运行,为后续Zabbix应用提供数据存储环境。

4.下载安装Zabbix

为了保证平台的稳定性和可靠性,本次部署Zabbix 4.0版本之前的最后一个稳定版本——3.4版,该软件首先在CentOS中配置好rpm软件包地址,再通过yum的方式从zabbix官方网站下载并完成安装。

5.创建并配置Zabbix数据库

在MariaDB中创建一个隶属于Zabbix的数据库并进行相应的配置,用于存储采集到的监控信息,相关配置命令如图1。

图1 创建并配置Zabbix数据库

6.其他相关配置

完成软件部署后,还需启动相关服务,并对部分功能项配置进行调整后才能正常打开Zabbix监测平台,相关配置命令如图2。

图2 其他相关配置

通过以上操作, Zabbix平台已经搭建完毕,但要实现监测功能还需要进行添加主机、配置监控项等操作。

四、监控平台配置

本例以配置对服务器硬件、访问web、交换机三种监测为主,配置的流程为“添加主机-添加监控项-图形展示”,其他监测暂不测试。

(一)监测服务器硬件性能

Zabbix可通过agent和snmp来获取服务器硬件性能数据,其中agent按操作系统又分为windows和linux,本例是在windows服务器上部署agent模块后将监测数据推送到Zabbix Server上。首先在官网下载agent文件,解压并配置后再拷贝至服务器的D盘根目录下,相关配置及安装命令如图3。

图3 windows下agent的配置及安装命令

部署agent后,以监测CPU负载数据为例,在主菜单的“配置”里打开“主机-创建主机”,设置“主机名称”(要与agent的conf文件内HostName名一致),设置“agent代理程序的接口”的IP为被监测主机的IP,然后在“模板”内选择“Template OS Windows”。便可以在主菜单的“监测中”中查看到监测数据,为了更直观的显示数据,还可以选择“图形”通过图表的方式查看数据,查看cpu负载数据效果如图4。同时在Zabbix的模板内对于Windows服务器的硬件数据监测项有很多,其查看方法类似。

图4 监测服务器cpu负载数据

(二)监测web网站可用性

Zabbix可对web网站的响应、下载、账号登录和退出等数据进行监测。以监测网盘首页返回网页能否正常访问的状态码“200”为例,配置如下:在主菜单“配置”内添加主机,然后选择“web场景”,创建场景名“web测试场景”,选择并添加“步骤”,输入名称、URL和状态码等信息。完成配置后,就可在主菜单的“监测中-Web监测”内查看到访问网站的数据。效果如图5。

图5 监测网盘首页访问数据

(三)监测交换机数据

Zabbix可通过SNMP协议监测交换机、Linux服务器等设备,以监测H3C交换机互联端口24口的输入输出流量为例。首先对交换机snmp-agent community的读团体名进行配置,本例中使用默认的public。然后通过Getif软件取得交换机24口输入输出的OID信息:ifInOctets:1.3.6.1.2.1.2.2.1.10 和 ifOutOctets:1.3.6.1.2.1.2.2.1.16。收集以上信息后在Zabbix内添加主机并设置好主机名称等信息,在“SNMP接口”上添加主机(交换机)的IP地址。此后在主机上再添加“监控项”并设置好名称,选择“SNMPV2客户端”,输入“键值”:ifInOctets.24,输入“SNMP OID”:1.3.6.1.2.1.2.2.1.16.24;输出口的配置类似。为了更直观的展示数据,在“主机”内选择“图形”并添加相应监控项,即可在“监测中-图形”查看到监测项的图形报表,效果如图6。

图6 交换机流量监测

五、监测平台报警信息推送

通过相关配置,上文已经实现了对相关设备、服务、系统的数据监测。当故障发生时Zabbix提供了Email、Jabber、Sms三种报警信息推送方式,同时还允许管理员通过编写脚本来扩展,本例中将使用Python脚本从企业微信中推送报警信息。

首先登录企业微信的后台,在工作台内为Zabbix创建一个应用,记录下AgentId、Secrect、CorpID信息,同时设置报警信息推送人员范围。在github代码仓库下载Zabbix企业微信推送用的Python脚本,完成后将AgentId等三个信息分别填入脚本内相应位置,并将脚本重命名为wechat.py,导入到Zabbix主机的/usr/lib/zabbix/alertscripts内。部署好脚本后,可通过“./wechat.py 微信用户ID test 内容”命令测试推送功能是否正常。完成以上步骤,即可在Zabbix管理端添加企业微信推送的功能:打开“管理-报警媒介类型-创建媒体类型”,填入相关信息和脚本参数,其中脚本参数用于控制推送信息的格式。

Zabbix报警推送机制是:监测项-触发器-动作;只有在监测项的数据满足了触发条件时,系统才会通过动作完成相关信息的推送。监测项在前文范例中已完成相关配置,现主要介绍触发器和动作的配置,以监测是否能正常访问备机Zabbix登录页面为例:对Zabbix的动作进行配置,打开“配置-动作”新建一个动作为“Wechat Alter”,设置好名称及触发条件,在“操作、恢复操作、确认操作”内设置推送信息的标题、消息内容以及推送的Zabbix账号等,便完成了“动作”的配置;再对“触发器”进行配置:打开“配置-主机-备机Zabbix触发器”,选择“创建触发器”并设置名称和严重性,在表达式中填入“{zabbix_back:web.test.rspcode[场景,步骤].last(,)}<>200”(文中4.2章节涉及的场景,即收到页面状态码非200时触发动作)。为了检测以上配置是否正确,可以将备机Zabbix系统的首页文件index.php修改为index.bak(模拟PHP文件丢失导致网页无法打开的情况)。报警信息测试效果如图7。同时,为了进一步减少误报警,还可以为触发器增加“依赖关系”,通过与网络等状态进行关联,对故障的真实性、源头、影响面进行判断。

图7 通过企业微信推送报警信息

六、结语

除了本文提及的监测项目,Zabbix还具有对数据库、日志、文件、中间件等数据的监测等功能。此外,Zabbix灵活易用,管理人员可通过编写脚本增加各种监测功能,且其自身也提供了大量的模板,降低了使用难度。通过以上案例,可知Zabbix具有设置灵活、部署简便、资源丰富等优点,能够实现在一个平台上对大部分设备、系统进行监测,改变以往运维人员要登录各个网管运维管理的工作模式,减轻运维人员的工作负担,是一个提升运维管理工作效率的企业级开源解决方案。

猜你喜欢

交换机运维报警
运维技术研发决策中ITSS运维成熟度模型应用初探
更换汇聚交换机遇到的问题
基于地铁交换机电源设计思考
风电运维困局
LKD2-HS型列控中心驱采不一致报警处理
杂乱无章的光伏运维 百亿市场如何成长
缔造工业级的强悍——评测三旺通信IPS7110-2GC-8PoE工业交换机
配电线路的运维管理探讨
2015款奔驰E180车安全气囊报警
死于密室的租住者