DEVOPS运维开发系列四:ITIL事态管理流程、事态监控系统设计以及基于

DEVOPS运维开发系列四:ITIL事态管理流程、事态监控系统设计以及基于
Devops的效。。。
1、事态管理流程简介
事态管理,在ITIL中原来称作事件管理。英⽂名称是Event Management。
作为⼀个ITIL最佳实践流程,它⽆疑也具备⽬标、范围、⾓⾊和职责、输⼊、输出、活动、⼯具、KPI、质量控制、触发程序、与其它流程接⼝、挑战/CSF/Risks,以及其它对这个流程管理有帮助的东西。这些在本⽂中将都不作为重点去讨论,如果对以上知识或信息缺少了解,可以⾃⾏⼀些关于ITIL 事态管理流程的介绍资料。
本⽂会提及⼀些必要的事态管理流程知识,以帮助了解该流程,但全⽂的重点是介绍可以怎么利⽤Devops⽅法来在公司内落地ITIL事态管理流程,达到兼顾流程管理的严谨性与提⾼⼈员⼯作效率的⽬的。
自动化运维系统
1.1 事态管理的定义
Event被定义为任何可被发现或辨别的事情;
此类事情对于IT基础设施的管理或IT服务的交付有重要意义;
有助于评估可能导致服务出现的偏差影响;
通常是由IT服务、CI或监控⼯具产⽣的通知。
1.2 事态管理的⽬标
为组织提供监测事件、了解其影响和确定适当控制措施的能⼒。
1.3 对业务的价值
提供了及早发现故障机制;
为⾃动化操作奠定基础;
配合其它管理流程显⽰出状态变化或异常情况。
1.4 事态管理流程包含的重要活动
事件发⽣
事件通知
事件检测
事件过滤
事件重要性分级
事件关联
触发程序
响应选择
建⽴变更需求
检查措施
关闭事件
1.5 事态管理流程图
2、设计⼀个事态管理系统
本章节内容是从⼀个信息化技术系统的⾓度去分析怎么设计和实现⼀个事态管理系统,它需要考虑哪些⽅⾯,需要包含哪些功能组件。 事态管理是监视服务性能和可⽤性的基础,在可⽤性与容量管理流程中应明确监视的具体⽬标和机制。⽽在⽇常运营中需要定义附件的事件、优先级、告警和其它改进,并通过服务持续改进流程反馈到服务战略和服务设计中。
通常⼀个事态管理系统的设计需要包含以下四个⽅⾯内容:
设计规范
错误信息
事件检测和告警机制
阈值的设定与优化
2.1 设计规范
在设计规范中需要完成对CI的监视内容以及影响它们⾏为的⽅式的设计。
这包含⼀组需要制定的决策,以及执⾏这些决策的设计机制。
事态监控决策的设计:
需要监视什么
需要进⾏哪类监视,主动/被动,性能/输出
何时⽣成事件
需要在事件中传递哪类信息
谁需要该信息
事态监控执⾏机制的设计:
事件如何⽣成?
CI的现有标准特性中是否已具备事件⽣成机制?是否要补充更多?
哪些数据将⽤于构成事件记录?
事件是⾃动⽣成还是要对CI轮询?
事件的记录和存储位置?
如何收集补充数据?
2.2 错误信息的设计
对于所有组件提供有意义的错误信息和/或编码;
对新应⽤的测试应包括对事件的⽣成是否准确进⾏测试;
2.3 事件检测和告警机制的设计
设计和安装必要的⼯具,⽤于发现、过滤、关联和升级事件;
根据各类事件重要性和后续措施的规则与标准,将需要部署特定的信息关联引擎;
要完成⼀项事件检测与告警机制的全⾯设计⼯作,需要掌握很多⽅⾯的专业知识,包括但不限于以下这些⽅⾯:熟悉通过事件管理所管理的所有业务流程及相关业务知识;
各个CI所⽀持服务的SLA要求;
CI⽀持责任⼈;
CI正常和异常运⾏情况;
了解多项类似事件的重要性;
有效⽀持CI的所有信息;
熟悉故障优先级和分类代码,以便于创建故障记录;
了解所有与受影响CI互相依赖的CI项;
来⾃⼚商或历史经验的已知错误;
2.4 阈值的设定
⼤部分阈值并⾮恒定不变。它们⼀般包括多种相关变量,此信息通常只能通过经验获得,这意味着关联引擎必须通过持续服务改进程序不断进⾏调整和更新。
3、事态管理系统的搭建与DEVOPS效率提升
3.1 ⾃研、开源或商业事态监控⼯具的选型与安装部署
⾃研监控⼯具
⾃研监控⼯具的门槛并不⾼,在很多企业⾥都有⾃研监控系统的成功实践,为了解决某⼀类型的问题,往往是借助于⾃研的⼯具软件。⾃研的监控⼯具并不⼀定要是那种⼤规模的、分布式的复杂技术系统,⽽⼀定会是针对⾃有业务应⽤来说监控效果最好的,或者说是最为适⽤的。可以使⽤各类⼯具和编程语⾔,甚⾄是脚本语⾔来开发这样的或繁或简的定制化监控⼯具,在这⾥不做展开说明。
开源监控⼯具
针对系统、⽹络或应⽤监控⽅⾯的开源⼯具最佳实践,⾄少有以下类型的⼯具在不同的场景下分别得到了较⼴泛的应⽤:
Zabbix,⽬前已经发展成为系统监控界的瑞⼠军⼑,2000台设备规模内的监控最佳实践⼯具,前提是你没有把它运⾏在⼀个低配系统上,⽀持proxy模式,功能丰富,⽀持的协议覆盖了snmp/agent主被动模式/jmx、IPMI,提供了⼀套事态监控系统所需要的事件、问题、监控项、触发器、⾃动发现、⽤户、组以及丰富的报警媒价管理功能。⽀持通过API接⼝进⾏增删改查操作。
Cacti,历史悠久的⽹络流量采集与监控⼯具,对⼤部分的⽹络设备⽀持得都很好,甚⾄有⼀些商业或免费使⽤的计费专⽤模板,专业化程序⾼但⽤途较单⼀,且报警能⼒弱。
Grafana,专攻监控数据的图形化展⽰,⽀持的数据源⾮常多且页⾯效果炫丽,已经发展成为⼤部分监控系统的⼤前端了。
Prometheus,⼀套开源的监控&报警&时间序列数据库的组合,⽬前常见于与Kubernetes搭配使⽤。
Open-falcon,是⼩⽶运维团队从互联⽹公司的需求出发,根据多年的运维经验,结合SRE、SA、DEVS的使⽤经验和反馈,开发的⼀套⾯向互联⽹的企业级开源监控产品。特点⽆疑就是适⽤于超⼤规模的技术系统监控服务。
⽬前已经开源的各类监控⼯具,使⽤范围较⼴的也有⼏⼗种,⽽总数⾼达上千种也不⾜为怪。
商业监控服务
不得不提的是⼀些商业化的第三⽅⼚商提供的监控服务如监控宝、基调等也都有很⼴泛的使⽤,⽽且这些服务⼚商往往也提供了可供集成调⽤的API接⼝,便于集成到⾃⼰公司专⽤的事态管理平台中去。
很少有哪个公司能单独依赖于某⼀种监控⼯具,解决⾃⼰全部的服务监控需求的,往往是⼀个互补的监控系统组合。在这个组合中,很可能是⾃研、开源和商业服务全都有涉及。
通过这套监控⼯具的组合,⾄少能为公司业务应⽤系统提供覆盖系统、⽹络与应⽤全⽅位的事件监测,
视⼯具的完善程度,可以提供⽣成监测事件、事件分级与分类管理、事件关联、事件响应管理、触发器、事件的记录、事件确认、关闭事件等功能。
很少有监控⼯具会提供⾯向监测事件的⼯单管理,以及事件背后的故障管理、问题管理或变更管理的服务。如果你恰好需要这样的⼀些服务能⼒,恐怕最直接的办法就是⾃⼰做⼀个了。即便是选取⼀个⾯向解决这些问题的开源项⽬作为解决⽅案,也往往会因为⽔⼟不服或开源项⽬流产⽽不得不做废。
3.2 使⽤好监控⼯具的挑战
对于本⽂第⼀节中描述的事态监控流程知识,你是否有⾜够深刻地认识和正确的实践能⼒?
对于本⽂第⼆节中描述的设计⼀个事态监控系统,你是否具备了需要掌握的技术系统、业务应⽤以及监控架构知识?
既然需要借助于这么多的监控⼯具才能保证不留死⾓的监控到技术与业务系统中每⼀个有监控价值的细节,那么你怎么才能管理、管控好这样⼤⼀盘散乱监控⼯具和监测到的事件信息?
⼀套好的监控系统是使⽤出来的,⽽不是搭建出来的,在⾯对⼀天⼏百个监测事件的报警信息时,你是否能有⾜够的决⼼和信⼼去坚持优化监控逻辑设计、消除监控杂⾳,以利于让⾼价值的故障事件和问题事件从⼀堆事件中浮现出来?
怎么才能保证源⾃多个监控系统的事态监测事件,都能得到,甚⾄是及时得到响应和处理呢,有什么措施可以帮助你的团队成员,甚⾄于是催促、监督和审计他们的⼯作?通过⼈⼒⾟苦劳作显然不会是⼀个⽤户体验良好且⽆法持续坚持的解决办法。你可能会需要⼀个⾯向事件管理的⼯单系统,以及可以为团队监控值班提供⽀持的值班管理系统,当然了,这些IT⽀持服务最好是可以同时为各种监控系统提供兼容⽀持。
很多棘⼿的挑战是取决于你的专业知识、素养,以及信⼼和决⼼。这些挑战并不是那么容易被解决,事实上很多⼈也正是在搭建出⼀个或⼀套监控系统后,迅速被铺天盖地的事态监测事件淹没⾝亡了。
不过,⾄少最后的⼀项挑战,我们可以借助于Devops⽅法给出⼀个相对容易的解决办法。
3.3 使⽤Devops提升事态管理⼯作的效率
下⽂是使⽤zabbix监控系统作为⽣产事态监测事件的⼯具进⾏举例,使⽤禅道项⽬管理系统作为项⽬与⼯单任务的⽣命周期管理的案例。⽽承担功能集成作⽤的⽆疑是⼀个⾃动化运维技术平台,既然是讲Devops,那这个系统要么是依赖⾃研,要么是选取⼀个类似功能的开源项⽬做定制开发即可。
我们⾯临的困境或是拉低⼯作效率的最⼤挑战就是,事态监测信息都在zabbix系统中(实际上在下⾯的功能设计上,实现为了可以按需⽀持多种类型的监控系统),⽽zabbix并不为事件提供⼀个⼯单管
理的服务。我们虽然安排运维值班团队轮流去监控系统上处理报警事件,但⽆疑⼈性的懒散、粗⼼、⽆纪律时刻都在挑战着这项⼯作任务的完整、有效执⾏。⾮担会有很多事件未得到及时响应,甚⾄有不少就是被有意⽆意的漏掉处理了。
因此,我们需要实现⼀个⾃动将事态监测事件⽣成为⼯单任务,指派给特定值班⼈员的技术系统。利⽤禅道项⽬管理软件提供的丰富、强⼤的任务管理功能,保证我们的事态监测事件处理上不会出现遗漏,为⼯单任务提供了⼀个⽣命周期管理,在⼯单关闭和后还可以对其处理结果进⾏评价。
(1)事态管理Devops功能设计头脑风暴
从上⾯中可以看出,我们这项针对事态事件的⼯单管理系统主要设计了三个功能组件:
监控系统组件
值班队列管理组件
监控响应计划组件
我们可以按需为多种类型的监控系统做做适配,以⽀持同时接⼊这个平台中,作为事态监测源使⽤。我们可以按需定义出不同的值班队列班表,分别⽤于系统、IT、⽹络或应⽤团队。⽽监控事件响应计划,当然也要⽀持按需创建,⽀持同时处理多个响应计划以为不同的运维团队服务。
(2)主要功能组件的实现样例
我们使⽤Python Django Web框架来实现这个⾃动化运维服务平台。
jmonitor模块作为该平台上的监控管理模块,功能如下⾯两个图⽚所⽰。
该模块由监控管理下的事件监控、值班队列、响应计划,以及设置模块下的禅道设置(提供必要的禅道配置信息管理)所构成。
jmonitor功能模块各组件的功能说明:

本文发布于:2024-09-21 14:47:55,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/357152.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:监控   事件   管理   事态   系统   服务   流程   提供
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议