全链路监控

      全链路监控是广义的概念,不单单指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管理台查看全链路监控
相关文章
相关标签/搜索