附录一:
### --- 报错现象:
~~~ 报错现象:Prometheus监控不到数据
~~~ 报错现象:http://prom.test.com——>Alerts——>Enable query history——>没有kafka数据
### --- 报错分析:
~~~ # 查看kafka-exporter的po地址
[root@k8s-master01 kafka-exporter]# kubectl get po -n monitoring -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kafka-exporter-d47b9f76f-k92rm 1/1 Running 0 44m 172.27.14.227 k8s-node02 <none> <none>
~~~ # 进入容器内部
[root@k8s-master01 kafka-exporter]# kubectl exec -ti kafka-exporter-d47b9f76f-k92rm -n monitoring -- sh
/ # nslookup kafka-0.kafka-headless.public-service
Server: 10.96.0.10
Address: 10.96.0.10:53
** server can't find kafka-0.kafka-headless.public-service: NXDOMAIN
*** Can't find kafka-0.kafka-headless.public-service: No answer // nslookup解析不到
/ # ping kafka-0.kafka-headless.public-service // ping是没有问题的
PING kafka-0.kafka-headless.public-service (172.27.14.226): 56 data bytes
64 bytes from 172.27.14.226: seq=0 ttl=63 time=0.138 ms
64 bytes from 172.27.14.226: seq=1 ttl=63 time=0.108 ms
~~~ # coredns解析不到
~~~ 分析定位为:kafka没有创建topic
[root@k8s-master01 kafka-exporter]# kubectl get po -n public-service -owide // 报error
### --- 解决方案:
~~~ # 进入kafka容器给kafka创建topic
[root@k8s-master01 kafka-exporter]# kubectl exec -ti kafka-0 -n public-service -- bash
I have no name!@kafka-0:/$ kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic mytopic
Created topic mytopic.
~~~ # 再次请求metrics,就会发现有了kafka-topic这个数据
~~~ 报错现象:http://prom.test.com——>Alerts——>Enable query history——>数据已经检测到
[root@k8s-master01 kafka-exporter]# curl 10.110.47.163:9308/metrics | grep kafka
# HELP kafka_topic_partition_under_replicated_partition 1 if Topic/Partition is under Replicated
# TYPE kafka_topic_partition_under_replicated_partition gauge
kafka_topic_partition_under_replicated_partition{partition="0",topic="mytopic"} 0