监控方案调研

版权声明:本文系原创,转发请注明出处,商业用途联系作者 https://blog.csdn.net/wenxueliu/article/details/83005375

容器监控

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

参考

https://www.ibm.com/developerworks/cn/cloud/library/cl-lo-prometheus-getting-started-and-practice/index.html

附录

选项考虑因素

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

猜你喜欢

转载自blog.csdn.net/wenxueliu/article/details/83005375