一 kafka某个offset的监控工具
(1).开源社区有相应的组件进行监控
a.下载 kafka offset监控 (地址链接)
https://pan.baidu.com/s/1sj0YERV (如果失效,可以上社区搜索)
b. 解压后发现KafkaOffsetMonitor-assembly-0.2.1.jar,即为监控组件
c.编写脚本(可定时启动)
KafkaOffsetMonitor-assembly-0.2.1.jar
vim kafkaOffsetMonitor.sh
#! /bin/bash
java -cp KafkaOffsetMonitor-assembly-0.2.1.jar
com.quantifind.kafka.offsetapp.OffsetGetterWeb
–offsetStorage kafka
–zk zk-server1,zk-server2
–port 8080
–refresh 10.seconds #refresh per 10s
–retain 2.days
(2) 利用kafka命令(每10s监控一次)
vim kafkaOffsetMonitor.sh
#! /bin/bash
a=0
while true
do
kafka-run-class.sh kafka.tools.GetOffsetShell --topic test --time -1 --broker-list hadoop:9092,spark:9092
a=$(($a+1))
echo "=========== The ${a}th print kafka offset ==========="
sleep 10s
done
二 .再平衡kafka topic各分区的partition
均衡topic的partition的leader到各个节点,使每个broker的负载能够均衡承担,增加稳定性,可用性(特别适用于某些broker重新回复到ISR中时,进行topic的各partitions leader的均衡分布
同时,与运行该工具前相比,Leader的分配更均匀
$KAFKA_HOME/bin/kafka-preferred-replica-election.sh --zookeeper hadoop:2181,spark:2181/kafka10
三.验证所指定的一个或多个Topic下每个Partition对应的所有Replica是否都同步
此命令也可以监控offset
opt/kafka_2.11-0.10.0.0/bin/kafka-replica-verification.sh --broker-list hadoop:9092,spark:9092 --topic-white-list test
opt/kafka_2.11-0.10.0.0/bin/kafka-replica-verification.sh --broker-list hadoop:9092,spark:9092 --topic test
四 .收集当前topic的某时间段的数据
/home/sznongfu/opt/kafka_2.11-0.10.0.0/bin/kafka-console-consumer.sh --zookeeper hadoop:2181,spark:2181/kafka10 --topic test >>/tmp/kafkaRM-7.1.dat &
五.linux 监控 IO,NIC ,TOP
1.IOSTAT -x 时间间隔(s) 次数
iostat -x 1 10
2.SAR 监控网络流量
#sar -n选项使用6个不同的开关:DEV,EDEV,NFS,NFSD,SOCK,IP,EIP,ICMP,EICMP,TCP,ETCP,UDP,SOCK6,IP6,EIP6,ICMP6,EICMP6和UDP6 ,DEV显示网络接口信息,EDEV显示关于网络错误的统计数据,NFS统计活动的NFS客户端的信息,NFSD统计NFS服务器的信息,SOCK显示套接字信息,ALL显示所有5个开关。它们可以单独或者一起使用。
2.1:sar -n DEV 1 1: 每间隔1秒统计一次,总计统计1次,下面的average是在多次统计后的平均值
#IFACE 本地网卡接口的名称
#rxpck/s 每秒钟接受的数据包
#txpck/s 每秒钟发送的数据库
#rxKB/S 每秒钟接受的数据包大小,单位为KB
#txKB/S 每秒钟发送的数据包大小,单位为KB
#rxcmp/s 每秒钟接受的压缩数据包
#txcmp/s 每秒钟发送的压缩包
#rxmcst/s 每秒钟接收的多播数据包
2..2:sar -n EDEV 1 1 #统计网络设备通信失败信息:
#IFACE 网卡名称
#rxerr/s 每秒钟接收到的损坏的数据包
#txerr/s 每秒钟发送的数据包错误数
#coll/s 当发送数据包时候,每秒钟发生的冲撞(collisions)数,这个是在半双工模式下才有
#rxdrop/s 当由于缓冲区满的时候,网卡设备接收端每秒钟丢掉的网络包的数目
#txdrop/s 当由于缓冲区满的时候,网络设备发送端每秒钟丢掉的网络包的数目
#txcarr/s 当发送数据包的时候,每秒钟载波错误发生的次数
#rxfram 在接收数据包的时候,每秒钟发生的帧对其错误的次数
#rxfifo 在接收数据包的时候,每秒钟缓冲区溢出的错误发生的次数
#txfifo 在发生数据包 的时候,每秒钟缓冲区溢出的错误发生的次数
2.3:sar -n SOCK 1 1 #统计socket连接信息
#totsck 当前被使用的socket总数
#tcpsck 当前正在被使用的TCP的socket总数
#udpsck 当前正在被使用的UDP的socket总数
#rawsck 当前正在被使用于RAW的skcket总数
#if-frag 当前的IP分片的数目
#tcp-tw TCP套接字中处于TIME-WAIT状态的连接数量
########如果你使用FULL关键字,相当于上述DEV、EDEV和SOCK三者的综合
2.4:sar -n TCP 1 3 #TCP连接的统计
#active/s 新的主动连接
#passive/s 新的被动连接
#iseg/s 接受的段
#oseg/s 输出的段
1.10.5:sar -n 使用总结
1.10.6:常用命令汇总,因版本和平台不同,有部分命令可能没有或显示结果不一致: