全链路监控

我与影子孤独终老i 提交于 2020-10-29 19:54:38

 全链路监控是广义的概念,不仅仅指APM(Appliation Perfance  Manager&Monitor),包含三大部分:

Loggong:日志覆盖系统日志,业务日志,框架日志

Mertic(指标或者度量):覆盖系统指标,业务指标,中间件指标

Trancing(追踪):覆盖微服务,存储,中间件

这三者结合起来构成完整的全链路监控体系。是梳理业务,排查问题的基石。

测试环境部署硬件最低要求(所有组件都是单台机器即可)

组件

作用

CPU

内存

磁盘类型

磁盘大小

ElasticSearch集群1 统一存储日志 4核 32GB SSD最好 500GB
Kibana 查看日志的平台 2核 4GB 普通磁盘 500GB
Logstash 日志处理中间件 4核 16GB 普通磁盘 500GB
ElasticSearch集群2 zipkinTrace数据收集 4核 32GB SSD最好 500GB
Skywalking,zipkin,pinpoint zipkin服务端 & 管理台 4核 16GB 普通磁盘 500GB
InfluxDb 存储指标的时间序列数据库 4核 16GB SSD最好 500GB
Grafana 查看指标的平台 2核 4GB 普通磁盘 500GB

 

监控详情讨论,监控覆盖的几个方面。

  1. Metrics线  -  业务监控:
    1. 使用Spring Boot Actuator标准提供各种打点和应用程序健康信息的HTTP端点
    2. 由普罗米修斯服务器定时拉取信息
    3. 送入时间序列数据库Influxdb(Counter + Tags)
    4. 通过在Grafana配置监控Dashboard面板,实时监控程序的业务曲线(可以配置各种条件)
  2. Metrics线  - 系统监控:
    1. 使用普罗米修斯的Exporter来暴露各种系统指标和中间件的数据指标
    2. 由普罗米修斯服务器定时拉取信息
    3. 通过在Grafana配置监控Dashboard面板,实时进行系统监控
  3. 日志线(红色)- 程序日志保存:
    1. 由框架提供统一的日志服务行程标准化的日志(含全链路监控的Trace&Span&Tags)
    2. 由Filebeat代理收集服务器的日志送入Kafka消息队列进行缓冲
    3. 送入Logstash进行日志解析处理(邮件+IM报警?)
    4. 送入ElasticSearch集群保存日志数据
    5. 通过Kibana连接ElasticSearch进行应用程序日志搜索(允许直接搜索Trace)
  4. 日志线- 程序日志计算:
    1. 由框架提供统一的日志服务行程标准化的日志
    2. 由Filebeat代理收集服务器的日志送入Kafka消息队列进行缓冲
    3. 送入Flink进行实时计算
    4. 随后可以把日志送入数据仓库保存或把计算结果送入MySQL等
    5. 通过数据仓库等进行后续离线数据分析(机器学习etc.)
  5. 全链路监控线:
    1. 由zipkin Agent收集全链路监控信息(服务调用+HTTP调用+数据源访问+MQ链路)
    2. 由zipkinCollector收集处理数据
    3. 送入ElasticSearch集群保存监控数据
    4. 通过zipkinUI管理台查看全链路监控
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!