kafka的流量监控脚本

kafka指定topic每分钟接收到的数据总量监控

需求:获取kafka每分钟接收到的数据总量,并以 时间戳-topicName-flow的格式存入Mysql

设计思路:

1.得到kafka当前时间点的sum(logsize),并存入指定的file文件。

2.一分钟后再次执行脚本,得到即时的sum(logsize),同时读取file文件里的数字x,sum(logsize)-x即为一分钟内kafka指定topic的flow(流量)。

3.将获取到的flow存入mysql,同时将file文件中的数字更新。

4.通过定时器crontab循环以上流程。

shell脚本:


#!/bin/bash
#mysql-host
mysql_host=‘192.168.60.161‘
#mysql-port
mysql_port=‘3306‘
#mysql-username
username=‘root‘
#mysql-password
#注意:此处如果mysql密码不为空,需要去下面切换一下mysql的执行代码,注释掉下面那一行,放开上面。
password=‘‘
#mysql-DBNAME
DBNAME=‘kafka_monitor‘
#mysql-tableName
tableName=‘kafka_flow_monitor‘
#zookeeper-ip
zookeeper=‘192.168.60.158:2181‘
#topicID
topic=‘nifi_test‘
#KAFKA_HOME(kafka安装目录)
KAFKA_HOME=‘/home/kafka‘
#filePath(中间结果存放文件路径)
file=‘/tmp/kafka/dataCount.txt‘
#group
group=$(grep ‘group.id=‘ $KAFKA_HOME/config/consumer.properties | cut -d ‘=‘ -f2)

if [ $# -eq 1 ];then
    topic=$1
fi
out=$(sh $KAFKA_HOME/bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zookeeper $zookeeper --group $group --topic $topic)
if [ $? -ne 0 ];then
        sh $KAFKA_HOME/bin/kafka-run-class.sh kafka.tools.UpdateOffsetsInZK earliest $KAFKA_HOME/config/consumer.properties $topic >> /dev/null
        out=$(sh $KAFKA_HOME/bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zookeeper $zookeeper --group $group --topic $topic)
fi
i=0
sum=0
for line in $(echo "$out"); do
        let i++
        if [ $i -gt 7 ]; then
                b=$(( $i % 7 ))
                if [ $b -eq 5 ];then
                        sum=$(($sum + $line))
                fi
        fi
done
x=$(cat $file)
dataCount=$[ $sum-$x ]
if [ $dataCount -lt 0 ];then
        dataCount=$sum
fi
dateTime=$(date ‘+%Y-%m-%d %H:%M:%S‘)
insert_sql="insert into ${tableName} values(‘$dateTime‘,‘$topic‘,$dataCount)"
echo $insert_sql

之后将此脚本加入到linux的定时任务内即可

[[email protected] bin]# crontab -e

编辑文件:

* * * * * sh /home/kafka/bin/mysh.sh <topicName> >> /dev/null

此处的为你想要监控的topicName,前面的5颗星从左到右分别代表分钟,小时,天,周,月。如果想5分钟执行一次则可以写为*/5 * * * * ,每小时的第10分钟执行,则写为10 * * * *。当然你还可以输出日志到指定的目录以便后期分析:

* * * * * sh /home/kafka/bin/getDataCount.sh <topicName> >> /home/kafka/bin/getDataCount.log

由于只需求分析kafka每分钟接收到的数据总量,由此来判别kafka或者负责发送数据的客户端是否出现问题,所以这里只监控了logsize属性,大家可以由此扩展,即可监控到kafka指定topic的偏移量offset以及冗余量lag,做为kafka性能分析的依据。

时间: 2024-07-29 11:50:14

kafka的流量监控脚本的相关文章

linux系统CPU,内存,磁盘,网络流量监控脚本

前序 1,#cat /proc/stat/ 信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2,#vmstat –s 或者#vmstat 虚拟内存统计 3, #cat /proc/loadavg 从系统启动开始到当前累积时刻 4, #uptime 系统运行多长时间 5, #mpstat CPU的一些统计信息 6, # 一,linux系统CPU,内存,磁盘,网络流量监控脚本 [作者:佚名来源:不详时间:2010-7-6 [我来说两句大中小] cme.sh网络流量监

zabbix自定义网卡流量监控脚本and解决图形字体方块问题

1.  在客户端修改配置文件  /etc/zabbix/zabbix_agentd.conf需要改动两个地方:(1)  UnsafeUserParameters=1(2) UserParameter=my.net.if[*],/usr/local/sbin/zabbix/net.sh $1 $2   //其中UserParameter用来自定义键值,(类似于net.if.in),自己写的脚本往往会有参数,所以需要加[*],这是固定写法,如果脚本压根就没有什么参数,那么这个[*]就省了.逗号后面就

流量监控脚本

公司有台服务器每天晚上流量很高,但是不知道确定是到哪个IP的流量 把改脚本定时到晚上执行 1 #!/bin/sh 2 nic='em1' 3 myFile=$nic'monitor' 4 #iftop -P -n -N -t -B -L100 -s10 -i $nic | grep -Ev 'Listening| Host|Total|total' | sed -e 's/=>//g' -e 's/<=//g' | grep -Ev '=|-' | sed -e 's/ [0-9]\{1,3\

网卡流量监控脚本

#!/bin/bash while [ "1" ] do eth=$1 RXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}') TXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}') sleep 1 RXnext=$(cat /proc/net/dev | grep $eth | t

网卡流量监控脚本 ( Shell )

#!/bin/bash # Traffic Monitor # author: Xiao Guaishou get_traffic_info(){ recv=`cat /proc/net/dev | awk -F '[: ]+' '/'"$dev"'/{print $3}'` sent=`cat /proc/net/dev | awk -F '[: ]+' '/'"$dev"'/{print $11}'` } get_traffic_rate(){ In=`echo

网卡流量监控脚本 ( Python )

#!/usr/bin/env python # coding: utf-8 # author: Xiao Guaishou try: import psutil except ImportError: print('Error: psutil module not found!') exit() def get_key(): key_info = psutil.net_io_counters(pernic=True).keys() recv = {} sent = {} for key in k

几个常用的Linux监控脚本

几个常用的Linux监控脚本 几个常用的Linux监控脚本下面是几个主机监控的脚本,大家可以根据自己的情况再进行修改,希望能给大家一点帮助.1.查看主机网卡流量#!/bin/bash#network#Mike.Xuwhile : ; dotime='date +%m"-"%d" "%k":"%M'day='date +%m"-"%d'rx_before='ifconfig eth0|sed -n "8"p|

Kafka消息系统监控

1.监控目标 当系统可能或处于亚健康状态时及时提醒,预防故障发生 报警提示 2.监控内容 2.1 机器监控 Kafka服务器指标 CPU Load Disk IO Memory 2.2 JVM监控 主要监控JAVA的 GC time(垃圾回收时间),JAVA的垃圾回收机制对性能的影响比较明显 2.3 Kafka系统监控 1.Kafka总体监控 zookeeper上/kafka08/broker/ids目录下节点数量 leader 选举频率 2.Kafka Broker监控 Broker是否存活

几个常用的Linux操作系统监控脚本

本文介绍了几个常用的Linux监控脚本,可以实现主机网卡流量.系统状况.主机磁盘空间.CPU和内存的使用情况等方面的自动监控与报警.根据自己的需求写出的shell脚本更能满足需求,更能细化主机监控的全面性. 最近时不时有互联网的朋友问我关于服务器监控方面的问题,问常用的服务器监控除了用开源软件,比如:cacti,nagios监控外是否可以自己写shell脚本呢?根据自己的需求写出的shell脚本更能满足需求,更能细化主机监控的全面性. 下面是我常用的几个主机监控的脚本,大家可以根据自己的情况再进