集团主站
欢迎来到成都达内官方网站!达内—美国上市公司 亿元级外企IT培训企业!
成都it培训哪家好
成都it培训哪家好
全国服务监督电话:15023458194  |   联系客服   |
当前位置:主页 > 培训课程 > Linux >

成都运维培训-运维如何使用Heapster和Splunk监控运行性能?

发布者: 成都达内     浏览次数:     发布时间:2019-06-28 09:49:54

Kubernetes已经成为容器编排的事实上的王者,连Docker都已经向K8s女王大人低头。对于Kubernetes的cluster的数据收集和监控已经成为IT运维的一个重要话题。...

  Kubernetes已经成为容器编排的事实上的王者,连Docker都已经向K8s女王大人低头。对于Kubernetes的cluster的数据收集和监控已经成为IT运维的一个重要话题。我们今天来看一看如何利用Splunk最新的Metrics Store来对Kubernetes的集群进行性能监控。

  部署架构

  下图是该方案的部署架构,主要包括:

  利用Heapster收集K8s的性能数据,包含CPU,Memory,Network,File System等

  利用Heapster的Statsd Sink,发送数据到Splunk的Metrics Store

  利用Splunk的搜索命令和仪表盘功能对性能数据进行监控

  成都运维培训-运维如何使用Heapster和Splunk监控运行性能?

  前期准备

  前期主要要准备好两件事:

  编译最新的Heapster的镜像,并上传到某个公共的Docker镜像仓库,例如docker hub

  在Splunk中配置Metrics Store和对应的网络输入(Network Input UDP/TCP)

  这里主要要做的选择是Statsd的传输协议用UDP还是TCP。这里我推荐使用TCP。最新的Heapster代码支持不同的Backend,包含了log, influxdb, stackdriver, gcp monitoring, gcp logging, statsd, hawkular-metrics, wavefront, openTSDB, kafka, riemann, elasticsearch等等。因为Splunk的Metrics Store支持statsd协议,所以可以很容易的和Heapster集成。

  首先我们需要利用最新的heapster代码,编译一个容器镜像,因为docker hub上的heapsterd的官方镜像的版本比较旧,并不支持statsd。所以需要自己编译。

  mkdir myheapster

  mkdir myheapster/src

  export GOPATH=myheapster

  cd myheapster/src

  git clone

  cd heapster

  make container

  运行以上的命令来编译最新的heapster镜像。

  注意,heapster缺省使用udp协议,如果想要使用tcp,需要修改代码

  func (client *statsdClientImpl) open() error {

  var err error

  client.conn, err = net.Dial("udp", client.host)

  if err != nil {

  glog.Errorf("Failed to open statsd client connection : %v", err)

  } else {

  glog.V(2).Infof("statsd client connection opened : %+v", client.conn)

  }

  return err

  }

  把udp改成tcp。

  我在docker hub上放了两个镜像,分别对应udp版本的tcp版本,大家可以直接使用

  naughtytao/heapster-amd64:v1.5.0-beta.3 udp

  naughtytao/heapster-amd64:v1.5.0-beta.4 tcp

  然后需要在Splunk中配置Metrics Store,参考这个文档

  成都运维培训-运维如何使用Heapster和Splunk监控运行性能?

  安装配置Heapster

  在K8s上部署heapster比较容易,创建对应的yaml配置文件,然后用kubectl命令行创建就好了。

  以下是Deployment和Service的配置文件:

  deployment.yaml

  apiVersion: extensions/v1beta1

  kind: Deployment

  metadata:

  name: heapster

  namespace: kube-system

  spec:

  replicas: 1

  template:

  metadata:

  labels:

  task: monitoring

  k8s-app: heapster

  version: v6

  spec:

  containers:

  - name: heapster

  image: naughtytao/heapster-amd64:v1.5.0-beta.3

  imagePullPolicy: Always

  command:

  - /heapster

  - --source=kubernetes:https://kubernetes.default

  - --sink=statsd:udp://ip:port?numMetricsPerMsg=1  service.yaml

  apiVersion: v1

  kind: Service

  metadata:

  labels:

  task: monitoring

  # For use as a Cluster add-on

  # If you are NOT using this as an addon, you should comment out this line.

  kubernetes.io/cluster-service: 'true'

  kubernetes.io/name: Heapster

  name: heapster

  namespace: kube-system

  spec:

  ports:

  - port: 80

  targetPort: 8082

  selector:

  k8s-app: heapster  注意这里deployment的--sink的配置,ip是Splunk的IP或者主机名,port的对应的Splunk的data input的端口号。当使用udp协议的时候,需要配置的numMetricsPerMsg的值比较小,当这个值比较大的时候,会出message too long的error。当使用tcp的时候可以配置较大的数值。

  运行 kubectl apply -f *.yaml 来部署heapster

  如果正常运行,对应的heapster pod的日志如下

  I0117 18:10:56.054746 1 heapster.go:78] /heapster --source=kubernetes:https://kubernetes.default --sink=statsd:udp://ec2-34-203-25-154.compute-1.amazonaws.com:8124?numMetricsPerMsg=10

  I0117 18:10:56.054776 1 heapster.go:79] Heapster version v1.5.0-beta.4

  I0117 18:10:56.054963 1 configs.go:61] Using Kubernetes client with master "https://kubernetes.default" and version v1

  I0117 18:10:56.054978 1 configs.go:62] Using kubelet port 10255

  I0117 18:10:56.076200 1 driver.go:104] statsd metrics sink using configuration : {host:ec2-34-203-25-154.compute-1.amazonaws.com:8124 prefix: numMetricsPerMsg:10 protocolType:etsystatsd renameLabels:map[] allowedLabels:map[] customizeLabel:0x15fc8c0}

  I0117 18:10:56.076248 1 driver.go:104] statsd metrics sink using configuration : {host:ec2-34-203-25-154.compute-1.amazonaws.com:8124 prefix: numMetricsPerMsg:10 protocolType:etsystatsd renameLabels:map[] allowedLabels:map[] customizeLabel:0x15fc8c0}

  I0117 18:10:56.076272 1 heapster.go:202] Starting with StatsD Sink

  I0117 18:10:56.076281 1 heapster.go:202] Starting with Metric Sink

  I0117 18:10:56.090229 1 heapster.go:112] Starting heapster on port 8082

  在Splunk中进行监控

  好了如果一切正常的化,heapster会用statsd的协议和格式发送metrics到Splunk的metrics store。

  然后就可以用利用SPL的mstats和mcatalog命令来分析,监控metrics数据了。

  以下搜索语句列出所有的Metrics

  | mcatalog values(metric_name)

  成都运维培训-运维如何使用Heapster和Splunk监控运行性能?

  以下搜索语句列出整个cluster的CPU使用,我们可以用Area或者Line Chart来可视化搜索结果。

  | mstats avg(_value) WHERE metric_name=cluster.cpu/usage_rate span=30m

  成都运维培训-运维如何使用Heapster和Splunk监控运行性能?

  kube-system namespace的对应内存使用情况

  | mstats avg(_value) WHERE metric_name=namespace.kube-system.memory/usage span=30m

  成都运维培训-运维如何使用Heapster和Splunk监控运行性能?

  大家可以把自己感兴趣的分析结果放在Dashboard中,利用Realtime设置进行监控。

  成都运维培训-运维如何使用Heapster和Splunk监控运行性能?

  好了,更多的分析选项可以参考Splunk文档。

(责任编辑:范老师)
最新开班
  • 成都Java培训班
    免费试听名额发放中...
  • 成都C++培训班
    免费试听名额发放中...
  • 成都PHP培训班
    免费试听名额发放中...
  • 成都网络工程培训班
    免费试听名额发放中...
  • 成都Unity3D培训班
    免费试听名额发放中...
  • 成都大数据培训班
    免费试听名额发放中...
  • 成都uid培训班
    免费试听名额发放中...
  • 成都会计培训班
    免费试听名额发放中...
  • 成都Python培训班
    免费试听名额发放中...
  • 成都嵌入式培训班
    免费试听名额发放中...
  • 成都web培训班
    免费试听名额发放中...
  • 成都软件测试培训班
    免费试听名额发放中...
在线留言
提交

校区地址:绵阳市涪城区临园路东段68号富临大都会7栋3单元9层12号

联系电话:15023458194

公交路线:富乐路口凯德广场(10路;29路;3路;15路;11路;15a路;71路)

校区地址:成都市锦江区东大街紫东楼端35号明宇金融广场19楼1906室

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市高新区奥克斯广场蜀锦路209号一楼商铺

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都锦江区东大街芷泉街229号东方广场C座3楼303

联系电话:15023458194

公交路线:芷泉街(188路;115路;515路;236路;505路;501路;84路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市武侯区佳灵路3号红牌楼广场2号写字楼11楼1115号

联系电话:15023458194

公交路线:红牌楼东(11路;92路;100路;111路;139路;g28路;快速公交K1/K2) 地铁路线:红牌楼站(地铁3号线)

校区地址:成都市锦江区红星路二段70号四川日报大厦502-2

联系电话:15023458194

公交路线:市二医院站(6路;49路;102路;5路;37路;g92路;) 地铁路线:地铁市二医院(地铁3号线)

校区地址:成都市锦江区东大街芷泉段229号东方广场C座16层

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:四川省成都市武侯区高新科技孵化园9号园区E座7楼

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都市人民南路一段86号“城市之心”大厦26楼

联系电话:15023458194

公交路线:成都市人民南路(6路;14路;42路;72路;76路;1010路;)

校区地址:成都市高新区奥克斯广场B座1708

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

了解达内动态
关注成都达内教育公众号

首页 | 关于达内 | 课程中心 | 专家师资 | 视频教程 | 学员空间 | 校企合作 | 新闻资讯 | 就业指导 | 网站地图

2016-2025 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56