返回顶部
首页 > 资讯 > 精选 >如何通过Splunk监控Kubernetes运行性能
  • 242
分享到

如何通过Splunk监控Kubernetes运行性能

2023-06-27 10:06:19 242人浏览 泡泡鱼
摘要

这篇文章主要介绍如何通过Splunk监控kubernetes运行性能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Splunk是业界领先的机器数据收集、处理、分析和管理平台。机器数据是指那些能够为企业业务发展提供动力

这篇文章主要介绍如何通过Splunk监控kubernetes运行性能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

Splunk是业界领先的机器数据收集、处理、分析和管理平台。机器数据是指那些能够为企业业务发展提供动力的应用、服务器、存储、网络设备、安全设备以及其他相关设备制造出来的数据。机器数据可以反映客户、交易、应用、服务器、网络等的行为或活动。机器数据的范围远远超越了日志

如何通过Splunk监控Kubernetes运行性能

部署架构

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

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

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

利用Splunk的搜索命令和仪表盘功能对性能数据进行监控 如何通过Splunk监控Kubernetes运行性能

前期准备

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

编译最新的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 myheapstermkdir myheapster/srcexport GoPATH=myheapstercd myheapster/srcgit clone https://GitHub.com/kubernetes/heapster.gitcd heapstermake container

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

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

Https://github.com/kubernetes/heapster/blob/master/metrics/sinks/statsd/statsd_client.go

func (client *statsdClientImpl) open() error {var err errorclient.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,参考这个文档 如何通过Splunk监控Kubernetes运行性能

安装配置Heapster

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

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

deployment.yaml

apiVersion: extensions/v1beta1kind: Deploymentmetadata: name: heapster namespace: kube-systemspec: 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: v1kind: Servicemetadata: labels:   task: monitoring   # For use as a Cluster add-on (https://github.com/kubernetes/kubernetes/tree/master/cluster/addons)   # 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-systemspec: 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=10I0117 18:10:56.054776       1 heapster.go:79] Heapster version v1.5.0-beta.4I0117 18:10:56.054963       1 configs.go:61] Using Kubernetes client with master "https://kubernetes.default" and version v1I0117 18:10:56.054978       1 configs.go:62] Using kubelet port 10255I0117 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 SinkI0117 18:10:56.076281       1 heapster.go:202] Starting with Metric SinkI0117 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)
如何通过Splunk监控Kubernetes运行性能

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

| mstats avg(_value) WHERE metric_name=cluster.cpu/usage_rate span=30m
如何通过Splunk监控Kubernetes运行性能

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

| mstats avg(_value) WHERE metric_name=namespace.kube-system.memory/usage span=30m
如何通过Splunk监控Kubernetes运行性能

大家可以把自己感兴趣的分析结果放在Dashboard中,利用Realtime设置进行监控。 如何通过Splunk监控Kubernetes运行性能

以上是“如何通过Splunk监控Kubernetes运行性能”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: 如何通过Splunk监控Kubernetes运行性能

本文链接: https://lsjlt.com/news/310048.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何通过Splunk监控Kubernetes运行性能
    这篇文章主要介绍如何通过Splunk监控Kubernetes运行性能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Splunk是业界领先的机器数据收集、处理、分析和管理平台。机器数据是指那些能够为企业业务发展提供动力...
    99+
    2023-06-27
  • 如何监控Graylog服务器的性能和运行状况
    要监控Graylog服务器的性能和运行状况,可以使用以下方法: 使用Graylog自带的监控功能:Graylog提供了一些内置的...
    99+
    2024-04-02
  • 如何进行磁盘IO性能监控
    今天就跟大家聊聊有关如何进行磁盘IO性能监控,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。windows命令行下如何查看磁盘空间大小文章分类:操作系统 查看所有 wmic DiskD...
    99+
    2023-06-06
  • 如何监控mysql性能
    这篇文章主要介绍了如何监控mysql性能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。查看mysql服务器静态参数:show variabl...
    99+
    2024-04-02
  • Linux系统运行时参数命令(性能监控、测试)(3)网络IO性能监控
    目录 5. 网络IO性能监控5.1 性能指标5.2 网络信息5.2.1 网络配置5.2.2 套接字信息5.2.3 网络吞吐-sar命令5.2.4 连通性和延时 5.3 其他常用的网络相关...
    99+
    2023-08-31
    linux 网络
  • PHP中如何进行应用性能监控?
    PHP是一种广泛应用于Web开发的服务器端脚本语言,具有高效、简单和易于学习等特点,被广泛应用于网站、Web应用程序和服务器端软件的开发中。对于这样的应用程序来说,应用性能监控是一个非常重要的话题,因为这有助于开发人员找到其应用程序中的性能...
    99+
    2023-05-14
    PHP 性能优化 应用性能监控
  • 如何进行C++代码的性能监控?
    如何进行C++代码的性能监控?简介:在软件开发中,性能是一个非常重要的指标。对于C++开发者来说,监控代码的性能可以帮助他们发现潜在的性能问题,并进行优化以提高程序的效率。本文将介绍一些常用的C++性能监控工具和技术,帮助开发者更好地监控和...
    99+
    2023-11-04
    代码 C++ 性能监控
  • pt-stalk如何监控MySQL运行
    小编给大家分享一下pt-stalk如何监控MySQL运行,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 1. 使用pt-stalk pt-stalk --collect-tcpdump...
    99+
    2024-04-02
  • 如何监控Nodejs的性能
    这篇文章给大家分享的是有关如何监控Nodejs的性能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。监控Nodejs的性能,最近想监控一下Nodejs的性能。记录分析Log太麻烦,...
    99+
    2024-04-02
  • 描述如何通过Netdata监控云数据库服务的性能和可用性
    要通过Netdata监控云数据库服务的性能和可用性,可以按照以下步骤操作: 安装Netdata:首先,在云服务器上安装Netdata监控工具。可以通过官方网站提供的安装脚本或者包管理工具来安装Netdata。 配置Netdata:在...
    99+
    2024-06-03
    zabbix
  • 如何对Linux进行详细的性能监控
    本篇内容主要讲解“如何对Linux进行详细的性能监控”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何对Linux进行详细的性能监控”吧!这是我们正在进行的Linux命令和性能监控系列的一部分。...
    99+
    2023-06-13
  • python如何监控PostgreSQL代码运行
    如何监控PostgreSQL存储过程/函数代码运行?本文介绍用python+微信/邮件的方式进行报警、监控。 首先要有一张表、用于存放PostgreSQL存储过程/函数代码运行异常的信息。 处理原则:若出现异常;把“发生时间+所...
    99+
    2017-07-01
    python如何监控PostgreSQL代码运行
  • Redis如何实现性能监控
    小编给大家分享一下Redis如何实现性能监控,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!redis_exporter + prometheus +grafana监控Redis服务指标1....
    99+
    2024-04-02
  • Linux如何实现性能监控
    小编给大家分享一下Linux如何实现性能监控,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! TOP命令显示的是一些Oracle session占用CPU...
    99+
    2023-06-13
  • Spring Boot如何监控SQL运行情况?
    目录前言MYSQL监控慢SQLMySLQ如果需要监控慢SQL,需要在/ect/my.cnf文件中进行如下配置:输出结果Druid监控慢SQL添加Druid依赖Yml文件中配置Drui...
    99+
    2024-04-02
  • 如何用Shell监控iptables运行状态
    这篇文章主要介绍“如何用Shell监控iptables运行状态”,在日常操作中,相信很多人在如何用Shell监控iptables运行状态问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用Shell监控ipt...
    99+
    2023-06-09
  • 如何使用监控和预警机制确保 PHP 函数高性能运行?
    监控和预警机制可确保 php 函数高性能运行:1.监控机制收集运行时间、内存使用等指标,识别性能瓶颈。2.预警机制根据阈值设置报警,当指标超出阈值时及时提醒。3.实战案例:监控检测函数执...
    99+
    2024-04-25
    php 高性能
  • 监控ASP性能:揭开网站流畅运行的秘密
    : 1. ASP性能监控的重要性 ASP性能监控对于确保网站的流畅运行至关重要。一个性能良好的网站可以提高用户的满意度,降低跳出率,并最终带来更多的转化。另一方面,一个性能不佳的网站会让用户感到沮丧,并可能导致他们离开网站。 2. ASP...
    99+
    2024-02-11
    ASP性能 监控工具 方法
  • 如何对Prometheus系统进行性能调优和监控
    要对Prometheus系统进行性能调优和监控,可以通过以下方法: 调整Prometheus的配置文件:可以根据实际需求调整Pr...
    99+
    2024-03-04
    Prometheus
  • SQLServer中如何进行性能监控和故障排除
    在SQL Server中,可以使用多种方法进行性能监控和故障排除,以下是一些常用的方法: SQL Server Profiler...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作