背景
一句话说明需求:
- 公司需要监控kafka消息队列的消费情况,强调需查看当前Topic中的message的数量。
一句话说明解决:
- 像Kafka这样的Java进程可以先通过JMX Agent或者第三方Agent(kafka_exporter\KMINION等)获取监控数据,再通过Prometheus采集数据、通过Grafana模板展示数据即可。另外具体的message数量需要通过PromQL语句查询得到。
多说几句:
- kafka应用的具体指标和JVM虚拟机的指标都可以通过JMX监控得到。
- Zabbix也可以监控kafka,也是通过JMX实现。
- Prometheus对自定义监控项更友好,相关的Grafana模板更多。
- 建议同时使用JMX和kminion,同时使用两者的Grafana模板(具体性能损耗的评估稍后有时间我再详细说明,有时间折腾也可以只装一个)
监控效果截图
参考链接
【Grafana模板库:搜索Kafka】
【阿里云官方文档:如何部署和配置Kafka JMX Agent】
实际操作
使用JMX监控
- 下载jmx程序包。
- 修改kafka启动参数
- 重启kafka
- 重启prometheus
- 导入grafana模板。
使用kafka_exporter监控
- 下载kafka_exporter程序包。
- 修改kafka_exporter配置文件。
- 启动kafka_exporter。
- 重启prometheus。
- 导入grafana模板。
使用Kminion监控
- 下载Kminion程序包。
- 修改kminion配置文件。
- 创建kminion配置文件的环境变量。
- 启动kminion。
- 重启prometheus。
- 导入grafana模板。
注意:
- 防火墙策略。
- 端口占用情况。