监控系统入门

作者: GeekerLou | 来源:发表于2019-06-22 22:55 被阅读190次

    本文主要科普一些监控系统相关入门知识。

    时序数据

    基础概念

    监控的定义

    监控是收集和分析数据以确定业务应用程序的性能,运行状况和可用性及其依赖的资源的行为。 有效的监控策略可帮助用户了解应用程序组件的详细进程,还可以通过主动通知关键问题来避免错误发生,以便在问题发生之前解决问题。

    时间序列

    监控面向的对象是时间序列的数据,那么时间序列的数据有什么样的特征呢?

    1. 严格按时间顺序进行排序的一组随机变量
    2. 每个变量都包含有时间戳及值
    3. 常见的时间序列,包括服务器cpu利用率、服务请求速率等
    4. 非常有用,能够反映服务的当前状态、在合理分析后能够对未来的趋势进行预测
    时间序列

    时间序列数据库

    大数据时代,各种软硬件设备联网,需要连续监控,将会产生大量的时间序列的数据,针对这一类的数据如何针对性地进行存储和聚合查询呢?作为这一类数据存储的基础设施的时间序列数据库诞生了。

    时间序列数据库是一种针对时间序列特点进行优化,专用于处理时间序列数据的软件系统。 从2000年左右出现,在2014年被DB-Engine列为独立的数据类型进行排名。 典型实现:InfluxDB\OpenTSDB\TimescaleDB\Prometheus等。

    从下图我们可以看到,自2018年以来,时间序列数据库的受欢迎程度突飞猛进,这也是当前大数据时代发展的必然要求。


    JUN-2019-Categories-1.png

    下图是来自DB-Engine关于当前流行的时间序列数据库的排名,比较值得我们重点关注的是InfluxDB\OpenTSDB\Prometheus,后续我也会写专门的文章介绍这三个时间序列数据库。


    JUN-2019-Matrix2.png

    监控系统的分类

    根据Peter Bourgon.2017年分布式追踪峰会上提出的Metrics, Tracing 和 Logging 的关系,他将业界所有监控系统划分为如下三类:

    image.png
    1. Logging:即日志监控 。
      记录系统发生的离散事件。如:
    • 用户的某次特殊操作
    • 实例异常离线
    1. Metrics:即指标监控 。
      反映系统状态的聚合型数据,从形式上来看,指标为时间序列。如:
    • cpu利用率
    • 磁盘读速率
    1. Tracing:即分布式追踪。
      请求处理链相关的监控数据,也是离散型。
    • 每个请求的处理状态
    • 哪些节点在处理特定请求时失败
    • 哪些节点在处理特定请求时响应慢

    宏观上看,指标监控的内容主要包括的内容如下:

    • 主机状态监控:监控计算机的 CPU、内存状态等
    • 应用状态监控:监控系统中的应用程序的状态,如资源占用情况、失败重启情况等
    • 网络与连接监控:监控网络的带宽使用情况、延迟与丢包情况等
    • 集群状态监控:监控集群中节点的生命周期、节点的选举情况等
    • 外部依赖监控:监控外部依赖的可用性等

    指标监控系统的两类实现模型

    指标Metrics类别的监控系统有两大类典型的实现模型,分别是推模型和拉模型。

    拉模型
    • 服务端感知客户端并决定从哪些客户端拉取数据
    • 服务端决定数据采集频率
    • 服务端和客户端必须保证在同一网络平面里
    拉模型
    推模型
    • 服务端不感知客户端,客户端主动感知服务端
    • 客户端决定数据的采集频率
    • 服务端和客户端可以不在同一网络平面里,如客户端在
      NAT设备之后
    推模型

    监控系统一般架构

    监控系统所要回答的基本问题包括:

    • 监控数据由谁采集?怎么采集?怎么上报?
    • 监控数据如何处理?例如,怎么做固定阈值的报警判断?动态阈值的报警判断?未来扩容需求的预测?
    • 监控数据是如何被存储的?
    • 监控数据是如何聚合和展示的?

    因此,在设计一般的监控系统时,会包括如下的组件:

    • 采集: 获取来自包括操作系统,传感器、队列、数据库和网络等任何地方的一切数据,包括metrics, events, logs还是traces,并且将他们存储在一个高性能的、每秒能够处理上百万条数据服务器上。
    • 处理: 对数据进行高效地分析、聚合、处理,包括机器学习。
    • 动作: 实现自动化。只需单击即可设置警报或根据机器学习算法执行复杂的异常检测。发送警报给Slack,SMS和PagerDuty等热门服务。创建自定义触发器以执行任何操作。
    监控系统架构

    参考资料

    1. An Introduction to Metrics, Monitoring, and Alerting

    相关文章

      网友评论

        本文标题:监控系统入门

        本文链接:https://www.haomeiwen.com/subject/gyhbqctx.html