OpenShift 4 之AMQ Streams(4) - 用Prometheus监控Kafka

文章目录

  • 配置Kafka和测试应用
  • 配置Prometheus和Grafana

配置Kafka和测试应用

  1. 首先删除上一个实验使用的Kafka集群配置。
$ oc delete kafka my-source-cluster -n kafka 
$ oc delete kafka my-target-cluster -n kafka
  1. 根据kafka.yaml文件创建名为my-cluster的Kafka集群,根据connect.yaml文件创建名为my-connect-cluster的KafkaConnect。可以查看这两个文件,其中定义了Kafka、Zookeeper和KafkaConnect的监控Metrics。
$ oc apply -f https://raw.githubusercontent.com/liuxiaoyu-git/amq-streams-foundations-labs/master/04_monitoring/kafka.yaml -n kafka
$ oc get kafka -n kafka
NAME         DESIRED KAFKA REPLICAS   DESIRED ZK REPLICAS
my-cluster   3                        3
$ oc apply -f https://raw.githubusercontent.com/liuxiaoyu-git/amq-streams-foundations-labs/master/04_monitoring/connect.yaml -n kafka
  1. 根据hello-world.yaml部署测试应用。
oc apply -f https://raw.githubusercontent.com/liuxiaoyu-git/amq-streams-foundations-labs/master/04_monitoring/hello-world.yaml
kafkatopic.kafka.strimzi.io/my-topic configured
deployment.extensions/hello-world-producer created
deployment.extensions/hello-world-consumer created
  1. 分别执行以下2个命令,查看发送和接收消息的应用日志,确认可以正常发送和接收数据。
$ oc logs $(oc get pod -l app=hello-world-producer -o=jsonpath='{.items[0].metadata.name}') -f
$ oc logs $(oc get pod -l app=hello-world-consumer -o=jsonpath='{.items[0].metadata.name}') -f

配置Prometheus和Grafana

  1. 执行命令部署Grafana和Prometheus相关资源。注意:本文使用的项目名是kafka,如果你用的是其它项目名,可以修改prometheus.yaml文件中ClusterRoleBinding和ConfigMap的两处kafka
$ oc apply -f https://raw.githubusercontent.com/liuxiaoyu-git/amq-streams-foundations-labs/master/04_monitoring/prometheus/grafana.yaml -n kafka
$ oc apply -f https://raw.githubusercontent.com/liuxiaoyu-git/amq-streams-foundations-labs/master/04_monitoring/prometheus/prometheus.yaml -n kafka
$ oc apply -f https://raw.githubusercontent.com/liuxiaoyu-git/amq-streams-foundations-labs/master/04_monitoring/prometheus/alerting-rules.yaml -n kafka
  1. 生成Prometheus的Route,然后查看Prometheus和Grafana的访问地址。
$ oc expose svc prometheus -n kafka
$ oc get route grafana prometheus -n kafka
NAME                 HOST/PORT                                                                           PATH   SERVICES                         PORT         TERMINATION   WILDCARD
grafana              grafana-amq.apps.cluster-beijing-78c7.beijing-78c7.example.opentlc.com                     grafana                          grafana                    None
prometheus           prometheus-amq.apps.cluster-beijing-78c7.beijing-78c7.example.opentlc.com                  prometheus                       prometheus                 None
  1. 首先用浏览器访问Prometheus地址,然后在搜索框中输入kafka_server_brokertopicmetrics_totalfetchrequestspersec_topic_my_topic,最后在点击Execute按钮,确认能查出对应Metrics的当前监控到的值。这说明Prometheus已经生效,可以获取到监控的数据了。
    OpenShift 4 之AMQ Streams(4) - 用Prometheus监控Kafka_第1张图片
  2. 用浏览器访问Gafana地址,用admin/admin登录。
    OpenShift 4 之AMQ Streams(4) - 用Prometheus监控Kafka_第2张图片
  3. 在登录后的首页面点击“Add data source”按钮(或点击左上方Grafana的图标,然后进入Data Sources,然后再点击“Add data source”按钮),在“Add data source”对话框中将Name和Type设为Prometheus,将Url设为http://prometheus:9090(这是从内部分prometheus服务的地址),最后点击Add按钮,此时会显示“Success: Data source is working”提示。
    OpenShift 4 之AMQ Streams(4) - 用Prometheus监控Kafka_第3张图片
  4. 切换到对话框Dashboards标签页,然后点击右方的Import按钮。
    OpenShift 4 之AMQ Streams(4) - 用Prometheus监控Kafka_第4张图片
    OpenShift 4 之AMQ Streams(4) - 用Prometheus监控Kafka_第5张图片
  5. 点击左上方Grafana的图标,然后进入Dashboards -> Home,在选择“Prometheus Stats”后页面将显示下图。
    OpenShift 4 之AMQ Streams(4) - 用Prometheus监控Kafka_第6张图片
  6. 下载定制的Dashboard定义文件dashboard.json到本地。
$ curl -LO https://raw.githubusercontent.com/liuxiaoyu-git/amq-streams-foundations-labs/master/04_monitoring/dashboard.json
  1. 点击左上方Grafana的图标,然后进入Dashboards -> Import。
    OpenShift 4 之AMQ Streams(4) - 用Prometheus监控Kafka_第7张图片
  2. 在Import Dashboard对话框中点击“Upload .json File”按钮,选择dashboard.json。
    OpenShift 4 之AMQ Streams(4) - 用Prometheus监控Kafka_第8张图片
  3. 然后将Name设为“Kafka Dashboard”,将Prometheus设为“Prometheus”,最后点击Import按钮。
    OpenShift 4 之AMQ Streams(4) - 用Prometheus监控Kafka_第9张图片
  4. 查看“Kafka Dashboard”,可以看到通过Prometheus监控到的Kafka、Zookeeper和Kafka Connect运行情况。
    OpenShift 4 之AMQ Streams(4) - 用Prometheus监控Kafka_第10张图片

你可能感兴趣的:(Kafka,prometheus,Dev)