DockerCon 2016 深度解读:Docker监控厂商之Sysdig

Docker监控厂商系列介绍

Docker 技术社区与其他诸如微服务、DevOps等等在过去的一年里碰撞出了炫目的火花,但是系统的稳定性永远都是成熟应用的首要考虑因素,因此,国内外围绕Docker监控涌现出了很多优秀的厂商,为整个Docker生态提供了坚实可靠的工具与服务。我们会以一个系列的文章来介绍这些Docker监控厂商,分析对比各个厂商在监控方面的侧重点与优势,让更多的开发者能够根据自己的业务需求做出合适的选择。

今天介绍的产品是 Sysdig

Sysdig 介绍

Sysdig is open source, system-level exploration: capture system state and activity from a running Linux instance, then save, filter and analyze.

Sysdig is a simple tool for deep system visibility, with native support for containers.

Sysdig 本身是一个比较好用的 开源监控命令行工具集,不仅提供了系统层级的监控命令行功能,还原生支持docker的监控,所以开发者或者运维人员可以直接在宿主机上 安装 Sysdig 来做监控。Sysdig提供了 Csysdig,一个在命令行环境中可交互的、易用的、可视化监控信息查看界面。

Sysdig Command Line Interface —— 灵巧的瑞士军刀

命令行工具永远是程序员与运维人员最便捷的、必不可少的辅助工具,在Linux操作系统中安装Sysdig 以后可以直接执行 csysdig 命令,会默认展示出进程监控信息,如下图所示:

直接按下F2 按键,可以看到各种菜单项,其中一个就是容器相关的监控面板。

选择进入容器视图,查看当前运行在VM上面的各个容器的各种监控信息,如下图:

总体而言,直接使用 Csysdig 比较方便,交互非常友好而且支持各种搜索和分析。同时Sysdig也提供了各种命令,正如Sysdig官网介绍一样,可以把 Sysdig 视作 “要你命3000” 的杀手级监控工具。

Think of sysdig as strace + tcpdump + htop + iftop + lsof + awesome sauce

Sysdig的命令行工具涵盖了以下几个方面:

  • Networking
  • Containers
  • Application
  • Disk I/O
  • Processes and CPU usage
  • Performance and Errors
  • Security

我们用 容器 方面举例,可以使用以下命令查看某个容器内进程所占用的CPU百分比:

sudo sysdig -pc -c topprocs_cpu container.name=shenzhentest_redis_1

我们这里使用命令查看了redis容器,如下图所示:

还有更多的命令可以帮助开发者更便捷地监控系统各项指标与容器各项指标,大家可以参考文档 Sysdig Quick Reference Guide 做更详细的了解。

Sysdig Cloud, Container-Native Monitoring —— 正规军作战必要的解决方案

如果仅仅是提供一些命令行工具来服务于广大的开发者,“瑞士军刀”功能再多,都无法满足生产环境的大规模监控与调度。好在Sysdig 提供了 Sysdig Cloud, 一个致力于为基于容器的信息化基础设施提供监控、报警、分析功能的解决方案。

Sysdig Cloud is the first and only monitoring, alerting, and troubleshooting solution designed from the ground up to provide unprecedented visibility into containerized infrastructures

Sysdig Cloud 开放免费试用,所以有兴趣的开发者可以在正式使用之前先免费体验一下。

整个注册过程都比较简单,有非常明确的用户引导来协助用户完成注册、下载监控客户端、上报监控数据的过程,所以我们这里略过这部分,直接介绍产品本身。

在注册完成后,按照提示信息在自己的宿主机上运行以下命令来安装 Sysdig的监控容器客户端:

docker run --name sysdig-agent --privileged --net host --pid host -e ACCESS_KEY=your-key-auto-replaced-here -e TAGS=exampleTag:exampleTagValue -v /var/run/docker.sock:/host/var/run/docker.sock -v /dev:/host/dev -v /proc:/host/proc:ro -v /boot:/host/boot:ro -v /lib/modules:/host/lib/modules:ro -v /usr:/host/usr:ro sysdig/agent

注意:上面的docker run 命令中,ACCESS_KEY部分在注册成功以后Sysdig 提供的操作引导中自动替换为注册者自己的ACCESS_KEY,我们这里做演示,所以展示的是占位符文字;同时,Sysdig 的agent 允许开发者自己定义tag,这里可以根据实际需求替换为有具体业务含义的标签对,方便在Sysdig Cloud 的控制台中做区分筛选查看。

如果本机是第一次安装的话,会先下载镜像到本地。docker run 命令执行结果如图所示:

看到上图的数据上报log以后就可以去 Sysdig Cloud的控制台查看各种监控数据了。

对于我们 阿里云容器服务的用户来说,采用这种登陆到服务器上面依次执行docker run的命令就略显笨拙了,因为使用阿里云容器服务的客户大多数都维护多个集群,每个集群内有多台ECS的实例,显然不能使用该方式做人肉运维。

为了方便阿里云容器服务客户无痛使用Sysdig,这里我们为客户提供了一个写好的compose模板,如下所示:

agent:
  image: 'sysdig/agent:latest'
  privileged: true
  net: host
  pid: host
  volumes:
    - '/var/run/docker.sock:/host/var/run/docker.sock'
    - '/dev:/host/dev'
    - '/proc/:/host/proc/:ro'
    - '/boot:/host/boot:ro'
    - '/lib/modules:/host/lib/modules:ro'
    - '/usr:/host/usr:ro'
  environment:
    - ACCESS_KEY=${SYSDIG_ACCESS_KEY}
    - TAGS=role:aliyuncs
  labels:
     aliyun.global: 'true'
  restart: always

开发者只需要登录容器服务控制台,在对应的集群中创建应用即可,如下图所示:

创建 Sysdig-agent 应用,填写好各种信息以后,选择 【使用编排模板创建】:

粘贴上面为大家提供的compose模板,

点击创建应用时,系统会分析模板中的变量,弹框提示用户输入变量值,这样模板可以重复使用并且不需要担心模板中的敏感信息随着模板的传递而泄露。填写模板中的 SYSDIG_ACCESS_KEY 变量的值,该值可以在注册Sysdig Cloud 用户以后拿到,点击确定:

完成创建应用。

注意,以上我们提供的compose模板中,有一个label :aliyun.global:'true',意味着使用这个模板部署的应用会在VM集群内每一个ECS实例上部署一个该应用,这样就利用阿里云容器服务的应用创建功能实现了集群内的Sysdig agent的批量快速部署。

当完成以上操作,登录监控控制台以后,从产品直观映像可以了解到,整个Sysdig Cloud 依赖安装在目标环境的 监控客户端容器,整个客户端监控容器收集系统层面的监控指标,同时也分析了部署在容器内的各种应用。Sysdig Cloud做的比较出众的点,就是提供了大量内置的监控模板,不论是常见的应用,还是容器监控本身从各个维度给开发者提供了快速监控容器集群的可能性。同时还提供了多账号、事件、告警等功能,其中告警部分默认内置了一些禁用状态的告警规则,方面用户使用。而且Sysdig Cloud 和 AWS 的 Amazon CloudWatch 做了深度集成,也是非常吸引开发者的一个点。

我们进入Overview 页面以后,可以看到概览的监控数据,会有各维度的TOP5对比监控图表,如下图所示:

在 Explore页面,我们可以看到右侧以用户自定义的容器label作为筛选展示维度列出的多个信息,这里我们使用阿里云容器服务的serviceId作为展示维度,列出服务内的容器监控信息。依据label进行聚合给用户提供了极大的使用上的灵活性。

告警页面:

除了以上其他各种功能以外,Dashboard 部分有很多内置的非常让人惊艳的模板,如下图,缩略图:

将图放大以后,会展示出容器内部各个应用之间的关系图,并且根据指标展示出监控指标的值,我们这里展示了网络流量,下面第二幅图展示了CPU。

这些可视化的分析图可以通过新建 一个 Dashboard 然后选择已有的模板即可完成,如下图:

总结

在了解完Sysdig 提供的Docker监控产品以后,我们会发现它不但提供了单兵作战的利器——Sysdig 命令行工具集,还给出了业内相对而言比较完善的监控解决方案 Sysdig Cloud,而且使用非常方便,甚至与 AWS的 Amazon CloudWatch 有极为方便的集成,所以总体而言开发者使用 Sysdig Cloud 是可以很快速地完成在生产环境监控容器服务的需求。

后续我们还会在该系列文章中陆续介绍其他几家Docker监控服务厂商的产品,最终会有一个各厂家监控产品的横向对比和分析,敬请期待。

时间: 2024-08-22 14:53:24

DockerCon 2016 深度解读:Docker监控厂商之Sysdig的相关文章

DockerCon 2016 深度解读: Docker安全

前言 前端时间在乌云上出现了一篇很火的文章,从网上可以扫描到很多暴露控制端口到公网的Docker,并且没有配置认证策略,攻击者可以直接通过Docker Remote API控制Docker,而Docker通常又是用root权限启动的,所以攻击者等于完全获取的整个系统的权限.这件事再次给我们敲响了安全警钟,安全无小事,一个看似很小的问题,背后可能潜藏着巨大的安全风险. 本文将介绍Docker安全相关的一些技术,安全生态和最新的安全特性. 容器技术 容器技术最早可以追述到1979年在Unix上的ch

DockerCon 2016 深度解读:在阿里云上体验Docker 1.12内置的编排能力

昨天才从DockerCon大会归来,阿里云容器服务团队将为大家奉献一系列深入学习的文章来帮助大家了解Docker 1.12的最新动态. 第一部分:在阿里云上体验Docker 1.12内置的编排能力 (本文) 第二部分:在阿里云上体验Docker 1.12的路由能力和容器应用分发部署 在DockerCon第一天的Keynote里面,Docker CTO Solomon Hykes宣布Docker将提供内置的编排(Orchestration)能力,从而能使得Docker Engine原生支持集群管理

DockerCon 2016 深度解读:容器定义存储一窥

谁说Docker只能运行无状态的应用?本次DockerCon大会,众多容器存储解决方案的厂商齐聚一堂,展示了不同的产品或解决方案.有很早就推出开源容器数据管理Flocker的ClusterHQ,传统存储巨头EMC,初创公司Portworx,另外华为推出了自己的容器存储Elara,阿里云也支持通过数据卷(支持OSSFS和NAS)来管理用户的容器数据. 基于容器的存储方案和传统的存储方案的区别 作为非存储领域的人,尝试从容器的角度理解下基于容器的存储方案和传统的存储方案的区别: 容器更易变: 存储要

DockerCon 2016 深度解读: Citrix 服务发现解决方案 —— Nitrox

说起Citrix公司的NetScaler这款硬件负载均衡器大家可能不熟悉,它的竞争对手F5,在运维界可能比较多人了解.硬件负载均衡器通常作为网络入口流量分流的设备,例如像淘宝网的流量特别大,可能只有几个入口IP,在淘宝网的流量的最前端就会部署像F5或者NetScaler这样的硬件负载均衡器作为分流. 随着云计算越来越深入人心,像Citrix这种硬件设备商越来越卖不动了,因为绝大部分中小企业都直接跟云计算公司采购所需的虚拟设备,这样的设备可定制,可按需动态分配.Citrix也是积极跟云计算公司,例

DockerCon 2016:解读Weaveworks 提供的容器集群网络和监控解决方案

Dockercon 2016 -- Weaveworks Micro SDNs by Weaveworks "Micro SDNs"建立在传统的SDN和经典网络之上,它和传统的区别在于软件的网络是在软件启动的时候自己配置好,还是首先人为配置好网络后再创建应用.通过"Micro SDNs"的方式可以减少很多软件部署时的错误,并能让软件得到快速的迭代. Weaveworks' Weave Net是容器化部署的网络解决方案.Weaveworks的Micro SDN方案对开

DockerCon 2016 Day1 :Docker社区爆发增长

一年一度的Docker盛会终于在西雅图的华盛顿州国际会议正式开幕.分别来自北京.杭州.圣马特奥的几位阿里巴巴小伙伴齐聚雨城西雅图.在DockerCon,无论是西雅图的风景,还是国内外的热情伙伴,还是Docker的最新进展和社区动态,都让人兴奋. Bump up   一行人来到会议中心的三楼,即使本次会议注册是根据参会者的姓名首字母分队伍排队,每个队伍已经排起一字长龙(据说本次参加DockerCon有4000多人).每个参会者除了能领到一个带有Docker标识的包和T恤以外,还有一个白色的蓝牙LE

DockerCon 2016 西雅图即将到来,8大主题详尽解读

DockerCon 2016 距离全球Docker粉丝最受欢迎的DockerCon 2016,只有短短几天.大家一定想了解,本次大会有哪些新的技术会推出?哪些新的场景又使用上容器技术?各大厂商又是如何在生产环境部署Docker?本文通过对会议议题的解读,帮助大家提前了解会议的亮点. 本次DockerCon大会持续2天半(6.19-6.21),在西雅图的华盛顿州会议中心举办.除了主会场外,还有另外8个分会场.分别有 用户故事(IBM.GE.Furgo) 百搭 (微服务) Docker技术 (eng

Radware深度解读肆虐全球的WannaCry勒索攻击

本文讲的是Radware深度解读肆虐全球的WannaCry勒索攻击,2017年5月12日,勒索软件变体WannaCrypt恶意软件(也作WCry.WannaCry或WanaCrypt0r)在全球范围内爆发,攻击目标是全球范围内的电脑,并成功击垮了全球数十家企业.攻击受害者包括中国的大学.俄罗斯联邦内政部.英国国家医疗服务系统以及包括联邦快递.西班牙电信公司Telefonica和法国汽车制造商Renault等在内的企业. Radware ERT研究团队针对这一持续肆虐的恶意软件做了深入研究分析,本

DockerCon 2016 Day2 : 企业生产环境可用

DockerCon 第二天,一早现场就非常火爆.由于西雅图的天气从早到晚没啥变化,再加上时差的问题,不得不靠咖啡来提神. 好在上午大会有几个让人非常兴奋的消息公布:Docker在企业生产环境就绪,Docker支持Windows就绪.Docker的新能力支持,虽然大部分在意料之中,但是实在感叹其速度之快. 中午,在Community Theater,一边喝啤酒一边听来自阿里的分享"阿里云的容器实践",很多老外对阿里巴巴的电商和专有云场景比较关心. 下午,听了TechCrunch和eWee