这里写自定义目录标题

  • 容器监控
  • 架构
  • 可选方案
  • 基础监控:
  • 服务追踪
  • 日志汇总
  • Graphite
  • Prometheus
  • TICK Stack
  • 服务追踪
  • 参考
  • 附录
  • 选项考虑因素


容器监控

Why?How? What?

考虑因素

监控对象是什么?监控哪些指标?从哪些维度监控?

从全局,机房,机架,物理机,虚拟机,容器实例,服务本身等多个维度。

基础监控:

  1. CPU
  2. 磁盘
  3. 内存
  4. 网络
  5. 系统调用
  6. 上下文切断
  7. 等等

日志汇总:

  1. 错误告警

服务调用:

  1. 请求量
  2. 响应时间:平均,最小,最大,P90,P95,P99,区间
  3. 错误率
  4. 调用链
  5. 调用拓扑图

架构

  1. 数据采集:推,拉,关键在于控制采样率
  2. 数据传输: 传输方式(UDP,TCP,消息队列),传输格式(二进制,文本)
  3. 数据处理:分析,存储(时序数据库,索引数据库 )
  4. 数据展示:多维度展示(曲线图,饼状图,格子图,柱状图),告警

可选方案

基础监控:
  1. 采集:Telegraf,collectd,slfow,nagios,sensu,riemann,
  2. 传输:TCP,UDP,HTTP
  3. 分析:Kapacitor
  4. 存储:InfluxDB,timeScale
  5. 展示:grafana(优选),chronograf
服务追踪

Google Dapper, Naver Pinpoint, opentracing, 大众 CAT,Twitter Zipkin,阿里鹰眼,美团 MTrace

  1. 采集: jmx, 埋点,代理,服务接口,字节码注入
  2. 传输:http,消息队列(Kafaka,RabbitMQ)
  3. 分析:实时(storm,spark,flink),离线(hadoop)
  4. 存储:HBase,Cassandra,Mysql,Elasticsearch
  5. 展示:
日志汇总
  1. 采集:fluentd,logstash,rsyslog,syslog,Beats
  2. 传输:TCP,UDP,消息队列(kafaka,rabbitmq)
  3. 分析:ElasticSearch
  4. 存储:
  5. 展示:Kibana
Graphite

收集( StatsD,Carbon),存储,Graphite-Web。

  1. Whisper 简单的时序数据库,不适合大数据量,不支持灵活查询语句
  2. Graphite-Web 支持正则表达式,函数。
Prometheus
  1. PromQL 查询语言
TICK Stack
  1. InfluxDB 支持类 SQL 的查询语句

其中只有 Prometheus 是拉模式,其余都是推模式。

名称

功能完整度

成熟度

活跃度

用户数

定制成本

维护成本

行业

标准

备注

服务追踪

优点:

  1. 找到系统瓶颈
  2. 优化链路调用:定位跨机房、区域调用导致的问题,循环调用
  3. 生成网络拓扑

可选方案

OpenZipkin

  1. 社区活跃度高
  2. 功能:多语言支持,指标简单
  3. 维护性:集成难度高,定制难度低
  4. 规范:没有遵循 opentracing

pinpoint

  1. 功能:只支持 Java,指标详尽
  2. 维护成本:集成简单,定制难
  3. 规范:没有遵循 opentracing

skywalking

Jaeger

名称

功能完整度

成熟度

活跃度

用户数

定制成本

维护成本

行业标准

备注

PinPoint

OpenZipkin

skywalking

Jaeger

 

附录

选项考虑因素

  1. 功能完整度
  2. 成熟度
  3. 活跃度
  4. 用户数
  5. 定制成本
  6. 维度成本
  7. 是否实现相关行业标准