使用 Prometheus 监控 kafka
监控配置
1. 启动 JMX 服务
首先需要在 Kafka 中启用 JMX 服务以获取资源信息
# 1. 修改 kafka-server-start.sh 脚本
# 在第一行增加 export JMX_PORT="9999"
# ambari kafka 路径: `/usr/hdp/current/kafka-broker`
cd /usr/hdp/current/kafka-broker
vi bin/kafka-server-start.sh
# 增加
export JMX_PORT="9999"
修改完所有节点后,在ambari 重启所有 kafka节点
2. 启动 jmx_exporter
需要启动 jmx_exporter,让 JMX 信息可以直接通过 HTTP 方式访问,以便 ARMS Prometheus 监控抓取
我已经做好docker 镜像,上传到镜像仓库了,修改一下yaml文件使用docker-compose 起一下就可以
# docker-compose.yml
version: '2.0'
services:
kafka-expoter:
# 打包好的镜像
image: repository.anxinyun.cn/devops/jmx_prometheus_httpserver:0.13.1
container_name: jmx_prometheus_httpserver
restart: always
# 修改下 ip
command: ["bash","./start.sh","10.8.30.37"]
ports:
- 9997:9997
- 9998:9998
# 启动服务
docker-compose -f ./docker-compose.yml up -d
3. 配置 RMS Prometheus 监控以抓取 Kafka 应用的数据
在 配置文件增加
additionalScrapeConfigs: []
# 以下是增加的内容
- job_name: 'kafka-cluster'
static_configs:
- targets:
- '10.8.30.35:9997'
- '10.8.30.36:9997'
- '10.8.30.37:9997'
重启 Prometheus
4. 通过 Grafana 大盘展示 Kafka 应用的数据
打开 Prometheus 的 Grafana 首页,鼠标悬浮在左边 菜单栏 ‘+’ ,在子菜单中选择 ‘Import’
在打开的界面中 Grafana.com Dashboard 输入框中输入
10973,然后单击 Load ,在配置选项中
Name 配置 dashboard 名称
Fold 配置你想在哪个文件夹显示这个dashboard
单击 Import (Overwrite)