监控工具是方便您的操作顺利运行的有力保证。如果配置正确,日志和可视化数据可以在排除故障时发挥巨大作用。以下是一些Docker监控工具,您可以根据自己的需求选择适合您的环境的工具。
Docker Stat
每个Docker容器都附带一个预配置的监控工具Docker Stat。该命令提供Docker CPU利用率、内存使用情况,内存限制和网络IO度量标准的统计信息。
$ docker stats [CONTAINER...]
第一个命令“docker”是docker CLI的基本命令。您可以指定一个或多个由空格分隔的容器来获取每个容器的信息。以下命令将显示在Linux守护进程上运行的所有容器的详细信息:
$ docker stats
要获取有关容器资源使用情况的更多详细信息,请使用/containers /(id)/ stats API命令。以下是执行完该命令后输出的快照:
它最大的优点是免费的,并且是Docker容器附带,因此不需要像第三方工具那样进行任何配置设置。您可以通过几个命令的变化获得有关各种指标的详细信息。
它的缺点是不像其他监控工具,它只限于Docker,不能展示其他与Docker并行运行的其他资源的统计。其最大的局限在于,如果出现任何问题,因为仅基于CLI,那么肯定无法生成警报。
cAdvisor
cAdvisor是查看容器的资源使用情况和性能特征的另一个工具。 cAdvisor拥有对Docker的本地支持,但也可以与任何其他容器一起使用。
cAdvisor提供了您的码头统计信息的可视化表示。一旦你有你的机器上配置和运行CAdvisor。您可以通过在Web浏览器中输入http://localhost:8080来访问其Web界面。此Web界面将提供总CPU利用率,内存使用情况,网络吞吐量和磁盘空间利用率的统计信息。您可以通过单击“Docker容器”链接并选择要查看的容器来查看特定容器的统计信息。下图显示了主机的总CPU使用情况:
cAdvisor是免费开放源代码,可以很容易地在一个集群上配置。
不利的一面是,它只能监视一个docker主机,不适合多节点部署,因此你的统计信息将不相交,并散布在整个集群中。图表中的移动数据只有一分钟,如果您想增加计时是无法选择的。像docker Stats一样,cAdvisor也不会触发警报,也不会提供监视非docker资源的选项。
Scout
Scout是一个新的服务器监端控应用程序,允许自动监控关键指标,拥有80多个插件用于监控您的应用程序,实时(每秒)流式仪表板并提供警报功能。
其中“docker-scout”是一个插件,是基于Scout应用程序的容器,你可以使用它来监视您docker环境中的主机和容器。Scout为您提供了在主机上运行的所有内容的详细信息,例如CPU使用情况和内存使用情况,这些并不仅限于在docker内运行的特定进程。
在配置了“docker-scout”插件后,可以从容器中导入数据,如CPU使用率、内存使用率网络吞吐量以及每个主机的容器数量。数据以统计形式以及图形形式提供。
缺点是与cAdvisor不同,它不提供每个主机上运行的各个容器的详细信息。如果您在同一台服务器上托管不同的容器,这是一个严重的限制。另外,这些附加功能的价格,每个监控主机十美元。
Datadog
使用Datadog,您可以使用每个主机的一个Datadog代理程序获取在主机上运行的所有Docker的Docker指标数据。有两种方法可以直接在每个主机上或在docker-dd-agent容器中运行Datadog Agent。
使用Datadog,您可以看到主机上运行的所有容器的指标,如CPU使用率、内存和I/O。此外,您还可以计算运行和停止的容器以及图像的数量。
Datadog有一个交互式仪表板,可以让您创建任何性能指标的图表。使用Datadog Monitor功能,您可以设置警报,以防某些指标超过阈值。您还可以获取某些指标的汇总数据,以帮助调试问题或从数据中提取特定的信息,所有这些都包含在Metrics Explorer功能中。
Datadog远远超过了目前为止讨论的三个,但在不利的方面,每个代理商收取15美元的费用。
Sensu Monitoring Framework
Sensu是一个免费的开放源代码和自我托管的集中度量服务。您可以使用hiroakis / docker-sensu-server容器来运行Sensu。 Sensu没有对Docker的本地支持,但是您可以使用插件配置对容器指标的支持以及状态检查。
Sensu是一款功能强大的监控工具。您可以尽可能多地获取有关主机和Docker容器的详细信息。您还可以汇总数据,并在汇总的数据上设置警报。
不利的一面,Sensu提醒并不是那么先进。虽然有很多功能,但使用Docker配置并不容易,您必须话费一定的精力才能使其与Docker一起工作。
Sysdig Cloud
Sysdig云是一项托管服务,具有完整的监控功能,如度量存储、聚合、可视化和警报。要首先使用Sysdig Cloud,则必须注册到其站点,并且必须使用Sysdig配置docker环境,才能开始使用Sysdig Cloud进行监视。
完成配置后,您可以在Sysdig云中看到CPU使用率、内存消耗、网络使用率等数据。这些指标是针对主机汇总的,也是按照每个容器细分的。Sysdig很容易设置,为图表提供实时和历史数据的详细输出。Sysdig中的警报系统是迄今为止我们所见到的其他五个中最好的。
Sysdig云的价格模型不清晰,一旦解决这个问题,将是最好的监测工具。以下是Sysdig云仪表板的视图:
总结
我们已经看到了六个Docker监控工具,免费和付费皆有之。由于DataDog只需一个命令便可轻松设置,因此DataDog具有优势,所有主机都可以在统一位置报告指标,还可以分析历史数据。Datadog也支持警报。Datadog每台主机15美元的价格使其成为大型设备的昂贵选择。
对于更大的部署,自由和开源的Sensu是一个理想的选择。但是,这种免费功能的代价是复杂性。最后想说,没有适合所有场景的的监控工具,因为你需要的监控工具完全取决于你的要求。
领取专属 10元无门槛券
私享最新 技术干货