jenkins集成kafka命令行管理

362 阅读1分钟

这是我参与更文挑战的第1天,活动详情查看: 更文挑战

定义全局变量

IP="x.x.x.x:2181"
Ktool=/kafka/bin/kafka-topics.sh

创建topic

if [ $topic != "" ];then
   if [ $partitions -lt 50 ];then
       ${Ktool}  --create --zookeeper ${IP} --replication-factor $factor --partitions $partitions --topic $topic
       echo $topic $partitions $factor
       echo "创建成功"
   fi
fi

查看kafka基本信息

echo ""
echo ""
echo "-----显示所有topic-----"
echo ""
${Ktool} --list --zookeeper ${IP}
echo ""
echo "-----显示所有topic属性-----"
echo ""
echo "属性名称简介: "
echo "retention.ms==日志数据保留时长432000000毫秒为5天"
echo "PartitionCount==分片总数"
echo "ReplicationFactor==数据复制份数,一般3台为2份,以此类推"
echo "Replicas和Isr==目前数据所在节点和参加选举的节点"
echo ""
topics=$(${Ktool} --list --zookeeper ${IP})
for i in ${topics[@]}
do
if [ "$i" != "__consumer_offsets" ];then
  echo "topic: $i"
  ${Ktool} --describe --zookeeper  --topic $i
fi
echo ""
done
echo "----显示完成-----"
echo ""

查看Offset最大最小值

Kclass=/kafka/bin/kafka-run-class.sh
echo "topic: $topic最小值是: "
${Kclass} kafka.tools.GetOffsetShell --broker-list ${IP} --topic $topic --time -2
echo "topic: $topic最大值是: "
${Kclass} kafka.tools.GetOffsetShell --broker-list ${IP} --topic $topic --time -1

查看最新消息,最大支持1000条

if [ $message -lt 1000 ];then
    echo ""    
    echo "你选择的topic:$topic,消息条数为:$message"
    echo ""
    /kafka/bin/kafka-console-consumer.sh --topic $topic --bootstrap-server ${IP}  --max-messages $message
    echo ""
    echo ""
    echo "-----显示完成-----"
fi

查看消息,从Offset最小值开始查看 最大1000条

if [ $message -lt 1001 ];then
    echo ""    
    echo "你选择的topic:topic,消息条数为:$message"
    echo ""
/kafka/bin/kafka-console-consumer.sh --topic $topic --bootstrap-server ${IP} --from-beginning --max-messages $message 
    echo ""
    echo "-----显示完成-----"
fi

查看消息,指定Offset位置开始查看 最大1000条

if [ $offset != "" ];then
   if [ $message -lt 1000 ];then
      echo ""    
      echo "你选择的topic:$topic,offset: $offset,partition: $partition, 消息条数为:$message"
     /kafka/bin/kafka-console-consumer.sh --topic $topic --bootstrap-server ${IP} --offset $offset --partition $partition --max-messages $message
      echo ""
      echo ""
   fi
fi

查看所有消费组

echo ""
/kafka/bin/kafka-consumer-groups.sh --bootstrap-server ${IP} --list | grep -v console-consumer
echo "消费组列表如下,已为您自动过滤了控制台显示的(console-consumer)相关消费组"
echo ""

查看消费组详情

echo "属性简介:"
echo "-  TOPIC: 该消费者组消费的是哪些topic"
echo "-  PARTITION: 表示该消费者消费的是哪些分区, 如果有些topic只有一个分区,那么分区号为0"
echo "-  CURRENT-OFFSET: 表示消费者组最新消费的位移值, 此值在消费过程中是变化的"
echo "-  LOG-END-OFFSET: 表示topic所有分区当前的日志终端位移值, 因为我们生产了多少数据,这里就显示多少数值"
echo "-  LAG: 表示滞后进度, 此值为LOG-END-OFFSET 与 CURRENT-OFFSET的差值, 代表的是滞后情况, 此值越大表示滞后严重, 本例最终LAG为0 说明没有消费滞后."
echo ""
/kafka/bin/kafka-consumer-groups.sh --bootstrap-server ${IP} --describe --group $group
echo ""