关于云计算:K8S的Kafka监控PrometheusGrafana

57次阅读

共计 2608 个字符,预计需要花费 7 分钟才能阅读完成。

欢送拜访我的 GitHub

https://github.com/zq2599/blog_demos

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

对于部署在 K8S 上的 Kafka 来说,<font color=”blue”>Prometheus+Grafana</font> 是罕用的监控计划,明天就来实战通过 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 的那个,如下图红框所示:

  1. 上述红框中的服务名字是 <font color=”blue”>kafka</font>、端口是 <font color=”blue”>9092</font>,因而稍后在 kafka-exporter 中配置的 kafka 信息就是 <font color=”blue”>kafka:9092</font>

实际操作

  1. 增加 Helm 仓库 (该仓库中有咱们须要的 kafka-exporter):<font color=”blue”>helm repo add gkarthiks https://gkarthiks.github.io/h…</font>
  2. 下载 kafka-exporter:<font color=”blue”>helm fetch gkarthiks/prometheus-kafka-exporter</font>
  3. 解压下载的 chart 文件:<font color=”blue”>tar -zxvf prometheus-kafka-exporter-0.1.0.tgz</font>
  4. 进入解压后的目录:<font color=”blue”>cd prometheus-kafka-exporter</font>
  5. 批改 values.yaml 文件,如下图红框,<font color=”blue”>kafka:9092</font> 就是同一 namespace 下拜访 kafka 的地址:

  1. 在 values.yaml 文件所在目录执行:<font color=”blue”>helm install –name-template kafka-exporter -f values.yaml . –namespace kafka-test</font>(kafka 的 namespace 是 kafka-test,这里的 namespace 要和 kafka 保持一致)
  2. 查看服务和 pod 是否就绪:

  1. 此时咱们部署好了 <font color=”blue”>kafka-exporter</font>,能给 prometheus 提供监控数据了,但 prometheus 并不知道要来这里采集数据,因而接下来要配置 prometheus;
  2. 确认 <font color=”blue”>kafka-exporter</font> 服务的拜访地址,prometheus 采集数据要用到,名字和端口如下图红框所示,因而能够拼接处跨 namespace 的拜访地址:<font color=”blue”>kafka-exporter-prometheus-kafka-exporter.kafka-test.svc.cluster.local:9308</font>

  1. 如果您是参照《kubernetes1.15 极速部署 prometheus 和 grafana》部署的 prometheus,请关上部署时下载的 <font color=”blue”>configmap.yaml</font> 文件,外面是 prometheus 的配置,如果是其余路径部署的,请依照本人的部署状况找到 prometheus.yml 的地位;
  2. <font color=”blue”>configmap.yaml</font> 中减少下图红框中的内容,这样 prometheus 就能够采集 kafka-exporter 的数据了:

  1. 使得配置失效:<font color=”blue”>kubectl apply -f configmap.yaml</font>
  2. 此时的 prometheus 容器用的还是旧配置,为了让配置失效,要把 prometheus 的 pod 删除,这样 K8S 主动创立的新 pod 就用上了新的配置,找出 prometheus 的 pod:<font color=”blue”>kubectl get pods -n kube-system</font>

  1. 删除旧的 pod:<font color=”blue”>kubectl delete pod prometheus-68545d4fd8-f5q2w -n kube-system</font>
  2. 期待新的 pod 被主动创立;
  3. 接下来登录 Grafana,配置监控页面,如下图,做模板导入操作:

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

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

  1. 此时如果您的 kafka 有音讯的收发,就能够立刻看到数据了:


至此,K8S 环境下的 kafka 监控曾经部署实现,心愿本文能给您一些参考;

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

微信搜寻「程序员欣宸」,我是欣宸,期待与您一起畅游 Java 世界 …
https://github.com/zq2599/blog_demos

正文完
 0