当前位置:首页 期刊杂志

自动化运维工具在企业信息系统管理中的应用

时间:2024-07-28

龙 炜

(中国石油天然气运输公司 信息中心,北京 101320)

自动化运维工具在企业信息系统管理中的应用

龙 炜

(中国石油天然气运输公司 信息中心,北京 101320)

随着企业信息化系统的不断开发建设,服务器主机、中间件、数据库、网络设备数量呈逐年递增趋势,而商业定制化的网管系统已经无法满足当前形势下的企业信息系统运维需求。为此,利用Zabbix和Saltstack开源平台构建了适合本企业现状的自动化运维体系,实现了对服务器主机、Web应用的实时监控和故障报警自愈处理,大大提高了运维效率,降低了运维人员的工作复杂度。

自动化运维;Zabbix;Saltstack;监控报警

0 引言

近年来,自动化运维工具作为IT基础设施越来越受到业内的重视,国内外知名互联网公司均推出适应自身发展需求的自动化集群管理平台,使得一名运维人员平均可以管理上万台服务器。在国内传统大型企业中,随着信息化程度的不断提高以及大规模集群的部署应用,运维人员大部分时间和精力都花在处理简单且重复的问题上,由于故障预警机制不完善,往往是故障发生后才会进行处理,使运维人员的工作经常处于被动“救火”状态,不但事倍功半而且常会出现恶性连锁反应[1]。为此,企业急需开展针对信息系统自动化运维工具的研究与应用工作,固化运维管理流程,减少重复劳动,提高工作的效率和规范性[2]。

1 现状分析

中国石油天然气运输公司信息化建设在过去的五年中飞速发展,已建成以新疆和北京为核心节点,覆盖全国31个省市自治区的60余条专线链路,同时在线运行的应用系统多达16类。运维人员不仅要时刻关注各系统的运行状况,还要能够在第一时间处理相应故障报警,这就对整个运维团队的技术水平和工作效率带来严峻考验。为将技术人员从日常重复性劳动中解放出来,进而从事高附加值的创新性工作,寻找运维服务新的价值增长点,因此,建设一套实用的、切合自身需求的自动化运维体系显得尤为必要。通过技术手段实现以机器自动化批量处理代替传统人工流程处理的模式,解决运维工作中的时效性和准确性问题,最终实现运维工作的精细化管理和专业化服务。

2 技术架构设计

自动化运维体系分为监测层面和控制层面。监测层面以Zabbix[3]平台为依托,通过读取实时有效的运维基础信息来提供高级运维支撑,实现基础资源管理、信息指标管理、事件管理,进行常规巡检、问题报警处理;控制层面以Saltstack[4]平台为依托,通过编辑Python[5]和Shell[6]脚本参数,实现脚本程序的智能化远程调度运行。两个层面相互结合成为一个有机整体,以满足运维人员实际工作需要,确保能够对日常运维工作进行自动化的闭环管理。

Zabbix和Saltstack平台是整个体系的核心组件,因此在核心数据中心部署Zabbix主服务器用以接管系统所有客户服务器的监控信息和历史数据,同时部署Saltstack主服务器用以集中控制各客户服务器。在客户服务器安装Zabbix-Agent和Saltstack-Agent插件,作为分布式探头。如图1所示。

3 系统部署与实现

3.1 Zabbix平台部署

Zabbix是一个分布式的具有系统监视以及网络监视功能的企业级开源解决方案。其能够监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位、解决存在的各种问题。

Zabbix主服务器底层操作系统为CentOS 6.5,集成安装LAMP软件包,在此基础之上导入Zabbix平台PHP源码,编译生成Web管理界面。客户服务器分别安装对应版本的Zabbix-Agent插件,并在插件配置文件中定义本服务器名称以及Zabbix主服务器通信地址。

3.2 Saltstack平台部署

SaltStack管理工具允许管理员对多个操作系统创建一个一致的管理系统,能够与特定的命令结合使用,远程管理服务器或者VMware Vsphere环境。

Saltstack主服务器底层操作系统为CentOS 6.5,集成安装epel源和Python依赖包,最后安装salt-master服务。客户服务器分别安装对应版本的Saltstack-Agent插件,并在插件配置文件中定义本服务器名称以及Saltstack主服务器通信地址。

4 Web系统监控的实现

对Web服务器监控主要是为了保证 Web 服务高可用性和高性能。监控实现方式分为基于Web性能的监控和基于Web进程的监控两种。

4.1 基于Web性能的监控

Web性能所监控的指标主要为页面响应时间和页面加载速度,通过该两项指标能够直观反映出Web服务的整体运行趋势,在一定程度上可以实现服务故障预警。

Web性能监控设置方式如下:

(1)通过Zabbix平台设置configure→Web→Create scenario,建立Web页面监控模板;

(2)在监控变量中输入Web登录用户的ID和Password字段,如下所示:

{user}=user

{password}=password

(3)定义模拟Web登录的行为,包含URL字串和登录回显字符串。

在系统监控展示界面可实时查看Web运行状态。如图2所示。

当Web页面加载速度为0或者响应时间超过1 000 ms,且该状态持续时间大于5 s时,即可判断Web服务运行异常,同时Zabbix平台弹出报警信息。

4.2 基于Web进程的监控

Web进程所监控的指标为HTTP Service可用性,通过此方式可实时判断HTTP进程的运行状况。可通过Zabbix平台内集成的监控策略进行进程监控:

(1)使用 net.tcp.listen[http]监控服务器Http服务端口是否在监听状态,当返回值为0时,表示端口没有在监听状态,即Web进程运行异常;当返回值为1时,表示端口在监听状态,即Web进程运行正常。

(2)使用 service_state[service]监控与 Web 服务相关联的关键服务状态,当返回值为0时,表示关键进程运行异常;当返回值为1时,表示关键进程运行正常。

4.3 Web服务故障自愈的实现

实现Web服务故障自愈需要将Zabbix和Saltstack进行动作关联,当Zabbix平台检测到Web服务异常时,立即调度Saltstack主服务器的脚本程序来执行远程命令,在第一时间重启Web服务进程。通过该功能实现了应用服务无人值守故障处理。

动作关联设置方法如下:

(1)在Zabbix平台设置并定义动作名称;

(2)设置Zabbix平台触发器判断条件;

(3)调用Saltstack主服务器的特定目录下的远程控制Shell脚本程序。

远程控制Shell脚本程序示例如下所示:

salt-N group1 cmd.run 'sudo /etc/init.d/httpd restart'

5 报警推送的实现

报警信息推送的时效性直接影响运维绩效,在日常工作中运维人员无需时刻紧盯所有信息系统的运行状况,一切事件信息均通过电子邮件和手持终端进行查看了解。

5.1 以EMAIL形式推送

通过关联SMTP系统,可以实现报警邮件的实时推送。邮件推送设置方法如下:

(1)设置/etc/mail.rc文件中的SMTP地址和登录用户;

(2)在/usr/lib/zabbix/alertscripts/目录下创建邮件Shell脚本程序;

(3)在Zabbix警示媒介中调用邮件Shell脚本程序。

邮件Shell脚本程序如下所示:

sendmail echo "$3" | mail -s "$2" "$1"

5.2 以微信形式推送

通过绑定企业微信[7],可以实现报警信息在移动终端上的实时推送。微信推送设置方法如下:

(1)在/usr/lib/zabbix/alertscripts/目录下创建微信Shell脚本程序;

(2)在Zabbix创建微信接收用户,关联收件人为微信接口Secret编码字符串;

(3)在Zabbix警示媒介中调用微信Shell脚本程序。

微信Shell脚本程序部分代码如下所示:

CropID=′wwe2910038f2f2d2c8′

Secret=′9jM1H-fPj1764T3Vg7RwlG_U0AC5xrdiYU7-qOLG3bUARs_L4_bl6bTIETmQZsZK′

GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"

Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F" ′{print $4}′)

PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"

6 结束语

针对网络规模的不断扩大,以及服务器数量的不断增加,信息系统运行监控管理工作变得愈加重要。本文通过对Zabbix和Saltstack平台的部署和深层次的应用实践的展开,实现了对Web应用的智能化监控和维护,解决了运维工作中诸多实际问题,为加强企业信息系统自动化、智能化提供了有效的支撑手段。

[1] 毛承国, 张卫华, 张进铎, 等. 大规模集群运维自动化的探索与实践[J]. 信息安全与技术, 2014,5(2): 60-63.

[2] 王东红, 魏广朝. 信息系统运维基础[M]. 北京: 北京理工大学出版社, 2012.

[3] VACCHE A D,LEE S K. Zabbix network monitoring essentials[M]. Packt Publishing, 2015.

[4] MYERS C. Learning SaltStack[M]. Packt Publishing, 2015.

[5] 刘天斯. Python自动化运维: 技术与最佳实践[M]. 北京: 机械工业出版社, 2014.

[6] NEWHAM C. Learning the Bash Shell[M]. O′Reilly Media, 2005.

[7] 钟志勇. 微信公众平台应用开发实战[M]. 北京: 机械工业出版社, 2013.

Application of automatic operation and maintenance tools in the management of enterprise information system

Long Wei

(Information Center, China Petroleum Transportation Corporation, Beijing 101320, China)

With the continuous development and construction of enterprise information system, the amount of server hosts, middlewares, databases, and network devices is increasing annually. However, the customized commercial network management system has been unable to meet the need of the management work in current situation. Therefore, an automatic operation and maintenance system suitable for the enterprise is built based on Zabbix and Saltstack open source software platforms, this system realizes the real-time monitoring and fault self-healing processing to server hosts and Web application. The automatic operation and maintenance system greatly improves the operation and maintenance efficiency, reduces the operational complexity of the operation and maintenance personnel.

automatic maintenance; Zabbix; Saltstack ;monitoring alarm

TP393.0

A

10.19358/j.issn.1674- 7720.2017.05.030

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

2016-10-13)

龙炜(1985-),男,本科,技术员,主要研究方向:石油企业网络规划、信息系统运维、信息安全。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!