kafka 监控工具

一 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 使用总结

-n DEV : 网络接口统计信息。
-n EDEV : 网络接口错误。
-n IP : IP数据报统计信息。
-n EIP : IP错误统计信息。
-n TCP : TCP统计信息。
-n ETCP : TCP错误统计信息。
-n SOCK : 套接字使用。n DEV : 网络接口统计信息。
-n EDEV : 网络接口错误。
-n IP : IP数据报统计信息。
-n EIP : IP错误统计信息。
-n TCP : TCP统计信息。
-n ETCP : TCP错误统计信息。
-n SOCK : 套接字使用。

      1.10.6:常用命令汇总,因版本和平台不同,有部分命令可能没有或显示结果不一致:

默认监控: sar 5 5     //  CPU和IOWAIT统计状态 
(1) sar -b 5 5        // IO传送速率
(2) sar -B 5 5        // 页交换速率
(3) sar -c 5 5        // 进程创建的速率
(4) sar -d 5 5        // 块设备的活跃信息
(5) sar -n DEV 5 5    // 网路设备的状态信息
(6) sar -n SOCK 5 5   // SOCK的使用情况
(7) sar -n ALL 5 5    // 所有的网络状态信息
(8) sar -P ALL 5 5    // 每颗CPU的使用状态信息和IOWAIT统计状态 
(9) sar -q 5 5        // 队列的长度(等待运行的进程数)和负载的状态
(10) sar -r 5 5       // 内存和swap空间使用情况
(11) sar -R 5 5       // 内存的统计信息(内存页的分配和释放、系统每秒作为BUFFER使用内存页、每秒被cache到的内存页)
(12) sar -u 5 5       // CPU的使用情况和IOWAIT信息(同默认监控)
(13) sar -v 5 5       // inode, file and other kernel tablesd的状态信息
(14) sar -w 5 5       // 每秒上下文交换的数目
(15) sar -W 5 5       // SWAP交换的统计信息(监控状态同iostat 的si so)
(16) sar -x 2906 5 5  // sar 5 5     //  CPU和IOWAIT统计状态 
(1) sar -b 5 5        // IO传送速率
(2) sar -B 5 5        // 页交换速率
(3) sar -c 5 5        // 进程创建的速率
(4) sar -d 5 5        // 块设备的活跃信息
(5) sar -n DEV 5 5    // 网路设备的状态信息
(6) sar -n SOCK 5 5   // SOCK的使用情况
(7) sar -n ALL 5 5    // 所有的网络状态信息
(8) sar -P ALL 5 5    // 每颗CPU的使用状态信息和IOWAIT统计状态 
(9) sar -q 5 5        // 队列的长度(等待运行的进程数)和负载的状态
(10) sar -r 5 5       // 内存和swap空间使用情况
(11) sar -R 5 5       // 内存的统计信息(内存页的分配和释放、系统每秒作为BUFFER使用内存页、每秒被cache到的内存页)
(12) sar -u 5 5       // CPU的使用情况和IOWAIT信息(同默认监控)
(13) sar -v 5 5       // inode, file and other kernel tablesd的状态信息
(14) sar -w 5 5       // 每秒上下文交换的数目
(15) sar -W 5 5       // SWAP交换的统计信息(监控状态同iostat 的si so)
(16) sar -x 2906 5 5  //

猜你喜欢

转载自blog.csdn.net/dymkkj/article/details/81027639