Docker 监控之 SaaS 解决方案

过去的一年中,关于 Docker 的话题从未断过,而现在,从尝试 Docker 到最终决定使用 Docker 的转化率依然在逐步升高,关于 Docker 的讨论更是有增无减。另外一方面,你们的注意力也渐渐从 “Docker 是什么”转移到“实践 Docker”与“监控 Docker”上。html

本文转自刘斌博文「如何选择 Docker 监控方案 」,文中刘斌从技术的角度深刻解释了 Docker 监控的数据采集原理,介绍了现有开源的监控方案,以及能 够对 Docker 进行监控功能的主流 SaaS 服务工具。linux

上一篇文章中,咱们了解了开源的 Docker 监控方案,本篇听听斌哥介绍 Docker 监控的 SaaS 解决方案!!ios

SaaS

  • turnkey解决方案
  • 维护成本 ~ Zero
  • 适合中小企业

对于中小型企业尤为创业公司来讲,自主开发或者直接利用现有的开源工具进行监控都有一些问题,主要是成本和风险的问题。对于中小企业,应该先把精力集中在发展核心业务,能外包的就先不本身作。并且不少中小公司你们都是全栈,没有专门的运维人员,都是临时抱佛脚,随时都会变成救火队员。web

SaaS最大的优势是什么?那就是免运维,开箱即用,修改的代码少甚至不须要修改代码,或者只须要简单的安装一个agent就能够工做了。不少SaaS软件的开场白都是运行一条 yum install ,而后倒上一杯咖啡等几分钟,就能看到数据了。算法

你的初期投入很是小,上手很是快,并且成本比较低(若是你的公司已经有数百上千服务器了,则这部分红本可能会变高,就跟是自建机房仍是用云主机的对比同样)。docker

传统APM通常也都提供了对Docker的监控:后端

最近也有不少专门用于基础设施监控的SaaS服务api

RancherLab公司有人写了篇文章,你们能够参考下。这篇文章名为《Comparing Seven Monitoring Options for Docker》,即对比了七种不一样的监控Docker的方案,包括使用 docker stats 命令, cAdvisor, Prometheus ,Sensu,以及saas服务 Scout, Sysdig Cloud and DataDog等方案,做为结论做者以为Datadog是这其中最优秀的方案。安全

RancherLab有一个产品叫RancheOS,是一个专门为了运行Docker准备的微型Linux版本,它的口号是“The perfect place to run Docker”。跟CoreOS相似,可是貌似功能不如CoreOS多,也没有CoreOS有名,也没有CoreOS中fleet、flannel和etcd这样的组件,尤为是etcd,能够说是CoreOS的副产品,可是几乎成了Docker业界标准的kv store和服务发现组件了。服务器

Datadog

  • 国外最好
  • 功能很强大
  • 安装很简单

国外最流行的SaaS解决方案是Datadog,国内可能比较成熟、规模较大的应该算是Cloud Insight了。这类服务用户只须要注册一个帐号,按照安装过程经过一条命令来安装探针便可在web展现端看到数据。

要说到Datadog的不足,那就是在国外,网络延迟须要考虑,万一哪天不科学了也须要有所准备。价格方面Datadog也比较贵。免费plan支持5台机器,并且只保留一天的数据,并且没有报警功能。收费版15美圆一台主机,支持报警功能,数据存储13个月。

说道SaaS,不得不提客服,直接面对非母语客服人员交流起来确定会有诸多不顺吧。

Cloud Insight

  • 实时数据
  • 历史数据
  • 仪表盘
  • 混合监控
  • 报警功能

固然,最便宜的仍是Cloud Insight,有多便宜呢,官方订价的话3个探针如下是免费的,支持超过3台主机的话,平均天天1快钱。这只是官方订价,实际上还会便宜,貌似联系客服就能够知道有多便宜了。

Docker 监控之 SaaS 解决方案

Docker 监控之 SaaS 解决方案

Cloud Insight的图表功能也很丰富,能对任何指标以图表的方式展现,还能在图表上叠加事件,好比报警通知、服务启动中止等,能在观察到metric变更趋势的同时,看到相应的时间,了解metric发生变更的缘由。好比CPU load超过必定值时,可能触发报警,这时你能在图表上看到相应的事件,一样,若是CPU load一直不是很低,可是从某一时间点开始变低了,你可能也能从一次新的代码部署中了解缘由。

Cloud Insight还支持ChatOps集成,包括国内的 BearyChat 和简聊。随着devops文化的普及,相信这些工具的重要性也会与日俱增。不过貌似简聊已经开源了(不运营了?)。

Sysdig

  • 免费工具
  • SaaS服务 Sysdig Cloud
  • 拓扑可视化

能够认为sysdig是strace + tcpdump + htop + iftop + lsof + 众多linux经常使用的系统监控命令的合体。

若是你熟悉tcpdump,那么你知道它能还原整个网络流量,而sysdig则是操做系统级别的监控工具,能捕捉到全部OS事件和数据。并且sysdig原生支持Linux container,包括Docker和LXC,提供了基本的指标监控信息。除了性能指标,sysdig还能采集trace等日志信息,用于之后的问题分析和解决。

Sysdig Cloud是sisdig的SaaS版,除了基本的单机sysdig功能以外,还提供了跨平台跨基础设施的组件间依赖关系的可视化。

Librato

  • 数据聚合平台
  • 简单探针
  • 图表和报警
  • 价格不贵

Librato是一个数据聚合平台,而不是严格意义的监控系统。

Librato很容易从AWS CloudWatch和Heroku得到数据,若是是本身监控主机或者Docker,须要使用Collectd框架。它也有不少插件,能够从StatsD、Riemann等数据源采集数据。

Librato的探针虽然功能不是强大,可是他提供了丰富的实时在线数据处理功能,用户可使用DSL对任意时间序列数据组合进行数学运算,好比加减乘除、比率导数等。还支持和时间窗口滑动功能,即跟过去某一段时间进行比较。

Librato也支持报警,基于metric和条件,设置报警信息。

Librato是按照metric的个数和时间分辨率来收费的,在官网的主页上有一个大概的估算,若是你有20个metric,而且时间间隔为60秒,则一台服务器的价格只有2美圆1个月,这比datadog要便宜。

Axibase(ATSD)

  • 非开源TSDB
  • 支持报警
  • 预测功能

Docker 监控之 SaaS 解决方案

做为TSDB,ATSD支持长时间存储高精度的metric数据。ATSD支持多种数据采集工具和协议,好比tcollector, Collectd,固然ATSD也支持从多台Docker主机手机指标数据,并长期保存,进行可视化和分析。

除了传统的时间序列数据,ATSD还支持属性(Properties)和消息这两种类型的数据。属性通常用于保存meta data,这有点相似标签。和OpenTSDB同样,ATSD也支持tag,咱们可使用这些tag进行过滤和聚合。

ATSD内置了自动回归推断算法(holt-winters,arima),能够提前预测故障。预测功能的准确性取决于数据的采集频率,保存时间(也就是数据量大小)和算法。

最大的遗憾,就是ATSD不是开源,也不是免费的软件,不过他们提供了一个社区版能够无偿使用,可是你只能在一个节点上安装ATSD,并且不能用于盈利性服务,也不能对软件进行修改以及再发布。

若是咱们只是评估一下,或者想本身构建监控方案,它的产品设计仍是很是值得咱们来借鉴一下。

SaaS的挑战

数据敏感性

采用SaaS,意味着你的数据都将会保存到公网,可能会带来心理不安全感。实际上SaaS反而会更安全些,尤为是对中小公司没有专门的安全运维团队的状况下。

成本(迁移和使用成本)

通常来讲这是一个一次性投入成本。而对于大公司来讲,就像公有云同样,成本可能会成为问题。

内部抵抗(观念、我的爱好)

来自技术人员自身的抵抗,不是每一个人都喜欢本身变得轻松,使用SaaS可能会给一些人带来工做上的不充实感。

Docker监控方案的发展趋势

标签机制

一种观点:监控服务状态赛过监控个别容器,经过tag机制对服务总体的性能指标进行聚合。

Tag能够是任何维度,好比BU,地区,服务,甚至个别容器。

好比Docker和Kubernetes等都支持label机制,即tag机制。

启动Daemon:

docker daemon –label com.example.group=“webserver”

启动容器:

docker run –label com.example.group=“webserver”

Dockerfile:

LABEL com.example.group=“webserver”

经过API打通

经过API化实现双赢。开源软件好比fluentd、Collectd等,都支持插件功能。包括Docker自己,也在1.11版本中,采用了runC做为容器运行时,在上面经过containerD来统一控制,来支持符合OCI标准的容器。

Total解决方案

包括从探针到展现、告警,就是如今相似Datadog和Cloud Insight这样的产品,以及支持中间件的详细程度,就像一个大市场,什么都能买到,无论你用什么软件,平台都能提供监控。

这就像是去了酒吧忽然想吃碗拉面,而后居然酒吧能给你作出来的那种感受。

另外一个层面就是从RUEM(实时用户体验管理)到基础设施层的 打通 。好比你看到某URL的用户HTTP响应较慢,若是不能跟后端的APM打通,你尽管能识别出问题,可是你不知道如何解决。若是和后端的APM以及基础设施监控打通,你就能定位到HTTP响应慢时,相应的后端代码的位置,并根据后端代码的位置从而进一步找到MySQL的监控数据以及系统异常事件,马上知道问题的根本缘由所在并解决问题,能够说效率应该能提升几个数量级。

系统监控工具若是可以作到 All in One,真的对解决人力和时间成本上有很是大的帮助。

拓扑可视化

跨组件、跨基础设施和应用,自动识别组件以及组件之间的依赖关系,以帮助更好的发现问题和解决问题。

这类服务有:

  • Weave Scope
  • Ruxit
  • Sysdig

-- 全文完 --


更多 Docker 监控内容,请关注 OneAPM Blog_Cloud Insight 版块。数据监控及管理平台 Cloud Insight,让数据监控及可视化更容易。

本文转自 OneAPM 官方博客

相关文章
相关标签/搜索