欢迎访问我的GitHub

https://github.com/zq2599/blog_demos

内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;

对于部署在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参数;

  1. 查看kafka的服务中TYPE是ClusterIP的那个,如下图红框所示:

  2. 上述红框中的服务名字是kafka、端口是9092,因此稍后在kafka-exporter中配置的kafka信息就是kafka:9092

实际操作

  1. 添加Helm仓库(该仓库中有我们需要的kafka-exporter):helm repo add gkarthiks https://gkarthiks.github.io/helm-charts
  2. 下载kafka-exporter:helm fetch gkarthiks/prometheus-kafka-exporter
  3. 解压下载的chart文件:tar -zxvf prometheus-kafka-exporter-0.1.0.tgz
  4. 进入解压后的目录:cd prometheus-kafka-exporter
  5. 修改values.yaml文件,如下图红框,kafka:9092就是同一namespace下访问kafka的地址:

  6. 在values.yaml文件所在目录执行:helm install --name-template kafka-exporter -f values.yaml . --namespace kafka-test (kafka的namespace是kafka-test,这里的namespace要和kafka保持一致)
  7. 查看服务和pod是否就绪:

  8. 此时我们部署好了kafka-exporter,能给prometheus提供监控数据了,但prometheus并不知道要来这里采集数据,因此接下来要配置prometheus;
  9. 确认kafka-exporter服务的访问地址,prometheus采集数据要用到,名字和端口如下图红框所示,因此可以拼接处跨namespace的访问地址:kafka-exporter-prometheus-kafka-exporter.kafka-test.svc.cluster.local:9308

  10. 如果您是参照《kubernetes1.15极速部署prometheus和grafana》部署的prometheus,请打开部署时下载的configmap.yaml文件,里面是prometheus的配置,如果是其他途径部署的,请按照自己的部署情况找到prometheus.yml的位置;
  11. configmap.yaml中增加下图红框中的内容,这样prometheus就可以采集kafka-exporter的数据了:

  12. 使得配置生效:kubectl apply -f configmap.yaml
  13. 此时的prometheus容器用的还是旧配置,为了让配置生效,要把prometheus的pod删除,这样K8S自动创建的新pod就用上了新的配置,找出prometheus的pod:kubectl get pods -n kube-system

  14. 删除旧的pod:kubectl delete pod prometheus-68545d4fd8-f5q2w -n kube-system
  15. 等待新的pod被自动创建;
  16. 接下来登录Grafana,配置监控页面,如下图,做模板导入操作:

  17. 在导入模板的页面输入编号7589:

  18. 选择数据源的时候,要选prometheus,如下图:

  19. 此时如果您的kafka有消息的收发,就可以立即看到数据了:



    至此,K8S环境下的kafka监控已经部署完成,希望本文能给您一些参考;

欢迎关注公众号:程序员欣宸

微信搜索「程序员欣宸」,我是欣宸,期待与您一同畅游Java世界...

https://github.com/zq2599/blog_demos

K8S的Kafka监控(Prometheus+Grafana)的更多相关文章

  1. k8s实战之部署Prometheus+Grafana可视化监控告警平台

    写在前面 之前部署web网站的时候,架构图中有一环节是监控部分,并且搭建一套有效的监控平台对于运维来说非常之重要,只有这样才能更有效率的保证我们的服务器和服务的稳定运行,常见的开源监控软件有好几种,如 ...

  2. Prometheus+Grafana企业监控系统

    Prometheus+Grafana企业监控系统 作者 刘畅 实验配置: 主机名称 Ip地址 controlnode 172.16.1.70/24 slavenode1 172.16.1.71/24 ...

  3. kubernetes监控-prometheus(十六)

    监控方案 cAdvisor+Heapster+InfluxDB+Grafana Y 简单 容器监控 cAdvisor/exporter+Prometheus+Grafana Y 扩展性好 容器,应用, ...

  4. k8s集群监控 cadvisor/exporter+prometheus+grafana

    ### k8s监控处理 ### 1.cadvisor/exporter+prometheus+grafana 安装#### 1.1 配置nfs安装```shellubuntu: nfs 服务器 apt ...

  5. Prometheus+Grafana通过kafka_exporter监控kafka

    Prometheus+Grafana通过kafka_exporter监控kafka 一.暴露 kafka-metric 方式 二.jmx_exporter方式 2.1 下载jmx_prometheus ...

  6. Prometheus+Grafana+kafka_exporter监控kafka

    Prometheus+Grafana+kafka_exporter搭建监控系统监控kafka 一.Prometheus+Grafana+kafka_exporter搭建监控系统监控kafka 1.1K ...

  7. kubernetes生态--交付prometheus监控及grafana炫酷dashboard到k8s集群

    由于docker容器的特殊性,传统的zabbix无法对k8s集群内的docker状态进行监控,所以需要使用prometheus来进行监控: 什么是Prometheus? Prometheus是由Sou ...

  8. [转帖]Prometheus+Grafana监控Kubernetes

    原博客的位置: https://blog.csdn.net/shenhonglei1234/article/details/80503353 感谢原作者 这里记录一下自己试验过程中遇到的问题: . 自 ...

  9. 基于k8s集群部署prometheus监控ingress nginx

    目录 基于k8s集群部署prometheus监控ingress nginx 1.背景和环境概述 2.修改prometheus配置 3.检查是否生效 4.配置grafana图形 基于k8s集群部署pro ...

随机推荐

  1. Go-err is shadowed during return

    where? Go程序函数中在通过 return关键字返回的时候,报错 why? 变量作用域的问题,在子作用域定义一个上层作用域的同名的变量 package main import ( "e ...

  2. GAN生成的评价指标 Evaluation of GAN

    传统方法中,如何衡量一个generator ?-- 用 generator 产生数据的 likelihood,越大越好. 但是 GAN 中的 generator 是隐式建模,所以只能从 P_G 中采样 ...

  3. 高效学习必备软件:OneNote+ Mindmaster

    做笔记有两个关键点: 一是笔记内容详略得当.二是知识的框架清晰完整. 为什么这样说? 举个例子,如图是我的笔记界面,用的是免费的OneNote, OneNote是微软出的笔记软件, 非常好用,有着书写 ...

  4. LPCTSTR类型和字符串

    转载: 1.https://blog.csdn.net/Joker_mw/article/details/79127790 2.https://blog.csdn.net/shelleyhuhu/ar ...

  5. spring-boot-route(十一)数据库配置信息加密

    Spring Boot最大的特点就是自动配置了,大大的减少了传统Spring框架的繁琐配置,通过几行简单的配置就可以完成其他组件的接入.比如你想要连接mysql数据库,只需要的配置文件里面加入mysq ...

  6. Linux网卡命名规则

    网卡命名 一.为什么需要这个      服务器通常有多块网卡,有板载集成的,同时也有插在PCIe插槽的.Linux系统的命名原来是eth0,eth1这样的形式,但是这个编号往往不一定准确对应网卡接口的 ...

  7. ansible-playbook模板化(jinja2)

    1. ansible-playbook模板化(jinja2)条件与循环  1.1) jinja使用结构图 2. 编写jinja2的循环  2.1) 编写jinja2模板 1 [root@test-1 ...

  8. lua 1.0 源码分析 -- 总结

    读完 lua1.0 的源码感触:1. 把复杂的代码写简单2. pack 的内存回收3. hash 实现简单,但是应该可以改进,看高版本的代码怎么实现4. lua 初始化环境做了什么,就是一组全局变量初 ...

  9. selenium等待机制学习笔记

    转载至: https://blog.csdn.net/huilan_same/article/details/52544521 1. 强制等待 第一种也是最简单粗暴的一种办法就是强制等待sleep(x ...

  10. 适合刚刚学习编程的萌新:C语言编程学习制作超简单又好玩的报数游戏!

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...