k8s可视化监控之-weavescope(代码片段)

python-k8s python-k8s     2022-12-02     574

关键词:

K8s可视化监控之-Weave Scope

 

一 背景

在生成环境中k8s应用部署众多,需要一款可视化工具方便日常获知集群的实时状态,并为故障排查提供及时和准确的数据支持。在此背景下,Weaveworks的项目Weave Scope 应运而生,其是一款 Docker 和 Kubernetes 可视化监控工具。Scope 提供了至上而下的集群基础设施和应用的完整视图,用户可以轻松对分布式的容器化应用进行实时监控和问题诊断,以确保容器应用程序的稳定性和性能,通过查看容器上下文的度量/标记,以及原数据,在容器内部的进程之间可以轻松的确定运行服务消耗最多CPU/内存资源的容器,

二 组件详解

2.1 功能

Weave Scope可以监控kubernetes集群中的一系列资源的状态、资源使用情况、应用拓扑、scale、还可以直接通过浏览器进入容器内部调试等,其提供的功能包括:

  • 交互式拓扑界面
  • 图形模式和表格模式
  • 过滤功能
  • 搜索功能
  • 实时度量
  • 容器排错
  • 插件扩展

2.2 组成

Weave Scope由App和Probe两部分组成:

  • Probe Agent负责收集容器和宿主的信息,并发送给 App

  • App 负责处理这些信息,并生成相应的报告,并以交互界面的形式展示

2.3 部署模式

  1. weave-scope-agent,集群每个节点上都会运行的 scope agent 程序,负责收集数据,其部署为DaemonSet模式。
  2. weave-scope-app,scope 应用,从 agent 获取数据,通过 Web UI 展示并与用户交互,其部署为Deployment模式。
  3. weave-scope-app,默认是 ClusterIP 类型,为了方便已通过 kubectl edit 修改为 NodePort

三 安装部署

3.1 Node节点部署

最初Weave Scope可以在运行Docker容器的宿主机进行安装部署

sudo curl -L git.io/scope -o /usr/local/bin/scope
sudo chmod a+x /usr/local/bin/scope
scope launch

之后访问http://宿主机IP:4040进行访问

3.2 K8s 资源文件部署

kubectl apply -f "https://cloud.weave.works/k8s/scope.yaml?k8s-version=$(kubectl version | base64 | tr -d ‘
‘)"

# 修改svc 为NodePort
kubectl patch svc $(kubectl get svc -n weave |grep weave-scope-app |awk ‘print $1‘) -p ‘"spec":"type": "NodePort"‘ -n weave


[root@master ~]# kubectl get svc -n weave |grep weave-scope-app 
weave-scope-app   NodePort   10.96.244.177   <none>        80:30156/TCP   52s

# 查看weave 的pod
[root@master ~]# kubectl get pod -n weave -o wide
NAME                                         READY   STATUS    RESTARTS   AGE     IP             NODE     NOMINATED NODE   READINESS GATES
weave-scope-agent-49csj                      1/1     Running   0          7m58s   10.234.2.204   master   <none>           <none>
weave-scope-agent-lxjkb                      1/1     Running   0          7m58s   10.234.2.132   node1    <none>           <none>
weave-scope-agent-wp22d                      1/1     Running   0          7m58s   10.234.2.160   node2    <none>           <none>
weave-scope-app-85966885c8-9gf86             1/1     Running   0          7m59s   10.244.2.246   node2    <none>           <none>
weave-scope-cluster-agent-5c9765fff6-hsl9r   1/1     Running   0          7m58s   10.244.2.247   node2    <none>           <none>

3.2 helm 部署

目前helm 仓库提供了weave-scope编写好的charts,可以fetch到本地,进行简单的修改即可安装,非常方便快捷

[root@master common-service]# helm fetch stable/weave-scope
[root@master common-service]# tar -zxvf weave-scope-1.1.8.tgz
[root@master common-service]# sed -i "s@ type: "ClusterIP"@ type: "NodePort"@" weave-scope/values.yaml 

[root@master common-service]# helm install -n weave-scope --namespace common-service -f weave-scope/values.yaml weave-scope/
NAME:   weave-scope
LAST DEPLOYED: Thu Jan 30 18:37:14 2020
NAMESPACE: common-service
STATUS: DEPLOYED

RESOURCES:
==> v1/ConfigMap
NAME                           DATA  AGE
weave-scope-weave-scope-tests  1     1s

==> v1/DaemonSet
NAME                           DESIRED  CURRENT  READY  UP-TO-DATE  AVAILABLE  NODE SELECTOR  AGE
weave-scope-agent-weave-scope  4        4        0      4           0          <none>         1s

==> v1/Deployment
NAME                                   READY  UP-TO-DATE  AVAILABLE  AGE
weave-scope-cluster-agent-weave-scope  0/1    1           0          1s
weave-scope-frontend-weave-scope       0/1    1           0          1s

==> v1/Pod(related)
NAME                                                    READY  STATUS             RESTARTS  AGE
weave-scope-agent-weave-scope-5xskf                     0/1    ContainerCreating  0         1s
weave-scope-agent-weave-scope-76t2s                     0/1    ContainerCreating  0         1s
weave-scope-agent-weave-scope-qb74g                     0/1    ContainerCreating  0         1s
weave-scope-agent-weave-scope-zggff                     0/1    ContainerCreating  0         1s
weave-scope-cluster-agent-weave-scope-5b8bf77f5f-7jkhq  0/1    ContainerCreating  0         1s
weave-scope-frontend-weave-scope-6d985ccff6-xmz2d       0/1    ContainerCreating  0         1s

==> v1/Service
NAME                     TYPE      CLUSTER-IP   EXTERNAL-IP  PORT(S)       AGE
weave-scope-weave-scope  NodePort  10.233.41.4  <none>       80:31709/TCP  1s

==> v1/ServiceAccount
NAME                                   SECRETS  AGE
weave-scope-cluster-agent-weave-scope  1        1s

==> v1beta1/ClusterRole
NAME                                   AGE
weave-scope-cluster-agent-weave-scope  1s

==> v1beta1/ClusterRoleBinding
NAME                     AGE
weave-scope-weave-scope  1s


NOTES:
You should now be able to access the Scope frontend in your web browser, by
going to the address or hostname of any node in the cluster, using http 
and the port given by:

SCOPE_PORT=$(kubectl -n common-service get svc weave-scope-weave-scope -o jsonpath=‘.spec.ports[?(@.name==http)].nodePort‘); echo $SCOPE_PORT

Most likely one or more of the URLs given by this pipeline will work:

SCOPE_PORT=$(kubectl -n common-service get svc  -o jsonpath=‘.spec.ports[?(@.name==http)].nodePort‘); kubectl get nodes -o jsonpath=‘.items[0].status.addresses[*].address‘ | xargs -I -d" " echo http://:$SCOPE_PORT
For more details on using Weave Scope, see the Weave Scope documentation:

https://www.weave.works/docs/scope/latest/introducing/

四 使用

4.1 资源对象查看

在此以POD资源对象为例,Weave Scope监控对象有进程、容器、pods、主机等,监控项有cpu、内存、平均负载等。

4.1.1 图表方式

技术图片

4.1.2 表格方式

技术图片

4.2 对象资源使用情况

点击某个pod,会展示状态、资源使用、进程等详细信息

技术图片

4.3 日志信息

点击具体POD的get logs弹出Terminal窗口查看日志

技术图片

4.4 描述信息

点击具体POD上的describe通过Terminal来查看POD资源信息

技术图片

4.5 资源伸缩

点击deployment类型的Controllers,可以来web界面来扩展或缩小以及查看POD的数量及详细信息。

技术图片

4.6 容器操作

可以对容器进行attach、exec shell、restart、paus和stop操作以及容器日志查看

技术图片

4.7 条件查询

左下角可按条件展示,有容器类型(系统或者应用)、容器状态(停止或者运行)、命名空间等。

技术图片

4.8 搜索功能

4.8.1 名称

技术图片

4.8.2 资源使用率

技术图片

五 反思

  • weave scope可以以其简洁的可视化为我们更生动形象的展现出service/controller/pod等资源对象的管理及简单的web ui操作,方便故障排除及时定位
  • weave scope作为web ui目前缺少登录验证,可以利用其他方式里面web服务器的验证做安全管控。

参考链接

云原生之kubernetes实战在k8s集群下部署weavescope监控平台(代码片段)

【云原生之kubernetes实战】在k8s集群下部署WeaveScope监控平台一、WeaveScope介绍1.WeaveScope简介2.WeaveScope的特点3.WeaveScope的组成二、检查本地kubernetes集群状态1.检查工作节点状态2.检查系统pod状态三、安装nfs共享存储1.安装nfs2.创建共享... 查看详情

利用weavescope监控容器(代码片段)

1、说明近期测试对Docker的一些监控,恰好有朋友推荐了WeaveScope,说功能比较强大,但配置起来也比较简单,于是开始了接下来的配置,WeaveScope这个项目会自动生成容器之间的关系图,方便理解容器之间的关系,也方便监控容器... 查看详情

docker系列:容器监控工具weavescope安装(代码片段)

...要进行一并完善。这里也是自己一边学习一边进行记录。WeaveScope的最大特点是会自动生成一张Docker容器地图,让我们能够直观地理解、监控和控制容器。千言万语不及一张图,先感受一下。我这里用的是阿里云,首先下载WeaveSco... 查看详情

kubernetes(k8s)之部署让k8s图形化的dashboard(代码片段)

...ard简介部署DashboardDashboard简介Dashboard可以给用户提供一个可视化的Web界面来查看当前集群的各种信息。用户可以用KubernetesDashboard部署容器化的应用、监控应用的状态、执行故障排查任务以及管理Kubernetes各种资源。网址:https... 查看详情

简单好用的容器监控工具-weavescope

简介Weavescope获知集群的实时状态,并为故障排查提供及时和准确的数据支持。是一款Docker和Kubernetes可视化监控工具。提供了至上而下的集群基础设施和应用的完整视图,用户可以对分布式的容器应用进行实时监控和问题... 查看详情

kubernetes(k8s)之资源监控(代码片段)

资源监控Metrics-ServerMetrics-Server演示环境Metrics-Server部署Metrics-ServerMetrics-Server是集群核心监控数据的聚合器,用来替换之前的heapster。容器相关的Metrics主要来自于kubelet内置的cAdvisor服务,有了Metrics-Server之后,用户就可... 查看详情

weavescope监控容器

一.介绍Docker和k8s的监控WeaveScope,功能强大,但配置简单,于是开始了接下来的配置,WeaveScope这个项目会自动生成容器之间的关系图,方便理解容器之间的关系,也方便监控容器化和微服务化的应用。WeaveScope能够很便捷的监控... 查看详情

docker学习(12):docker监控方案之prometheus(代码片段)

...不错的监控方案,它提供了监控数据搜集、存储、处理、可视化和警告一套完整的解决方案,下面是Prometheus的架构PrometheusServer   PrometheusServer负责从Exporter拉取和存储监控数据,并提供一套 查看详情

docker的监控(简单部署sysdig和weavescope)(代码片段)

一、Docker的监控Docker自带的监控命令简单命令介绍psdockercontainerps是我们早已熟悉的命令了,方便我们查看当前运行的容器。新版的Docker提供了一个新命令dockercontainerls,其作用和用法与dockercontainerps完全一样。不过ls含义可能比ps... 查看详情

搭建prometheus监控k8s服务(代码片段)

...ager,kubelet组件的数据,通过http协议传输。Grafana:可视化数据统计和监控平台。示例1、在git克隆prometheus的项目地址到本地。但是,项目已被删除gitclonehttps://github.com/imirsh/kube-prometheus.git但是,网络原因有些时候下... 查看详情

应用监控cat之cat-home源码阅读(代码片段)

...cat-home。  作为观察监控的平台,为所需要的人提供着可视化的稳健服务!  作为web展现层,在java中,自然是以servlet为接收方法了。  以tomcat作为web容器 查看详情

第10章容器监控-081-weavescope多主机监控

除了监控容器,WeaveScope还可以监控DockerHost点击顶部HOSTS菜单项,地图将显示当前host。 与容器类似,点击该host图标将显示详细信息 host当前的资源使用情况和历史曲线一览无余。除此之外也能很方便地查看host上运行的进... 查看详情

docker之可视化工具dockerui(代码片段)

基于dockerAPI有很多图形化工具可以使用,今天我们用到的这款工具叫做dockerUI.DockerUI有如下特点:可对容器进行批量操作可以监控容器各个资源部署和管理都比较方便缺点是不支持多主机管理DockerUIWEb平台介绍:基于RemoteAPI方式管理... 查看详情

centos7下安装docker(17.2docker监控---weavescope)

weavescope的最大的特点是会自动生成一张docker容器地图,让我们能够直观的理解,监控和控制地图先来感受一下(盗图)1.安装执行如下脚本安装运行weavescope  查看详情

k8s/kubesphere监控部署实战图文流程部署nodeexporterprometheusgrafana(代码片段)

...c;并在超过阈值时触发告警。Grafana是一款流行的开源数据可视化工具,支持 查看详情

sh在所有节点中设置weavescope(代码片段)

查看详情

分布式系统监视zabbix讲解四之可视化--技术流ken(代码片段)

...述随着大量的监控数据被采集到Zabbix中,如果用户可以以可视化的表现形式来查看发生了什么事情,那么和仅仅只有数字的表现形式比起来则更加轻松。以下是进行图形设置的地方。图形可以一目了然地掌握数据的流向并关联问... 查看详情

06-k8s服务层event监控及报警(代码片段)

本文介绍如何监控k8s服务层event及报警问题应用或服务部署到k8s集群时,首先会经过k8s的调度,这个过程可能会出现一些问题,比如volume无法正常挂载,没有足够的资源部署服务,服务异常退出等。如何及时了解这些问题,保证... 查看详情