36区技术博客

AIOPS方案设计与实践<上>

1. 背景

​ 随着互联网技术的发展与普及,互联网应用在我们的日常生活中所占的比重逐渐增加,改善了我们的生活质量降低了我们的生活成本同时让我们的生活更加的便利。

​ 但对于互联网企业而言响应客户需求的应用程序也日益复杂,功能模块也越来越多。并且对于企业级应用项目我们追求系统的高可用高并发高性能,那么我们应用系统的复杂度会更高,随之而来的是运维成本以及运维人员的能力也越来越高。

​ 特别是在从单体应用过渡到微服务应用后微服务中功能拆分的粒度更细、各服务独立部署并且部署的服务更多、服务独立维护、服务治理能力要求高,系统的复杂度也更高,对于用户的服务请求响应的链路也越长,业务数据流向与中转更复杂。特别是不同应用之的互相调用的问题排查更加困难。同时微服务存在固有复杂度。

​ 如果应用出现异常,那么我应该如何快速定位并解决问题?在平时我们如何实时查看系统应用的健康状态?在问题发生前如何提前预知避免程序错误?对于复杂应用如果没有强大的监控能力,应用一旦出现问题,如果不能快速发现系统的问题,对于业务来说是一场灾难。

2. 现状

​ 在我们传统的应用维护与运维过程中,通常是应用出现错误之后再来由运维人员或程序人员采取相应的补救措施,并且响应问题的速度也可能相对低效。随着系统复杂度的增加对运维成本和运维人员的能力要求更高,日常服务巡检工作量大且繁琐。通常有这样几个问题:

3. 方案

​ 我们如何将运维可视化?如何对服务应用进行业务监控、应用监控、操作系统监控、硬件资源监控?从而降低我们的应用维护与运维成本,提高问题的响应速度。

​ 服务监控的本身是需要系统应用相关的数据支撑的,通过对数据的分析和计算,得到数据背后产生的行为和状态,根据行为和状态分析程序系统是否运行良好。将得到的数据信息进行可视化,更直观的了解我们应用系统的健康状态。

3.1 监控方案

3.2 prometheus

3.2.1 简介

​ Prometheus是一个最初在SoundCloud上构建的监控系统。在2012年成为社区开源项目,拥有非常活跃的开发人员和用户社区。Prometheus于2016年加入云原生计算基金会(FNCF),成为继Kubernetes之后的第二个托管项目,prometheus成为新一代云原生监控系统

3.2.2 Prometheus架构

​ prometheus是一个时间序列数据库,在此基础上提供数据收集分析与告警功能。相同的 metrics(指标名称) 和 label(一个或多个标签) 组成一条时间序列,不同的label表示不同的时间序列。

从左到右,可分为采集层,存储计算层,应用层

采集层分为两类,一类是周期较短的作业,还有一类是周期较长的作业

    • 短作业:直接通过API,将指标推送给PushGateway
    • 长作业:Retrieval组件直接从Job或者Exporter拉取数据
  • 3.2.3 特点

    未完待续......

    当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »