Docker 监控之 SaaS 解决方案(docker容器)

网友投稿 851 2022-09-19

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

Docker 监控之 SaaS 解决方案(docker容器)

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

SaaS

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

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

你的初期投入非常小,上手非常快,而且成本比较低(如果你的公司已经有数百上千服务器了,则这部分成本可能会变高,就跟是自建机房还是用云主机的对比一样)。

传统APM一般也都提供了对Docker的监控:

最近也有很多专门用于基础设施监控的SaaS服务

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的图表功能也很丰富,能对任何指标以图表的方式展示,还能在图表上叠加事件,比如报警通知、服务启动停止等,能在观察到metric变动趋势的同时,看到相应的时间,了解metric发生变动的原因。比如CPU load超过一定值时,可能触发报警,这时你能在图表上看到相应的事件,同样,如果CPU load一直不是很低,但是从某一时间点开始变低了,你可能也能从一次新的代码部署中了解原因。

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

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

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

Axibase(ATSD)

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

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

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

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

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

如果我们只是评估一下,或者想自己构建监控方案,它的产品设计还是非常值得我们来借鉴一下。

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这样的产品,以及支持中间件的详细程度,就像一个大市场,什么都能买到,不管你用什么软件,平台都能提供监控。

这就像是去了酒吧突然想吃碗拉面,然后竟然酒吧能给你做出来的那种感觉。

系统监控工具如果能够做到 All in One,真的对解决人力和时间成本上有非常大的帮助。

拓扑可视化

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

这类服务有:

Weave ScopeRuxitSysdig

-- 全文完 --

上一篇:软件可扩展性:来自星巴克的经验(星巴克内部软件)
下一篇:为什么选用 React 创建混合型移动应用?(为什么选用紫色洋葱鳞片外表皮)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~