KafkaOffsetMonitor监控kafka

时间:2022-03-06 01:03:06

KafkaOffsetMonitor监控kafka

1 KafkaOffsetMonitor是一个可以用于监控Kafka的Topic及Consumer消费状况的工具,其配置和使用特别的方便。源项目Github地址为:https://github.com/quantifind/KafkaOffsetMonitor

下载的githup上的有两种一个是源码,一种是编译好的jar包。因为编译过程需要FQ现在一些依赖,本次用的是编译好的jar包,并且下载的jar包获取数据某些js、css需要FQ,导致按装完成后获取不到数据。所以现在找的是一个全网通用的jar包,与kafka_2.11-0.11.0.0亲测可用,先上图:

KafkaOffsetMonitor监控kafka

KafkaOffsetMonitor监控kafka

KafkaOffsetMonitor监控kafka

KafkaOffsetMonitor监控kafka

这张图片的左上角显示了当前Topic的生产速率,右上角显示了当前Consumer的消费速率。
  图片中还有三种颜色的线条,蓝色的表示当前Topic中的Message数目,灰色的表示当前Consumer消费的offset位置,红色的表示蓝色灰色的差值,即当前Consumer滞后于Producer的message数目。

2、启动服务

不需要配置,直接将jar包上传到服务器上并创建一个相应的目录,启动就可以。将启动过程写成一个启动脚本:

java -cp KafkaOffsetMonitor-assembly-0.2.0.jar \

com.quantifind.kafka.offsetapp.OffsetGetterWeb \

--zk zk3:2181,zk2:2181,zk1:2181
\

--port 4321 \

--refresh 10.seconds
\

--retain 7.days

参数介绍以下摘自giuhup:

  • offsetStorage
    valid options are ”zookeeper”, ”kafka” or ”storm”. Anything else falls back to
    ”zookeeper”
  • zk the
    ZooKeeper hosts
  • port on
    what port will the app be available
  • refresh
    how often should the app refresh and store a point in the DB
  • retain how
    long should points be kept in the DB
  • dbName
    where to store the history (default ‘offsetapp’)
  • kafkaOffsetForceFromStart
    only applies to ”kafka” format. Force KafkaOffsetMonitor to scan the commit
    messages from start (see notes below)
  • stormZKOffsetBase
    only applies to ”storm” format. Change the offset storage base in zookeeper,
    default to ”/stormconsumers” (see notes below)
  • pluginsArgs additional
    arguments used by extensions (see below)

使用托管服务启动,可以选用nohup、pm2等:

# pm2 start kafka-check-monitor.sh

关于pm2不在详细介绍。

启动后,如果是放在内网,则需要配置代理,直接访问4321端口就可以。

Nginx代理配置模板如下:

1.生成密码文件

# htpasswd -c -d /usr/local/nginx/conf/pass_file username

如果想添加多个用户:

2.添加用户

# htpasswd -d /usr/local/nginx/conf/pass_file username

#vim kafka.con

server {

listen *:80;

server_name my.kafka.com;   # 请修改为你的域名

auth_basic "it's in proteced";

auth_basic_user_file /etc/nginx/.htpasswd;

location / {

proxy_pass http://172.189.10.12:4321;

proxy_http_version 1.1;

proxy_set_header Upgrade
$http_upgrade;

proxy_set_header Connection
"upgrade";

proxy_set_header Host $host;

}

}