k8s的kafka监控(prometheus+grafana)

author author     2022-12-20     801

关键词:

欢迎访问我的GitHub

  • 对于部署在K8S上的Kafka来说, Prometheus+Grafana 是常用的监控方案,今天就来实战通过Prometheus+Grafana监控K8S环境的Kafka;

准备工作

  • 今天聚焦的是Kafka监控,因此需要K8S、Helm、Kafka、Prometheus、Grafana等服务都已就绪,下面提供了一些链接,在您做相关部署时可以作为参考:
  1. 搭建K8S:《kubespray2.11安装kubernetes1.15》
  2. 搭建Helm:《部署和体验Helm(2.16.1版本)》
  3. 搭建Prometheus和Grafana:《kubernetes1.15极速部署prometheus和grafana》
  4. 部署Kafka:《K8S环境快速部署Kafka(K8S外部可访问)》

版本信息

  1. Kubernetes:1.15
  2. Kubernetes宿主机:CentOS Linux release 7.7.1908
  3. NFS服务:IP地址192.168.50.135,文件夹/volume1/nfs-storageclass-test
  4. Helm:2.16.1
  5. Kafka:2.0.1
  6. Zookeeper:3.5.5
  7. Prometheus:2.0.0
  8. Grafana:5.0.0
  • 准备完毕就可以开始实战了;

确认kafka-exporter参数

  • 即将部署的kafka-exporter要从kafka取得数据,因此要准备kafka-exporter参数;
  • 查看kafka的服务中TYPE是ClusterIP的那个,如下图红框所示:
  • 上述红框中的服务名字是 kafka 、端口是 9092 ,因此稍后在kafka-exporter中配置的kafka信息就是 kafka:9092

实际操作

  • 添加Helm仓库(该仓库中有我们需要的kafka-exporter): helm repo add gkarthiks https://gkarthiks.github.io/helm-charts
  • 下载kafka-exporter: helm fetch gkarthiks/prometheus-kafka-exporter
  • 解压下载的chart文件: tar -zxvf prometheus-kafka-exporter-0.1.0.tgz
  • 进入解压后的目录: cd prometheus-kafka-exporter
  • 修改values.yaml文件,如下图红框, ** kafka:9092 就是同一namespace下访问kafka的地址:
  • 在values.yaml文件所在目录执行: helm install --name-template kafka-exporter -f values.yaml . --namespace kafka-test (kafka的namespace是kafka-test,这里的namespace要和kafka保持一致)
  • 查看服务和pod是否就绪:
  • 此时我们部署好了 kafka-exporter ,能给prometheus提供监控数据了,但prometheus并不知道要来这里采集数据,因此接下来要配置prometheus;
  • 确认 kafka-exporter 服务的访问地址,prometheus采集数据要用到,名字和端口如下图红框所示,因此可以拼接处跨namespace的访问地址: kafka-exporter-prometheus-kafka-exporter.kafka-test.svc.cluster.local:9308
  • 如果您是参照《kubernetes1.15极速部署prometheus和grafana》部署的prometheus,请打开部署时下载的 configmap.yaml 文件,里面是prometheus的配置,如果是其他途径部署的,请按照自己的部署情况找到prometheus.yml的位置;
  • configmap.yaml 中增加下图红框中的内容,这样prometheus就可以采集kafka-exporter的数据了:
  • 使得配置生效: kubectl apply -f configmap.yaml
  • 此时的prometheus容器用的还是旧配置,为了让配置生效,要把prometheus的pod删除,这样K8S自动创建的新pod就用上了新的配置,找出prometheus的pod: kubectl get pods -n kube-system
  • 删除旧的pod: kubectl delete pod prometheus-68545d4fd8-f5q2w -n kube-system
  • 等待新的pod被自动创建;
  • 接下来登录Grafana,配置监控页面,如下图,做模板导入操作:
  • 在导入模板的页面输入编号7589:
  • 选择数据源的时候,要选prometheus,如下图:
  • 此时如果您的kafka有消息的收发,就可以立即看到数据了:
  • 至此,K8S环境下的kafka监控已经部署完成,希望本文能给您一些参考;

欢迎关注51CTO博客:程序员欣宸

springboot整合prometheus

Prometheus是一款面向云原生应用程序的开源监控工具,常用于监控微服务、操作系统、MySQL、Redis、Flink、RocketMQ/RabbitMQ/Kafka、K8S等。SpringBoot整合Prometheus一般使用的是actuator这个项目,actuator是SpringBoot的子项目,为应用... 查看详情

基于prometheus监控k8s集群

本文建立在你已经会安装prometheus服务的基础之上,如果你还不会安装,请参考:prometheus多维度监控容器如果你还没有安装库k8s集群,情参考: 从零开始搭建基于calico的kubenetes前言kubernetes显然已成为各大公司亲睐的容器编排... 查看详情

利用prometheus监控k8s

    prometheus它是一个主动拉取的数据库,在K8S中应该展示图形的grafana数据实例化要保存下来,使用分布式文件系统加动态PV,但是在本测试环境中使用本地磁盘,安装采集数据的agent使用DaemonSet来部署,DaemonSet的特... 查看详情

k8s+prometheus+grafana的监控部署(代码片段)

...署k8s集群可以参考https://www.cnblogs.com/liugp/p/12115945.html二、Prometheus+Grafana的监控部署2.1、master/node节点环境部署在【master】可以进行安装部署安装git,并下载相关yaml文件https://gitee.com/liugpwwwroot/k8s-prometheus-grafana.git在【node】节点下... 查看详情

k8s结合prometheus构建企业级监控告警系统

深度解读Prometheus什么是Prometheus?Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,... 查看详情

prometheus+grafana(代码片段)

一、Prometheus简介、容器监控的实现方对比虚拟机或者物理机来说比大的区别,比如容器在k8s环境中可以任意横向扩容与缩容,那么就需要监控服务能够自动对新创建的容器进行监控,当容器删除后又能够及时的从监控服务中删... 查看详情

prometheus监控k8s(代码片段)

文章目录一、监控方案二、监控流程三、Kubernetes监控指标四、服务发现:五、使用Prometheus监控Kubernetes(1)部署前准备(2)采用daemonset方式部署node-exporter(3)部署Prometheus(4)部署grafana࿰ 查看详情

prometheus监控k8s(代码片段)

文章目录一、监控方案二、监控流程三、Kubernetes监控指标四、服务发现:五、使用Prometheus监控Kubernetes(1)部署前准备(2)采用daemonset方式部署node-exporter(3)部署Prometheus(4)部署grafana࿰ 查看详情

prometheus-operator结合grafana展示k8s监控

1.接上篇:kubernetes全面监控之prometheus-operator部署部署完成后,其实本身已经部署了grafana,也可以正常访问。但是我感觉太单调,数据不够详实。2.产生个想法,再多部署一套grafana,然后数据源使用prometheus-operator的数据源,再选... 查看详情

prometheus+grafan监控k8s集群详解(代码片段)

一,Prometheus概述1,什么是Prometheus?Prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包,自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发人员和用户社区。现在,它是一个独立的开源... 查看详情

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

理论提示:在这里部署的prometheus,是使用的coreos提供的prometheus项目MetricsServer:是k8s集群资源使用情况的聚合器,收集数据给k8s集群内使用,如kubectl,hpa,scheduler等。PrometheusOperator:是一个系统检测和警报工具箱,... 查看详情

k8s部署prometheus和grafana监控pod和机器资源(11)

...化的界面,主要负责展示信息,功能非常强大,可以结合prometheus、zabbix、进行收集暂时,另外包括mysql,zk、etcd,nginx这些数据都可以收集展示prometheus是一个时序的数据库,什么是时序的数据库,就是对之前的数据进行存放,但... 查看详情

可直接拿来用的kafka+prometheus+grafana监控告警配置(代码片段)

kafka配置jmx_exporter点击:https://github.com/prometheus/jmx_exporter,选择下面的jar包下载:将下载好的这个agentjar包上传到kafka的broker节点所在服务器上,每个broker都需要,比如上传到如下路径:/opt/agent/jmx_prom 查看详情

kube-prometheus监控k8s集群外服务的两种方式(代码片段)

方式一:通过ServiceMonitor方式创建Service和ServiceMonitor文件名为external-node.yaml---apiVersion:v1kind:Servicemetadata:name:external-node-exporternamespace:monitoringlabels:app:external-node-exporterapp.kubernetes. 查看详情

基于prometheus的监控

...能进行评估优化,所以其监控系统的建设显得尤为重要。Prometheus作为云原生时代最火的监控软件,很多大数据组件或原生或以第三方插件/exporter的形式对Prometheus做了支持。我使用的大数据平台是基于K8s运行的,有部署灵活管理... 查看详情

springboot整合prometheus(代码片段)

Prometheus是一款面向云原生应用程序的开源监控工具,常用于监控微服务、操作系统、MySQL、Redis、Flink、RocketMQ/RabbitMQ/Kafka、K8S等。SpringBoot整合Prometheus一般使用的是actuator这个项目,actuator是SpringBoot的子项目,为应用... 查看详情

springboot整合prometheus(代码片段)

Prometheus是一款面向云原生应用程序的开源监控工具,常用于监控微服务、操作系统、MySQL、Redis、Flink、RocketMQ/RabbitMQ/Kafka、K8S等。SpringBoot整合Prometheus一般使用的是actuator这个项目,actuator是SpringBoot的子项目,为应用... 查看详情

springboot整合prometheus(代码片段)

Prometheus是一款面向云原生应用程序的开源监控工具,常用于监控微服务、操作系统、MySQL、Redis、Flink、RocketMQ/RabbitMQ/Kafka、K8S等。SpringBoot整合Prometheus一般使用的是actuator这个项目,actuator是SpringBoot的子项目,为应用... 查看详情