• 容器网络(十)Docker 最常用的监控方案【73】


    十、监控

    (一)Docker 最常用的监控方案

    当 Docker 部署规模逐步变大后,可视化监控容器环境的性能和健康状态将会变得越来越重要。

    在本章中,我们将讨论几个目前比较常用的容器监控工具和方案,为大家构建自己的监控系统提供参考。

    首先我们会讨论 Docker 自带的几个监控子命令:ps, top 和 stats。然后是几个功能更强的开源监控工具 sysdig, Weave Scope, cAdvisor 和 Prometheus。最后我们会对这些不同的工具和方案做一个比较。

    (1)Docker 自带的监控子命令

    • ps

      docker container ps 是我们早已熟悉的命令了,方便我们查看当前运行的容器。

      root@ubuntu-01:~# docker container ps
      CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
      root@ubuntu-01:~#
      
      

    前面已经有大量示例,这里就不赘述了。值得注意的是,新版的 Docker 提供了一个新命令 docker container ls,其作用和用法与 docker container ps 完全一样。不过 ls 含义可能比 ps 更准确,所以更推荐使用。

    root@ubuntu-01:~# docker container ls
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    root@ubuntu-01:~#
    
    
    • top

    如果想知道某个容器中运行了哪些进程,可以执行 docker container top [container] 命令。

    root@ubuntu-01:~# docker container top bbox2 
    UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
    root                45037               45010               0                   10:34               pts/0               00:00:00            sh
    root@ubuntu-01:~# 
    
    

    上面显示了 bbox2 这个容器中的进程。命令后面还可以跟上 Linux 操作系统 ps 命令的参数显示特定的信息,比如 -au

    root@ubuntu-01:~# docker container top bbox2  -au
    USER                PID                 %CPU                %MEM                VSZ                 RSS                 TTY                 STAT                START               TIME                COMMAND
    root                45037               0.1                 0.0                 1320                4                   pts/0               Ss+                 10:34               0:00                sh
    root@ubuntu-01:~# 
    
    
    • stats

      docker container stats 用于显示每个容器各种资源的使用情况。

      root@ubuntu-01:~# docker container stats
      
      CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
      555e99376d37        bbox2               0.00%               976KiB / 1.924GiB   0.05%               1.26kB / 0B         0B / 0B             1
      
      CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
      555e99376d37        bbox2               0.00%               976KiB / 1.924GiB   0.05%               1.26kB / 0B         0B / 0B             1
      
      CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
      555e99376d37        bbox2               0.00%               976KiB / 1.924GiB   0.05%               1.26kB / 0B         0B / 0B             1
      
      CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
      555e99376d37        bbox2               0.00%               976KiB / 1.924GiB   0.05%               1.26kB / 0B         0B / 0B             1
      
      CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
      555e99376d37        bbox2               0.00%               976KiB / 1.924GiB   0.05%               1.26kB / 0B         0B / 0B             1
      ^C
      root@ubuntu-01:~# 
      
      

      默认会显示一个实时变化的列表,展示每个容器的 CPU 使用率,内存使用量和可用量。

      注意:容器启动时如果没有特别指定内存 limit,stats 命令会显示 host 的内存总量,但这并不意味着每个 container 都能使用到这么多的内存。

      除此之外 docker container stats 命令还会显示容器网络和磁盘的 IO 数据。

      默认的输出有个缺点,显示的是容器 ID 而非名字。我们可以在 stats 命令后面指定容器的名称只显示某些容器的数据。比如 docker container stats sysdig weave

      ps,top, stats 这几个命令是 docker 自带的,优点是运行方便,很适合想快速了解容器运行状态的场景。其缺点是输出的数据有限,而且都是实时数据,无法反应历史变化和趋势。接下来要介绍的几个监控工具会提供更丰富的功能。

  • 相关阅读:
    python等缩进语言的词法分析实现
    收集Android程序测试代码覆盖率
    对语言之争的看法
    关于asmlinkage
    洛谷 P4171 [JSOI2010] 满汉全席(2sat)
    Codeforces Round #748 (Div. 3)解题报告
    洛谷 P1712 [NOI2016] 区间(尺取法、线段树)
    洛谷 P4782 【模板】2SAT 问题
    洛谷 P3513 [POI2011]KONConspiracy(2sat方案数)
    梦见和深爱的女孩牵着手,竟然从梦中幸福惊醒,醒后一片悲伤~~
  • 原文地址:https://www.cnblogs.com/cuiyongchao007/p/14212526.html
Copyright © 2020-2023  润新知