如何统计kafka服务连接数?

Bash

1 前言

一个问题,一篇文章,一出故事。
笔者生产环境的Kafka被客户端跑死,但不知道是哪个客户端发起众多连接,于是写脚本监控。

2 最佳实践

2.1 安装客户端软件包

yum install -y net-tools

2.2 创建监视脚本

mkdir -p ~/scripts/
vim ~/scripts/kafka-con-status.sh

加入如下脚本,

#!/bin/bash

setTime=`date +"%Y-%m-%d %H:%M:%S"`
kafkaLog="/var/log/kafka/full/kafka.$setTime.log"
kafkaStatusLog="/var/log/kafka/kafkaStatus.log"
filter="10.168.0.28:9092"

if [ ! -d `dirname "$kafkaLog"` ]; then
        mkdir -p `dirname "$kafkaLog"`
fi

netstat -antp | grep "$filter" > "$kafkaLog"
echo "$setTime" >> "$kafkaStatusLog"
echo "All": `cat "$kafkaLog" | wc -l` >> "$kafkaStatusLog"
for i in `cat "$kafkaLog" | awk -F ' ' '{print $5}' | awk -F ':' '{print $1}' | sort -u`; do
        echo "$i": `grep "$i" "$kafkaLog" | wc -l`
done | sort -r -n -b -t ":" -k 2 | head -n 10 >> "$kafkaStatusLog"
echo >> $kafkaStatusLog

#find `dirname "$kafkaLog"` -type f -ctime -7 -name "kafka.*.log" -exec ls {} \;
find `dirname "$kafkaLog"` -type f -ctime +7 -name "kafka.*.log" -exec rm -f {} \;

2.4 测试脚本

sh ~/scripts/kafka-con-status.sh

2.5 设置脚本触发

crontab -e

加入如下触发规则,

*/5 * * * * sh ~/scripts/kafka-con-status.sh

参阅文档
================
https://www.cmdschool.org/archives/16104

没有评论

发表回复

Bash
如何熟悉Base Shell的变量的间接引用?

1 前言 一个问题,一篇文章,一出故事。 笔者希望以一个变量名称去引用另一个变量,于是整理此文。 2 …

Bash
如何实现文件夹路径转纯数字符串?

1 前言 一个问题,一篇文章,一出故事。 由于由于需要设置某目录的配额,配额要求为每个目录指定一个项 …

Bash
如何统计Linux打开文件前10进程?

1 前言 一个问题,一篇文章,一出故事。 笔者生产环境有台服务最近压力比较大,打开的文件数量不断地往 …