以往基础设施运维管理(ITOM)、配置管理数据库、网络性能监控系统和应用性能监控系统的建设有相对标准化的产品作为基础,也有方法学作为参考。相比之下,应用智能运维系统更贴近企业多样化的应用系统、业务流程和用户场景,没有开箱即用的工具平台和普遍适用的方法学参考。因此,其对扩展性和可定制化能力的要求较高,往往需要针对特定场景定制智能化算法,对团队的技术能力要求较高。
应用智能运维是在现有的应用性能管理系统、日志分析系统等的基础上,围绕用户场景和业务目标自动融合数据、智能化提取信息的过程。其通过规则积累指定应用运维经验,通过算法替代运维专家的逻辑思考,为发现风险、定位风险和处理风险提供了决策支持。
落地智能化的运维算法难度较大,解决实际应用场景问题,要求应用运维团队不但要有应用性能工程、APM、应用链路追踪、日志分析等传统运维技术,还要有大数据存储、索引、清洗、统计等方面的经验,能够熟练使用机器学习和人工智能算法。企业需要在建设前期积累的关键技术能力有以下三部分。
数据是实现精准预测、异常检测和根源问题定位分析算法的基础,没有覆盖全面、高质量、高精度的监控数据,再精妙的算法也很难发挥作用。围绕业务部门对服务质量目标保障的需求,要覆盖应用全链路的监控数据,就需要更丰富的监控数据采集手段。要达到监控范围涵盖应用从用户端到服务端的运行期状态、数据采集能力支持从基础设施到上层应用全栈软硬件的效果,需要解决用户数字体验与终端设备监控、业务流程及系统可用性检测、网络状态监控、代码执行链路追踪、日志分析及标准化协议/接口对接等技术问题。目前,常用的覆盖从用户端到服务端的软件及基础设施的数据采集技术主要有以下几种。
常用的监控数据分析技术处理的数据量较小,类型单一。例如,对于时间序列指标数据,常用 RRD 数据库或时间序列数据库对数据进行统计计算。计算类型大多是求最大值、最小值,求平均,找标准差及多指标聚合等。
对于日志、用户操作行为等半结构化的文本数据,可以用 ElasticSearch 等文本索引工具对海量文本数据进行索引,利用类 SQL 语句提取关键信息字段。
对于代码调用链路,尤其是分布式事务处理的代码链路,需要对海量数据按预先注入的 TraceID、SpanID 进行关联,由于链路层级深度不确定,用关系数据库连接处理就是灾难。采用 Apache Solr、ElasticSearch 这类文本索引检索引擎,需要占用大量的内存来创建索引,对计算和内存的压力将非常大,也不合适。最适合的数据库是 HBase、Cassandra 等,其能够由指定 ID 快速检索出相关数据,并拼接出完整的链路。
不同数据存储方式的实现原理不同,核心能力也有差别。为了支撑上层多样化数据的统计分析、检索,需要综合利用各数据库的优势。
海量运维大数据分析是实现应用智能运维的关键。如果把监控数据比作石油,数据分析就是从石油中提炼适用于不同应用场景的汽油、柴油、重油、沥青、润滑油的过程。需求不同,对石油提炼的过程和工艺大相径庭。同样,监控数据采集上来,未经加工,本着发现风险和异常的原则来看,这些数据大部分都是正常状态的无用数据,价值密度很低,可读性很差,因此称为“状态裸数据”。
数据采集层通过数据预处理和格式转换(通常预定义为 XML Schema、JSON Schema 等元数据格式)将这些数据转化为格式化数据,推送到数据存储平台存储。
集中存储的监控大数据经过清洗、过滤、预处理等操作进一步提升了价值密度,转换成信息输入数据,用于统计分析。常用的数据分析技术包括异常检测、指标关联分析、趋势预测、因果分析等,用这些技术对信息进行深度加工,可找出支持运维和运营决策及采取下一步动作的信息。
领取专属 10元无门槛券
私享最新 技术干货