kafka topic监控采集
直接通过编译好的二进制文件部署
kafka_exporter二进制文件下载地址 下载 kafka_exporter-1.2.0.linux-amd64.tar.gz
1、启动kafka_exporter
brokers=$1 export_port=$2 #从8308开始 for broker in `echo "${brokers}"|sed 's/,/\n/g'`;do opt="${opt} --kafka.server=${broker}" done nohup ./kafka_exporter ${opt} --sasl.username=1111 --sasl.password=1111 --sasl.enabled --web.listen-address=":${export_port}" &>>kafka_exporter.log&
2、部署prometheus,结合consul动态注册服务
配置consul
1. 官网下载consul二进制文件 2. 启动consul nohup ./bin/consul agent -server -bootstrap-expect 1 -data-dir=./data -node=server1 -log-file=./logs/consul.log -bind=localhost -client=localhost -ui >consul_start.log & 3. 注册服务 curl -X PUT -d '{"id": "kafka_export_1","name": "kafka_export_1","address": "localhost","port": 8308,"checks": [{"http": "http://localhost:8308/metrics","interval": "30s"}]}' http://localhost:8500/v1/agent/service/register 4. 删除服务 curl -X PUT http://localhost:8500/v1/agent/service/deregister/kafka_export_1
下载prometheus-2.15.1.linux-amd64
配置
最好是通过consul进行动态注册服务,consul配置方式
promtheus 配置
启动prometheus
nohup ./prometheus --config.file=prometheus.yml --web.listen-address="0.0.0.0:8200" &>prometheus.log &
当consul注册成功后可以在consul web http://localhost:8500/ui/dc1/services 看到注册的服务
在prometheus web 端http://localhost:8200/targets 可以看到consul中的target
3、部署grafana
下载grafana-6.5.2-1.x86_64.rpm
wget https://dl.grafana.com/oss/release/grafana-6.5.2-1.x86_64.rpm --timeout=72000
由于服务器端做了限速,所以龟速下载
yum install grafana-6.5.2-1.x86_64.rpm # 安装完之后对于centos7,会自动配置system服务,服务配置文件 /usr/lib/systemd/system/grafana-server.service # 配置文件 /usr/share/grafana/conf/defaults.ini # 启动服务 systemctl start grafana-server
4、配置grafana
添加datasource
导入dashboard 模版,id为7589
添加自定义仪表盘
遇到的问题
由于有些集群的topic非常多导致grafana报表展示出错
Request-URI Too Long
这是因为查询语句中会拼接所有的topic,导致查询参数太长请求发送失败
解决办法
将查询语句:
改为: