根据一篇不错的文章: ” 容器领域的十大监控系统对比 ” 列出的流行监控方案

方案 备注
1 DOCKER STATS 原生命令行工具
2 CADVISOR 通常作为信息采集组件
3 SCOUT 付费云服务
4 PINGDOM 付费云服务
5 DATADOG 付费云服务
6 SYSDIG 付费云服务
7 PROMETHEUS 数据收集、告警
8 HEAPSTER Kuberenets only
9 ELK STACK 日志分析,监控的一环
10 SENSU 没有容器化,部署麻烦,免费版功能不强

更加确定了我们目前试用的以Prometheus为核心的方案。筛选的过程很简单,撇除掉商业付费的方案,

  • Docker stats 只是一个命令行接口,称不上方案,可能会被其他采集工具调用
  • CAdvisor 目前我们作为数据采集的重要组件
  • Prometheus 目前监控方案的核心
  • ELK 目前还没用起来,可作为Granfana数据源,分析日志触发面板上的预警

目前试用的方案来源于github上的一份参考 bvis/docker-prometheus-swarm

从他的容器编排可以看到整体方案是

  • 采集器
  • CAdvisor
  • Node exporter (promethues 组件一部分)
  • docker exporter (转发容器原生API信息)
  • 数据库
  • Prometheus
  • 报警器
  • to slack (国内用不了)
  • to logstash (没用起来)
  • ELK (没用起来)
  • elasticsearch
  • logstash
  • kibana

最后结合一个Granfana模板的呈现就是这里 docker-swarm-and-container-overview

其中顶部 Errors,Alert Fired, Alert Resolved是要配置Elasticsearch数据源使用的,目前还没有。

数据库曾经试过我们熟悉的InfluxDB,配合CAdvisor做数据采集使用,但是发现Prometheus的指标查询更有可定制性和弹性。使用InfluxDB时一旦容器变动,需要频繁手动调整Granfana中的查询语句。这样的问题在Prometheus中不是问题。只是Prometheus的查询语言PromQL比InfluxQL略复杂。

文中很多部分提到 Rancher 通过插件等方式整合CAdvisor, Promethues 等组件。Rancher 是否适合Swarm集群,整合的方式是否好用,还需要研究Rancher后再看。


update: 2018-04-10

Rancher 的调研写在Wiki里:Rancher应用于swarm集群管理的调研


Comments

comments powered by Disqus