全链路监控

原创
2019/05/31 15:26
阅读数 5.4K

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

Loggong:日志覆盖系统日志,业务日志,框架日志. 常规方案ELK  elastic, logstash,kibana

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

       Metrics监控主要依赖于时间序列数据库(TSDB),目前比较成熟的有OpenTSDB,具有分布式的能力可以横向扩展,但是相对较重,适用于大中规模企业。也是一个选择。近年也出现一些轻量级的TSDB,比如InfluxDB和Prometheus,这些产品函数报表丰富,自带告警模块,但是分布式能力不足。Grafana是Metrics报表展示的社区标配。

Trancing(追踪):覆盖微服务,存储,中间件。常用的APM框架,比如Skywalking,CAT,ZipKin等这些。

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

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

组件

作用

CPU

内存

磁盘类型

磁盘大小

ElasticSearch集群1 统一存储日志 4核 32GB SSD最好 500GB
Kibana 查看日志的平台 2核 4GB 普通磁盘 500GB
Logstash 日志处理中间件 4核 16GB 普通磁盘 500GB
ElasticSearch集群2 Skywalking Trace数据收集 4核 32GB SSD最好 500GB
Skywalking Skywalking服务端 & 管理台 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线(蓝色)- 系统监控:(*不知道现在是不是这样,或者现在是用Zabbix的?)
    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. 由Skywalking Agent收集全链路监控信息(服务调用+HTTP调用+数据源访问+MQ链路)
    2. 由Skywalking Collector收集处理数据
    3. 送入ElasticSearch集群保存监控数据
    4. 通过Skywalking UI管理台查看全链路监控

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部