Weave Scope是Docker和Kubernetes的可视化监控管理软件。这个项目会自动生成容器之间的关系图,方便理解容器之间的关系,也方便监控容器化和微服务化的应用。

部署成功后,有如下相关组件:

  • DaemonSet:weave-scope-agent,集群每个节点上都会运行的 scope agent 程序,负责收集数据。
  • Deployment:weave-scope-app,scope 应用,从 agent 获取数据,通过 Web UI 展示并与用户交互。
  • Service:weave-scope-app,NodePort类型。

一、 wget https://git.io/scope

此时提示错误:

ERROR: cannot verify git.io's certificate, issued by ?.C=CN/ST=ShenYang/L=LiaoNing/O=Neusoft Corporation/OU=Neusoft Corporation/CN=wsg.neusoft.com/emailAddress=ipm@neusoft.com?.Unable to locally verify the issuer's authority.
To connect to git.io insecurely, use `--no-check-certificate'.

二、wget https://git.io/scope --no-check-certificate

三、chmod a+x /etc/weavescope/temp/scope

四、./scope launch

五、在浏览器内打开 http://ip:4040 即可访问

注1:部署前确保已经安装docker

注2:如果没有所需的镜像,则

#在方便上网的主机上将镜像下载下来
docker pull weaveworks/scope:1.9.1
#将docker打成一个tar包,方便在主机间复制粘贴
#解压的tar会存放在当前路径下
docker save  weaveworks/scope:1.9.1 > scope.tar
#在需要的主机上解压tar包,解压之后就可以通过docker images语句查找到这个镜像了
docker load < scope.tar[root@node1 temp]# docker load < scope.tar
Loaded image: weaveworks/scope:1.9.1

如何在Weave Scope 部署在k8s上

一、yaml 文件

apiVersion: v1
kind: List
items:- apiVersion: v1kind: Namespacemetadata:name: weaveannotations:cloud.weave.works/version: unknown- apiVersion: v1kind: ServiceAccountmetadata:name: weave-scopeannotations:cloud.weave.works/launcher-info: |-{"original-request": {"url": "/k8s/scope.yaml?k8s-version=1.10.0%20-sL%20-o%20scope.yaml","date": "Mon Nov 19 2018 02:12:30 GMT+0000 (UTC)"},"email-address": "support@weave.works"}labels:name: weave-scopenamespace: weave- apiVersion: rbac.authorization.k8s.io/v1beta1kind: ClusterRolemetadata:name: weave-scopeannotations:cloud.weave.works/launcher-info: |-{"original-request": {"url": "/k8s/scope.yaml?k8s-version=1.10.0%20-sL%20-o%20scope.yaml","date": "Mon Nov 19 2018 02:12:30 GMT+0000 (UTC)"},"email-address": "support@weave.works"}labels:name: weave-scoperules:- apiGroups:- ''resources:- podsverbs:- get- list- watch- delete- apiGroups:- ''resources:- pods/log- services- nodes- namespaces- persistentvolumes- persistentvolumeclaimsverbs:- get- list- watch- apiGroups:- appsresources:- statefulsetsverbs:- get- list- watch- apiGroups:- batchresources:- cronjobs- jobsverbs:- get- list- watch- apiGroups:- extensionsresources:- deployments- daemonsetsverbs:- get- list- watch- apiGroups:- extensionsresources:- deployments/scaleverbs:- get- update- apiGroups:- storage.k8s.ioresources:- storageclassesverbs:- get- list- watch- apiVersion: rbac.authorization.k8s.io/v1beta1kind: ClusterRoleBindingmetadata:name: weave-scopeannotations:cloud.weave.works/launcher-info: |-{"original-request": {"url": "/k8s/scope.yaml?k8s-version=1.10.0%20-sL%20-o%20scope.yaml","date": "Mon Nov 19 2018 02:12:30 GMT+0000 (UTC)"},"email-address": "support@weave.works"}labels:name: weave-scoperoleRef:kind: ClusterRolename: weave-scopeapiGroup: rbac.authorization.k8s.iosubjects:- kind: ServiceAccountname: weave-scopenamespace: weave- apiVersion: apps/v1beta1kind: Deploymentmetadata:name: weave-scope-appannotations:cloud.weave.works/launcher-info: |-{"original-request": {"url": "/k8s/scope.yaml?k8s-version=1.10.0%20-sL%20-o%20scope.yaml","date": "Mon Nov 19 2018 02:12:30 GMT+0000 (UTC)"},"email-address": "support@weave.works"}labels:name: weave-scope-appapp: weave-scopeweave-cloud-component: scopeweave-scope-component: appnamespace: weavespec:replicas: 1revisionHistoryLimit: 2template:metadata:labels:name: weave-scope-appapp: weave-scopeweave-cloud-component: scopeweave-scope-component: appspec:containers:- name: appargs:- '--mode=app'command:- /home/weave/scopeenv: []image: '10.4.54.37/prometheus/scope:aclomev1.0'imagePullPolicy: IfNotPresentports:- containerPort: 4040protocol: TCP- apiVersion: v1kind: Servicemetadata:name: weave-scope-appannotations:cloud.weave.works/launcher-info: |-{"original-request": {"url": "/k8s/scope.yaml?k8s-version=1.10.0%20-sL%20-o%20scope.yaml","date": "Mon Nov 19 2018 02:12:30 GMT+0000 (UTC)"},"email-address": "support@weave.works"}labels:name: weave-scope-appapp: weave-scopeweave-cloud-component: scopeweave-scope-component: appnamespace: weavespec:type: NodePortports:- name: appport: 80protocol: TCPtargetPort: 4040nodePort: 30036selector:name: weave-scope-appapp: weave-scopeweave-cloud-component: scopeweave-scope-component: app- apiVersion: extensions/v1beta1kind: DaemonSetmetadata:name: weave-scope-agentannotations:cloud.weave.works/launcher-info: |-{"original-request": {"url": "/k8s/scope.yaml?k8s-version=1.10.0%20-sL%20-o%20scope.yaml","date": "Mon Nov 19 2018 02:12:30 GMT+0000 (UTC)"},"email-address": "support@weave.works"}labels:name: weave-scope-agentapp: weave-scopeweave-cloud-component: scopeweave-scope-component: agentnamespace: weavespec:minReadySeconds: 5template:metadata:labels:name: weave-scope-agentapp: weave-scopeweave-cloud-component: scopeweave-scope-component: agentspec:containers:- name: scope-agentargs:- '--mode=probe'- '--probe-only'- '--probe.kubernetes=true'- '--probe.docker.bridge=docker0'- '--probe.docker=true'- 'weave-scope-app.weave.svc.cluster.local:80'command:- /home/weave/scopeenv:- name: KUBERNETES_NODENAMEvalueFrom:fieldRef:apiVersion: v1fieldPath: spec.nodeNameimage: '10.4.54.37/prometheus/scope:aclomev1.0'imagePullPolicy: IfNotPresentsecurityContext:privileged: truevolumeMounts:- name: scope-pluginsmountPath: /var/run/scope/plugins- name: sys-kernel-debugmountPath: /sys/kernel/debug- name: docker-socketmountPath: /var/run/docker.sockdnsPolicy: ClusterFirstWithHostNethostNetwork: truehostPID: trueserviceAccountName: weave-scopetolerations:- effect: NoScheduleoperator: Existsvolumes:- name: scope-pluginshostPath:path: /var/run/scope/plugins- name: sys-kernel-debughostPath:path: /sys/kernel/debug- name: docker-sockethostPath:path: /var/run/docker.sockupdateStrategy:type: RollingUpdate

注:如果是部署在k8s集群上,需要保证集群每台主机上都有Weave Scope的镜像。部署工作在主节点上进行。

对于下载下来的yaml文件,需要修改的地方主要在于:镜像image并且需要注意这个yaml文件所对用的k8s的版本。这里使用的是1.10.0版本的k8s。

注:这里一定不要修改命名空间的名称,否则会出现k8s上Weave Scope的相关服务是绿色状态,但是通过ip:4040并不能将服务起来。查询日志之后发现报出如下错误:

kubectl get pod -n monitoring
#通过查到的Name,进行日志查询
kubectl logs ****** -n monitoring
#日志如下time="2018-11-19T04:14:52Z" level=info msg="publishing to: weave-scope-app.weave.svc.cluster.local:80"
<probe> INFO: 2018/11/19 04:14:52.771945 command line args: --mode=probe --probe-only=true --probe.docker=true --probe.docker.bridge=docker0 --probe.kubernetes=true weave-scope-app.weave.svc.cluster.local:80
<probe> INFO: 2018/11/19 04:14:52.772177 probe starting, version 1.9.1, ID 69104705f7ee9d33
<probe> WARN: 2018/11/19 04:14:52.781012 Cannot resolve 'scope.weave.local.': dial tcp 172.17.0.1:53: connect: connection refused
<probe> WARN: 2018/11/19 04:14:52.785100 Cannot resolve 'weave-scope-app.weave.svc.cluster.local': lookup weave-scope-app.weave.svc.cluster.local on 10.233.0.3:53: no such host
<probe> WARN: 2018/11/19 04:14:52.809246 Error setting up the eBPF tracker, falling back to proc scanning: kernel not supported: got kernel 3.10.0-693.el7.x86_64 but need kernel >=4.4
<probe> INFO: 2018/11/19 04:14:52.811067 kubernetes: targeting api server https://10.233.0.1:443
<probe> WARN: 2018/11/19 04:14:52.824849 Error collecting weave status, backing off 10s: Get http://127.0.0.1:6784/report: dial tcp 127.0.0.1:6784: connect: connection refused. If you are not running Weave Net, you may wish to suppress this warning by launching scope with the `--weave=false` option.
<probe> ERRO: 2018/11/19 04:14:52.847980 conntrack stderr:NOTICE: Netlink socket buffer size has been set to 8388608 bytes.
<probe> ERRO: 2018/11/19 04:14:52.848175 conntrack stderr:NOTICE: Netlink socket buffer size has been set to 8388608 bytes.
<probe> ERRO: 2018/11/19 04:14:53.033707 Error checking version: Get https://checkpoint-api.weave.works/v1/check/scope-probe?arch=amd64&flag_kernel-version=3.10.0-693.el7.x86_64&flag_kubernetes_enabled=true&flag_os=linux&os=linux&signature=7lTp8sClaKWy%2F%2FjNq6sAGIqtijjsURa3XD5JuD41vjQ%3D&version=1.9.1: dial tcp: lookup checkpoint-api.weave.works on 10.233.0.3:53: server misbehaving
<probe> ERRO: 2018/11/19 04:14:53.280907 Error checking version: Get https://checkpoint-api.weave.works/v1/check/scope-probe?arch=amd64&flag_kernel-version=3.10.0-693.el7.x86_64&flag_kubernetes_enabled=true&flag_os=linux&os=linux&signature=7lTp8sClaKWy%2F%2FjNq6sAGIqtijjsURa3XD5JuD41vjQ%3D&version=1.9.1: dial tcp: lookup checkpoint-api.weave.works on 10.233.0.3:53: server misbehaving
<probe> WARN: 2018/11/19 04:15:02.826066 Error collecting weave status, backing off 20s: Get http://127.0.0.1:6784/report: dial tcp 127.0.0.1:6784: connect: connection refused. If you are not running Weave Net, you may wish to suppress this warning by launching scope with the `--weave=false` option.

二、kubectl apply --namespace monitoring -f scope.yaml

大多数教程都是通过 apply 进行操作的,这里可以还是延续之前的方法,通过create进行创建。无论什么方式都是可以通过delete进行删除的。

kubectl create --namespace weave -f scope.yaml

注1:查看k8s中所有的命名空间:kubectl get ns -o wide

注2:端口介绍

#通过ip:4040访问也可,通过ip:30036访问也可。
#不同的是通过30036访问可以除了可以查询到基本信息之外,还可以查询到k8s Pod等的相关信息。
targetPort: 4040
nodePort: 30036

注3:什么是守护进程?
Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。

Web端功能介绍

拓扑是节点和边的集合,其中节点表示进程、容器、Pod或主机等对象,边指示节点间的tcp连接。点击 HOSTS,可以显示k8s上各主机之间的关系。

点击具体的主机节点,可以显示该主机节点的详细信息。在详细信息界面不仅可以查看当前CPU,内存的使用情况及其历史曲线,还可以很方便的查看出节点间TCP进站出站连接请求的数量以及此节点上的进程、容器、Pods、镜像列表。点击列表中的名字可以跳转到对应内容的详细信息界面。点击界面上方的 >_ 按钮则可以直接打开节点的命令行终端,进而对这个主机节点进行远程的管理和操作。

Weave Scope会自动构建逻辑拓扑。点击Pods,会显示所有Pod以及Pod之间的关系。左下角还可以对显示哪些Pod进行筛选,并且可以在右上角自由选择切换图形或表格两种展现形式。两种展现形式各有对方没有的信息,相互补充。

如果选择的是Container,我们可以根据自己的需要在左下角根据容器的属性进行过滤,可以只显示系统容器,或者只显示应用容器。还可以根据容器的状态进行过滤,可以只显示停止状态的容器,或者只显示运行状态的容器等等。容器图标下面标明了其所在的节点。

点击具体的Container,详细信息界面上方的按钮从左到右的功能分别为:attach 到容器,相当于执行 docker container attach ; 打开 shell,相当于执行 docker container exec ;重启容器;暂停容器;关闭容器。下图仍以打开shell为例:

Weave Scope还支持关键字搜索和定位资源功能。

此外还支持条件搜索,比如查找和定位 MEMORY > 100M 的Pod。

===============================================
Weave Scope 使用说明文献:
1、https://www.cnblogs.com/CloudMan6/p/7655294.html

2、https://blog.csdn.net/CloudMan6/article/details/80530149

3、https://blog.csdn.net/horsefoot/article/details/51749528

Weave Scope由两部分组成:App和探针。探针负责收集有关运行它的主机的信息,这些信息以报告的形式发送到App。App将探针发来的报告处理为可用拓扑, 为 UI 提供服务, 并将这些拓扑推送到 UI。

如何部署WeaveScope相关推荐

  1. kubesphere部署weavescope

    1.kubesphere开启weavescope功能 weavescope是一款Docker 和 Kubernetes 的可视化和监控工具,WeaveScope 监控展示了主机.容器.进程的众多常用数 ...

  2. 实战:部署Prometheus

    1.部署 Prometheus 已经部署过prometheus后重启动 docker ps -a -q | xargs docker start ########################### ...

  3. KubeOperator总体介绍(K8S集群部署管理工具)

    总体介绍⚓︎ KubeOperator 是一个开源的轻量级 Kubernetes 发行版,专注于帮助企业规划.部署和运营生产级别的 Kubernetes 集群. KubeOperator 提供可视化的 ...

  4. 基于Kubernetes的持续部署方案

    戳蓝字"CSDN云计算"关注我们哦! 文章转载自Docker 方案概述 本技术方案为基于Kubernetes为核心的持续部署(下文简称CD)方案,可以满足开发方的程序级日志查看分析 ...

  5. 二进制部署Kubernetes v1.13.4 HA可选

    本次采用二进制文件方式部署,本文过程写成了更详细的ansible部署方案 https://github.com/zhangguanzhang/Kubernetes-ansible 和之前的步骤差不多都 ...

  6. K8S 学习笔记三 核心技术 Helm nfs prometheus grafana 高可用集群部署 容器部署流程

    K8S 学习笔记三 核心技术 2.13 Helm 2.13.1 Helm 引入 2.13.2 使用 Helm 可以解决哪些问题 2.13.3 Helm 概述 2.13.4 Helm 的 3 个重要概念 ...

  7. kubernetes使用 (十六)helm工具部署 及coredns组件

    我们在之前想要部署一个应用需要做些什么? 1. 编写yaml文件 #kubectl create deployment web --image=nginx:1.15 --dry-run -o yaml ...

  8. ansible-playbook部署Docker Swarm集群

    通过ansible-playbook,部署Docker Swarm集群. docker安装目录: /var/lib/dockerdocker命令目录: /usr/bin/dockercompose命令 ...

  9. k8s部署weave scope可视化工具

    Weave Scope 是一款 Docker 和 Kubernetes 的可视化监控工具.它提供了自上而下的应用程序视图以及整个基础架构视图,用户可以轻松对分布式的容器化应用进行实时监控和问题诊断,以 ...

最新文章

  1. 接口中的泛型要怎么写?
  2. 配置MYSQL基于GTID 主从复制详细解析及步骤
  3. Ehcache学习笔记(一)基础入门
  4. MySQL查询出来的不重复
  5. 开源|LightGBM:三天内收获GitHub 1000+ 星
  6. poj-2528线段树练习
  7. 如何在 CentOS 中设置 NTP 服务器
  8. 电脑服务器系统被管理员停用,Win7系统任务管理器已被系统管理员停用怎么办?...
  9. [转载] java简易爬虫Crawler
  10. 【QA】揭开知识库问答KB-QA的面纱1·简介篇
  11. android 音视频硬编解码
  12. 国内常用的5个中文期刊论文网站,5个外文文献网站
  13. 浅谈对社会工程学的认识
  14. 统计学与概率论的区别
  15. 计算机房属于学校场馆吗,校园常见火灾的预防和逃生安全知识
  16. c语言中浮点数取整函数,浮点取整函数
  17. 课堂派“互动课件”文件下载
  18. Linux系列(五)、Vim编辑器的使用、账号用户组的管理、磁盘管理、进程管理
  19. 软件测试工程师必备干货,移动应用测试【建议收藏】
  20. 一个简单有效的兼容IE7浏览器的办法

热门文章

  1. 性能杀手之异常霸气外露!找死!
  2. CSDN上有哪些赚钱方法?上传付费资源赚钱!
  3. 微信小程序商品界面实现,顶部固定,解决顶部内容重叠问题,动态加载顶部标签栏
  4. 微信FileStorage MsgAttach文件太乱怎么办?教你用Python解决
  5. Mac安装Command Line Tools
  6. 智慧工地APP——dtsite
  7. 常见java空指针异常NPE
  8. 南京师范大学计算机技术调剂,南京师范大学2019年接收高质量生源调剂生通知...
  9. 四川音乐学院计算机音乐创作,大学生计算机音乐创作类决赛揭晓 浙音6件作品均获奖...
  10. idea uml图怎么画_Idea中UML类图