Docker容器监控(十)--技术流ken

docker自带的监控命令

docker自带了三个监控命令即ps, top, stats

ps

docker ps 可以帮助我们很快的了解当前正在运行的容器

-a:会显示已经停掉的容器

[[email protected] ~]# docker ps
CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS              PORTS               NAMES
2dc535903c8f        weaveworks/scope:1.10.1   "/home/weave/entrypo…"   14 minutes ago      Up 14 minutes                           weavescope
9c0b7af8f210        busybox                   "sh"                     38 minutes ago      Up 38 minutes                           b10
39e40500da10        busybox                   "sh"                     38 minutes ago      Up 38 minutes                           b9
3f5f98e0c5d2        busybox                   "sh"                     38 minutes ago      Up 38 minutes                           b8
a0cef436f61a        busybox                   "sh"                     38 minutes ago      Up 38 minutes                           b7

top

如果想知道某个容器中运行了哪些进程,可以执行如下的命令:

[[email protected] ~]# docker top 266910b9b
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                7162                7144                0                   14:55               pts/0               00:00:00            sh

stats

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

而且是动态刷新的

[[email protected] ~]# docker stats 266910b9b
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
266910b9bede        b3                  0.00%               52KiB / 487.5MiB    0.01%               978B / 280B         1.97MB / 8.19kB     1

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

sysdig

sysdig 是一个轻量级的系统监控工具,同时它还原生支持容器

第一步:安装运行

[[email protected] ~]# docker container run -it --rm --name=sysdig --privileged=true --volume=/var/run/docker.sock:/host/var/run/docker.sock --volume=/dev:/host/dev --volume=/proc:/host/proc:ro --volume=/boot:/host/boot:ro --volume=/lib/modules:/host/lib/modules:ro --volume=/usr:/host/usr:ro sysdig/sysdig

可以看到,sysdig 容器是以privileged 方式运行,而且会读取操作系统 /dev,/proc 等数据,这是为了获取足够的系统信息。

第二步:进入容器

安装完之后默认进入了容器

第三步:启动sysdig

输入命令csysdig,进入到了如下的界面

第四步:使用sysdig

这是一个类似 linux top 命令的界面,但要强大太多。sysdig 按不同的 View 来监控不同类型的资源,点击底部Views 菜单(或者按 F2),显示 View 选择列表。

我们选择进入containers,即容器监控

回车或者双击 Containers,进入容器监控界面。

sysdig 会显示该 Host 所有容器的实时数据,每两秒刷新一次。

如果想按某一列排序,比如按使用的内存量,很简单,点一下列头 VIRT。

如果想看某个容器运行的进程,比如 b3,将光标移到目标容器,然后回车或者双击。

sysdig 的特点如下:

  1. 监控信息全,包括 Linux 操作系统和容器。
  2. 界面交互性强。

不过 sysdig 显示的是实时数据,看不到变化和趋势。而且是命令行操作方式,需要 ssh 到 Host 上执行,会带来一些不便。

weave scope监控容器

Weave Scope 的最大特点是会自动生成一张 Docker 容器地图,让我们能够直观地理解、监控和控制容器。也是我个人比较喜欢的一款监控软件

第一步:安装

[[email protected] ~]# curl -L git.io/scope -o /usr/local/bin/scope
[[email protected] ~]# chmod a+x /usr/local/bin/scope

第二步:启动

scope launch将以容器方式启动 Weave Scope

[[email protected] ~]# scope launch
8d4082e5447876fd5c6bdb8b22bef3e3624878321d20fea5c95f2efd4646ef01
Scope probe started
Weave Scope is listening at the following URL(s):
  * http://192.168.122.1:4040/
  * http://10.32.0.3:4040/
  * http://172.20.10.2:4040/

根据提示,Weave Scope 的访问地址为 http://[Host_IP]:4040/

如果要查看容器的详细信息,比如 sysdig,可以点击该容器的图标。

在容器信息的上面还有一排操作按钮。

分别是:

 attach 到容器启动进程,相当于执行docker container attach

 打开 shell,相当于执行docker container exec

 重启容器,相当于执行docker container restart

 暂停容器,相当于执行docker container pause

 关闭容器,相当于执行docker container stop

这排按钮使我们能够远程控制容器,相当方便。比如可以直接跳进 sysdig 容器,启动csysdig 监控工具

除了容器,Weave Scope 还可以监控 Docker Host。

weave scope监控主机

点击顶部HOSTS 菜单项,地图将显示当前 host。

与容器类似,点击该 host 图标将显示详细信息。

host 页面上部有一个按钮,点击可直接打开 host 的 shell 窗口,这个远程管理功能真的很贴心。

相当于进入到了你的系统,执行的任何命令都会同步到系统。非常nice

weave scope监控多主机

我们已经领略了 Weave Scope 的丰富功能和友好的操作界面。不过它还有一个重要功能:多主机监控。

真正的部署环境都不可能只有一个 host,如果能在一个界面上监控整个容器环境,那绝对是件非常有效率的事情。

ken: 172.20.10.2

host1: 172.20.10.7

第一步:两个主机上面都需要安装weave scope(两台主机都需要执行)

[[email protected] ~]# curl -L git.io/scope -o /usr/local/bin/scope
[[email protected] ~]# chmod a+x /usr/local/bin/scope

第二步:两个主机上都执行如下的命令

这样,无论访问 http://172.20.10.2:4040 还是 http://172.20.10.7:4040,都能监控到两个 host。

[[email protected] ~]# scope launch 172.20.10.2 172.20.10.7

第三步:查看主机

第四步:查看正在运行的容器

容器图标右面标明了所在的 主机。

第五步:搜索

如果部署的容器数量太多(很常见),Weave Scope 还提供了强悍的搜索功能。

原文地址:https://www.cnblogs.com/kenken2018/p/10330483.html

时间: 2024-08-04 07:05:15

Docker容器监控(十)--技术流ken的相关文章

网站集群架构实战(LVS负载均衡、Nginx代理缓存、Nginx动静分离、Rsync+Inotify全网备份、Zabbix自动注册全网监控)--技术流ken

前言 最近做了一个不大不小的项目,现就删繁就简单独拿出来web集群这一块写一篇博客.数据库集群请参考<MySQL集群架构篇:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高性能-技术流ken>下面是项目的一些简单介绍. WEB集群项目简介 随着网站访问量的激增,势必会导致网站的负载增加,现需求搭载一套高性能,高负载,高可用的网站集群架构以保障网站的持续.高效.安全.稳定的运行. 针对以上需求,我们采用了如下的技术: 使用负载均衡技术来实现网站请求的调度分发,减小后端服务器

zabbix实现百台服务器的自动化监控--技术流ken

前言 最近有小伙伴通过Q联系到我说:公司现在有百多台服务器,想要部署zabbix进行监控,怎么实现自动化全网监控? 本篇博客就把我告诉他的解决方案写出来,供大家以后参考. 实现自动化全网监控,需要用到脚本,以及zabbix的自动注册或者自动发现的功能.以前也写过一篇关于两者的博客<分布式系统监视zabbix讲解八之自动发现/自动注册--技术流ken>,但是内容可能没有那么详尽,本篇博客将详细完整的演示如何使用zabbix实现百台服务器的自动化监控. zabbix自动注册 活动的Zabbix a

Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署动态网站(二)--技术流ken

项目前言 在上一篇博客<Jenkins+Git+Gitlab+Ansible实现持续化集成一键部署静态网站(一)--技术流ken>中已经详细讲解了如何使用这四个工具来持续集成自动化部署一个静态的网站. 如果大家可以熟练掌握以上内容,势必会在工作中减轻不小的工作量. 本篇博客将再次使用这四个工具结合freestyle和pipeline来完成动态网站的部署. 为了拓宽知识点,本篇博客将使用jenkins的两种常用方法来进行部署,如果你对pipeline还不熟悉,请参考我之前的博客<Jenki

zabbix实现QQ邮件报警通知(最详细)--技术流ken

前言 前几天搜了下网上使用zabbix邮件报警通知的文章,大多数还是使用mailx的方法,过程配置起来比较冗余繁琐,这几天想着把自己平时用到的qq邮件报警的方法分享出来供大家参考,以此减少不必要的步骤. zabbix监控端添加客户端 关于如何实现添加主机这里就不再赘述,相信大家对于这个已经很熟练了,大家也可以参考我的博客<分布式系统监视zabbix讲解一之zabbix安装--技术流ken> 第一步:添加监控主机 无需添加模版,我们来自定义监控项 第二步:添加监控点 点击你添加的监控项,创建一个

cobbler批量安装系统使用详解-技术流ken

1.前言 cobbler是一个可以实现批量安装系统的Linux应用程序.它有别于pxe+kickstart,cobbler可以实现同个服务器批量安装不同操作系统版本. 2.系统环境准备及其下载cobbler 一.系统环境 系统版本:CentOS release 6.7 (Final) 内网IP:192.168.232.7/24    #用来对内通信,提供cobbler服务 外网IP:10.220.5.166/24      #连接外网 二. 关闭安全服务 [[email protected] ~

NFS企业级实战应用详解-技术流ken

1.简介 在上一篇博文中讲述了samba的实战应用,samba使得window和linux共享文件成为可能.NFS则实现了linux与linux之间的文件共享. 2.系统环境 系统版本:centos6.7 服务器IP: 10.220.5.166/24 客户端IP: 10.220.5.188/24 3.关闭安全服务 [[email protected] ~]# service iptables stop [[email protected] ~]# setenforce 0 4.下载NFS 当nf

samba企业级实战应用详解-技术流ken

1.简介 Samba是一套使用SMB(Server Message Block)协议的应用程序, 通过支持这个协议, Samba允许Linux服务器与Windows系统之间进行通信,使跨平台的互访成为可能. 2.系统环境 系统版本:centos6.7 服务器IP: 10.220.5.166/24 3.关闭安全服务 [[email protected] ~]# service iptables stop [[email protected] ~]# setenforce 0 4. 安装samba

实战!基于lamp安装Discuz论坛-技术流ken

1.简介 我前面的博客已经详细介绍了lamp采用yum安装以及编译安装的方式,这篇博客将基于yum安装的lamp架构来实战安装Discuz论坛,你可以任选其一来完成. 2.系统环境 centos7.5 服务器IP:172.20.10.7/28 客户端IP:172.20.10.4/28 3.关闭安全服务 [[email protected] ~]# setenforce 0 4.安装lamp [[email protected] ~]# yum install httpd php php-mysq

高可用集群之keepalived+lvs实战-技术流ken

1.keepalived简介 lvs在我之前的博客<高负载集群实战之lvs负载均衡-技术流ken>中已经进行了详细的介绍和应用,在这里就不再赘述.这篇博文将把lvs与keepalived相结合使用,在实际工作中搭建高可用,高负载,高性能的服务器集群. "Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将