国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

Zabbix對Kafka topic積壓數(shù)據(jù)監(jiān)控的問題(bug優(yōu)化)

瀏覽:126日期:2023-04-06 15:09:24
目錄
  • 簡述
  • 分區(qū)自動發(fā)現(xiàn)
  • 獲取監(jiān)控項(xiàng)“test-group/test/分區(qū)X”的Lag
  • 最終優(yōu)化后腳本
  • 接入Zabbix
    • 1.Zabbix配置文件
    • 2.Zabbix自動發(fā)現(xiàn)
    • 3.監(jiān)控項(xiàng)配置
    • 4.告警信息

簡述

分區(qū)自動發(fā)現(xiàn)

# 未優(yōu)化前的計算方式:# 自動發(fā)現(xiàn)配置文件vim consumer-groups.conf#按消費(fèi)者組(Group)|Topic格式,寫入自動發(fā)現(xiàn)配置文件test-group|test# 執(zhí)行腳本自動發(fā)現(xiàn)指定消費(fèi)者和topic的分區(qū)bash consumer-groups.sh discovery{    "data": [{ "{#GROUP}":"test-group", "{#TOPICP}":"test", "{#PARTITION}":"0" },{ "{#GROUP}":"test-group", "{#TOPICP}":"test", "{#PARTITION}":"1" },{ "{#GROUP}":"test-group", "{#TOPICP}":"test", "{#PARTITION}":"3" },{ "{#GROUP}":"test-group", "{#TOPICP}":"test", "{#PARTITION}":"2" }    ]}

經(jīng)過上線驗(yàn)證,當(dāng)自動發(fā)現(xiàn)配置文件只有一個test-group|test是沒有問題的,但當(dāng)我們按需求再接入test-group|test1 (即test-group消費(fèi)者組的第二個Topic)時,自動發(fā)現(xiàn)的結(jié)果如下:

# 未優(yōu)化前的計算方式:vim consumer-groups.conf#按消費(fèi)者組(Group)|Topic格式,寫入自動發(fā)現(xiàn)配置文件test-group|testtest-group|test1# 執(zhí)行腳本自動發(fā)現(xiàn)指定消費(fèi)者和topic的分區(qū)bash consumer-groups.sh discovery{    "data": [{ "{#GROUP}":"test-group", "{#TOPICP}":"test", "{#PARTITION}":"0" },{ "{#GROUP}":"test-group", "{#TOPICP}":"test", "{#PARTITION}":"1" },{ "{#GROUP}":"test-group", "{#TOPICP}":"test", "{#PARTITION}":"3" },{ "{#GROUP}":"test-group", "{#TOPICP}":"test", "{#PARTITION}":"2" }{ "{#GROUP}":"test-group", "{#TOPICP}":"test1", "{#PARTITION}":"0" },{ "{#GROUP}":"test-group", "{#TOPICP}":"test2", "{#PARTITION}":"1" },{ "{#GROUP}":"test-group", "{#TOPICP}":"test3", "{#PARTITION}":"2" }    ]}

了解Zabbix自動發(fā)現(xiàn)格式的同學(xué)會發(fā)現(xiàn),每個Topic的Partition會出現(xiàn)',',這種格式是不符合規(guī)范,這就是導(dǎo)致我們的監(jiān)控項(xiàng)會出現(xiàn)問題,因此我們需要進(jìn)一步修改腳本。

經(jīng)修改后,最終效果應(yīng)該如下:

# 優(yōu)化后的計算方式:vim consumer-groups.conf#按消費(fèi)者組(Group)|Topic格式,寫入自動發(fā)現(xiàn)配置文件test-group|testtest-group|test1# 執(zhí)行腳本自動發(fā)現(xiàn)指定消費(fèi)者和topic的分區(qū)bash consumer-groups.sh discovery{    "data": [{ "{#GROUP}":"test-group", "{#TOPICP}":"test", "{#PARTITION}":"0" },{ "{#GROUP}":"test-group", "{#TOPICP}":"test", "{#PARTITION}":"1" },{ "{#GROUP}":"test-group", "{#TOPICP}":"test", "{#PARTITION}":"3" },{ "{#GROUP}":"test-group", "{#TOPICP}":"test", "{#PARTITION}":"2" },{ "{#GROUP}":"test-group", "{#TOPICP}":"test1", "{#PARTITION}":"0" },{ "{#GROUP}":"test-group", "{#TOPICP}":"test1", "{#PARTITION}":"1" },{ "{#GROUP}":"test-group", "{#TOPICP}":"test1", "{#PARTITION}":"2" }    ]}

獲取監(jiān)控項(xiàng)“test-group/test/分區(qū)X”的Lag

經(jīng)過自動發(fā)現(xiàn)后的數(shù)據(jù),我們可以進(jìn)一步獲取不同分區(qū)的lag

# 優(yōu)化后的計算方式:# test-group test分區(qū)0 lagbash consumer-groups.sh lag test-group test 0# test-group test分區(qū)1 lagbash consumer-groups.sh lag test-group test 1# test-group test1分區(qū)0 lagbash consumer-groups.sh lag test-group test1 0

通過命令可以看到,我們的參數(shù)通過消費(fèi)者組、Topic、Partition來獲取最終的lag值,如果不加消費(fèi)者區(qū)分,那么無法區(qū)分不同消費(fèi)者組和不同Topic相應(yīng)的lag結(jié)果:

# 未優(yōu)化前的計算方式:# 獲取分區(qū)0 lagbash consumer-groups.sh lag 0# 獲取分區(qū)1 lagbash consumer-groups.sh lag 1# 獲取分區(qū)2 lagbash consumer-groups.sh lag 2# 獲取分區(qū)3 lagbash consumer-groups.sh lag 3

最終優(yōu)化后腳本

# 自動發(fā)現(xiàn)配置文件vim consumer-groups.conf#按消費(fèi)者組(Group)|Topic格式,寫入自動發(fā)現(xiàn)配置文件test-group|testtest-group|test1# 自動發(fā)現(xiàn)、lag計算腳本vim consumer-groups.sh#!/bin/bash##comment: 根據(jù)消費(fèi)者組監(jiān)控topic lag,進(jìn)行監(jiān)控告警#配置文件說明#消費(fèi)者組|Topic#test-group|test#獲取topic 信息cal_topic() {    if [ $# -ne 2 ]; thenecho "parameter num error, 讀取topic信息失敗"exit 1    else/usr/local/kafka/bin/./kafka-consumer-groups.sh --bootstrap-server 192.168.3.55:9092 --describe --group $1 |grep -w $2|grep -v none     fi}#topic+分區(qū)自動發(fā)現(xiàn)topic_discovery() {    printf "{\n"    printf "\t\"data\": [\n"    m=0    num=`cat /etc/zabbix/monitor_scripts/consumer-groups.conf|wc -l`    for line in `cat /etc/zabbix/monitor_scripts/consumer-groups.conf`    do  m=`expr $m + 1`group=`echo ${line} | awk -F"|" "{print $1}"`topic=`echo ${line} | awk -F"|" "{print $2}"`cal_topic $group $topic > /tmp/consumer-group-tmpcount=`cat /tmp/consumer-group-tmp|wc -l`n=0while read linedo     n=`expr  $n + 1`     #判斷最后一行     if [ $n -eq $count ] && [ $m -eq $num ]; then topicp=`echo $line | awk "{print $1}"` partition=`echo $line  | awk "{print $2}"` printf "\t\t{ \"{#GROUP}\":\"${group}\", \"{#TOPICP}\":\"${topicp}\", \"{#PARTITION}\":\"${partition}\" }\n"     else topicp=`echo $line | awk "{print $1}"` partition=`echo $line  | awk "{print $2}"` printf "\t\t{ \"{#GROUP}\":\"${group}\", \"{#TOPICP}\":\"${topicp}\", \"{#PARTITION}\":\"${partition}\" },\n"     fidone < /tmp/consumer-group-tmp    done    printf "\t]\n"    printf "}\n"}if [ $1 == "discovery" ]; then    topic_discoveryelif [ $1 == "lag" ];then    cal_topic $2 $3 > /tmp/consumer-group    cat /tmp/consumer-group |awk -v t=$3 -v p=$4 "{if($1==t && $2==p ){print $5}}"else    echo "Usage: /data/scripts/consumer-group.sh discovery | lag"fi# 手動運(yùn)行## 自動發(fā)現(xiàn)bash consumer-groups.sh discovery## test-group test分區(qū)0 lagbash consumer-groups.sh lag test-group test 0

接入Zabbix

1.Zabbix配置文件

vim userparameter_kafka.confUserParameter=topic_discovery,bash /data/scripts/consumer-groups.sh discoveryUserParameter=topic_log[*],bash /data/scripts/consumer-groups.sh lag "$1" "$2" "$3"

2.Zabbix自動發(fā)現(xiàn)

3.監(jiān)控項(xiàng)配置

4.告警信息

告警主機(jī):Kafka_192.168.3.55主機(jī)IP:192.168.3.55主機(jī)組:Kafka告警時間:2022.03.21 00:23:10告警等級:Average告警信息:test-group/test/分區(qū)1:數(shù)據(jù)積壓100告警項(xiàng)目:topic_lag[test-group,test,1]問題詳情:test-group/test/1: 62

到此這篇關(guān)于Zabbix對Kafka topic積壓數(shù)據(jù)監(jiān)控的文章就介紹到這了,更多相關(guān)Zabbix積壓數(shù)據(jù)監(jiān)控內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: Zabbix
相關(guān)文章:
主站蜘蛛池模板: 南靖县| 洪雅县| 遂川县| 壤塘县| 奉节县| 南木林县| 荔浦县| 沾化县| 九龙城区| 古交市| 百色市| 屏东县| 赤城县| 大姚县| 犍为县| 崇仁县| 北川| 淳化县| 庄河市| 婺源县| 同德县| 梅河口市| 宿迁市| 宜宾市| 济宁市| 大邑县| 桃源县| 凉山| 咸阳市| 诏安县| 汉寿县| 临海市| 微博| 工布江达县| 理塘县| 师宗县| 长泰县| 平邑县| 长丰县| 武宣县| 勐海县|