秦国华,李 良
(广西广电新媒体有限公司,广西 南宁 530029)
广西广电新媒体自2013年以来陆续建设和整合了IPTV集成播控、广西视听、IPTV看吧、台网站、大数据、媒资源站等业务系统。这些业务系统的稳定运行关系到广西IPTV、广西视听和广西网络广播电视的视频内容运营和终端用户体验。为了对各个系统的可用性和稳定性进行量化,公司技术部在2017年年底通过管理层研讨,并参照业界通用的SLA(Service Level Agreement,服务等级协议),定义了各个业务系统的故障等级和月度/年度考核规则。按照该考核规则,公司各业务系统年度可用率将逐渐从99%提升到99.99%。
这些考核管理办法的逐步落地,使我们意识到对这些系统运行状态进行实时监控和及时预警的重要性。
随着Zabbix监控系统的建设和使用,在给大家带来便利的同时,一些使用过程中的问题也凸显了出来。
大部分系统除导入了Linux基础监控模板之外,尚未针对各业务系统进行自定义监控。因此基本上只能监控CPU、文件存储、内存、网卡出入口流量、业务进程状态、业务端口等基础性的应用及监控。
初期建设后,部门内部的Zabbix系统共有5套。
伴随着监控系统使用,分散建设的弊端也逐步显现:(1)由于搭建Zabbix先后不一致,因此有的Zabbix版本是2.1,有的是3.4,彼此之间的模板存在不兼容的情况。(2)分散建设的Zabbix系统基本都存在单点问题,如果要实现高可用,会消耗更多的虚拟机资源。(3)Zabbix的日常维护成本较高,且由于各小组对Zabbix的熟练程度有所差异,不利于Zabbix系统维护的专业化。
在同一个Zabbix系统上,由于缺乏前期统一的要求,在主机命名、告警级别定义、主机关联模板等方面都没有统一的规范,以致配置维护时偶尔会出现命名冲突、告警混乱(例如严重级别的告警被定义成致命级别)。对于Zabbix的管理没有进行严格的权限划分,使得在告警阈值调优时都得在模板基础上去修改主机的信息,优化的配置信息难以通过模板进行复用。
不同的业务系统,实际上可以有不同的指标采集方式,例如除了Zabbix Agent之外,还包括JMX,SNMP,ICMP,SSH等多种监控方式。但各业务系统基本还停留在Zabbix Agent告警方式。
通过在研讨小组提交的调研报告基础上综合利弊分析,我们最终决策整个监控运维体系的建设需要分阶段进行,不适合盲目上马一套大而全的监控运维系统,以避免出现重型的监控运维系统与公司当前系统、管理流程、甚至理念上的分歧。在当前阶段,比较务实的策略是基于Zabbix开源软件,进行监控系统设备和规范的统一,完善立体化的监控体系,并采取方式多样的指标采集手段。
为了满足Zabbix系统安全稳定可靠的运行,选择采用物理机而不是虚拟机来进行Zabbix的部署安装,并且支持Zabbix应用和数据库的主备切换。优化之前我司的Zabbix部署,多个小组各自有一套服务器,且彼此之间的版本不一致。优化之后将业务运维、大数据、播控组及台网3个小组的Zabbix Server进行了合并,如图1所示,然后将Zabbix监控数据通过Grafana进行统一的图形化展示[1]。
图1 优化之后的Zabbix部署
3.2.1 模板命名规范
根据不同的监控对象设置不同的监控模板,我们规定模板名称需要遵守以下规则。
模板名称示例:zbx_os_linux_xxx,其中第一位zbx固定,第二位os代表监控大类,表示操作系统,第三位linux代表监控小类,表示具体的操作系统,第四位根据具体情况可以是应用系统名称/版本/IP等。名称尽量都采用小写[2]。
3.2.2 监控项数据保留时长规范
统一规定采集数据的历史保留时长和趋势数据保留时长,如果没有特殊要求,历史数据保留两周,趋势数据保留1年。
3.2.3 触发器命名规范
触发器的名称尽量能够包含最直观的信息,比如,操作系统:ABCD(11.22.33.44)CPU使用率大于70%。
对不同的监控大类需要在触发器名称的开头添加相应内容。
3.2.4 触发器阈值规范
模板中触发器表达式中设置的阈值,除状态值外都需要使用用户宏,这样在主机中就能够修改从模板继承的用户宏,而不影响其他的主机。
3.2.5 主机关联模板规范
主机层面无特殊情况不允许创建主机、触发器等元素,只能将这些元素定义在模板中然后与主机关联。在主机层面修改继承来的用户宏是允许的,也是比较推荐的。
3.2.6 告警动作配置规范
告警动作根据现有环境配置,支持可扩展,不能因为添加一台主机或一个群组就要单独创建另外的告警动作。
设置合理的告警升级策略,避免发送严重级别不高的信息给上级,造成告警泛滥[3]。
每套Zabbix系统只指定两人拥有Zabbix超级管理员权限,其他人员只有查看权限,所有的修改操作只能由两名管理员执行。管理员进行修改操作时,需要将操作内容记录下来,并共享给另一位管理员。默认的Admin用户禁止开启,管理员不能将自己的用户和密码提供给不熟悉Zabbix的人员,获取用户密码的人员如果没有获得修改允许,不能进行修改操作。
经过近两个月的咨询和整改,基本完成了基于Zabbix开源软件进行监控系统设备和规范的统一,基于Agent,JMX,SSH,ICMP等多种形式的指标采集手段,初步实现了基础硬件环境、操作系统软件、业务应用系统以及用户业务入口的立体化监控,为业务系统的稳定可靠运行提供保障。
今后,对已有的指标告警项需要分析核实,并将告警阈值调整至与业务应用相协调统一的范围;根据业务系统建设规划和部署,继续补充和完善监控指标应用集;根据业务系统日志,通过自定义Python脚本,完善业务系统各接口和代码的业务层面告警;根据钉钉电子流审批的接口文档,研究Zabbix告警与钉钉电子流的对接,实现告警处理的工单化。