美文网首页
zabbix 压测

zabbix 压测

作者: 繁华丶凋零 | 来源:发表于2019-07-09 17:39 被阅读0次

前景:
trapper 模式,zabbix 有个trapper 模式
trapper模式是通过 zabbix_send 往 key 里面供数

大体架构
agent 一台 (只做自动发现 items 用)
server 一台 (用来自动生成item和接受 值以及 发现告警信息)
自动发送key脚本 (部署在 server上,死循环往 key里供数)

压测的值 :value processed by zabbix server per second 这个 item的 值
压测的表达:当压测值达到一定值是,如果来了一条告警,是否立马能 获得 告警

agent配置:

1. 自动发现脚本:

脚本名:test.sh
脚本内容: cat  /zabbix/zabbix/bin/xxx.test

2. xxx.test内容:

{
   "data":[
{"{#APPNAME}":"ESB","{#TRANSTYPE}":"esb0"},
{"{#APPNAME}":"ESB","{#TRANSTYPE}":"esb1"},
{"{#APPNAME}":"ESB","{#TRANSTYPE}":"esb2"},
.........
{"{#APPNAME}":"ESB","{#TRANSTYPE}":"esb4000"}
]
}

规则就是 只有esb后面的 数字不一样, 1-4000

3. key 配置文件

esb.conf文件内容:
UserParameter=odb_app_trans_discovery_lk[*],/zabbix/zabbix/bin/test.sh

server端web 配置:

  1. 自动发现规则:


    自动发现.PNG

    2.trapper模式主items:(只用来为他的子item供职)


    主.PNG
    3.trapper模式子items:(真正的监控项)
    从.PNG

    4.子item是通过preprocessing取得值:


    从json.PNG

自动发送脚本

名称: zidongsend1.sh
内容:

while true 
do

for i in obd_app_trans_discovery_lk[ESBesb{1..200}L1] ; 
do
#k=obd_app_trans_discovery_lk[ESBesb"$i"L1] ;
value={\"avgProcessTime\":1,\"avgStatus\":2,\"count\":3,\"test1\":1,\"test2\":1,\"test3\":1}  ;
#>/dev/null &
/boslog/zabbix/zabbix/bin/zabbix_sender -z 10.240.91.177 -s 10.240.2.81 -k $i  -o $value  > /dev/null
# /boslog/zabbix/zabbix/bin/zabbix_sender -z 10.240.91.177 -s 10.240.2.81 -k $i  -o \{"avgProcessTime":1,"avgStatus":2,"count":3\}    > /dev/null    

done

done

脚本解析:

  1. 很明显是个死循环,可以配合 bash zidongsend1.sh &使用

  2. for循环里就是 主item的 key

  3. value 是 要 发送给主item的 key的值
    子item 通过 preprocessing 从 得到的json文本 里取值
    json文本里 一个键就代表一个 子item

4.数据计算:(假设 这个脚本执行完一次需要两秒)
每2秒insert 增加的值 = (1主item+6子item)*200 = 1400

如何增大 每秒insert数:

1) 多开几个脚本一起跑(这里1-200循环,完全可以再开一个201-400循环,但是当脚本开的个数 到一定数量,基本就增长不了了,shell还是有瓶颈的)
2) 优化脚本,使其执行更快(比如用python多行程搞)
3)多开 子 item,这个效率是 最高的 ,翻倍翻得厉害
多开item,记得 value 变量的值要增长

如何获取 value processed by zabbix server per second 值

这个值 是 我们的指标,有两种取值方法:

  1. zabbix web端 图表
  2. 数据库实时查询
    select * from items where name = 'value processed by zabbix server per second';
    根据hostid 判断是否取到的是正确的主机,获得监控项 itemid(例19261)

select * from history where itemid = 19261 ;
根据得到的itemid 获取他的 值,可以 把value processed by zabbix server per second这个监控项 刷新时间调到5s (默认1m)

测试的性能

本次测试的内容是 value processed by zabbix server per second 到达一定值的时候 ,这时候 有告警进来是否能立马收到

方法 :

上面的 主item ,选一个 不在for 循环 里面的
然后 手动往 这个 item里 发值
给他的 子item创 tragger
实时刷新 problem ,看能否里获取告警或者恢复告警

相关文章

  • zabbix 压测

    前景:trapper 模式,zabbix 有个trapper 模式trapper模式是通过 zabbix_send...

  • 性能压测学习大纲

    一、压测的目的 二、压测的完整流程 三、压测场景分析/组织测试脚本 四、压测数据准备 五、压测指标监控 七、压测结...

  • 压测tips

    压测前: 明确压测的目的,观测指标; 准备好压测方案,几组case,case分别压测多久; 申请压测环境,告知进行...

  • 阶梯压测

    今天我们来浅谈一下阶梯压测,那么,什么是阶梯压测,什么时候做阶梯压测,阶梯压测和普通压测又有什么区别呢?阶梯压测:...

  • 02_压测流程步骤

    做压测的时候,首先我们得知道压测需求!大部分都是有压测指标的,只要能达到指标就算完成任务! 选择压测工具,编写压测...

  • zabbix监控redis

    一、导入模板 二、准备zabbix的配置文件,并测试脚本 三、在zabbix-server上zabbix-get测...

  • 流量录制,基于常态化压测

    简介 常态化压测、业务压测、集群压测、全链路压测、等基于特定需求的对后台接口进行的并发式请求,接口自动化压测数据的...

  • 提升cpu使用率

    如何优化压测工具发压能力 -- 提升cpu使用率 压测工具工作流程 压测工具一般在性能压测过程中用于对被压的系统产...

  • go实现的压测工具【单台机器100w连接压测实战】

    本文介绍压测是什么,解释压测的专属名词,教大家如何压测。介绍市面上的常见压测工具(ab、locust、Jmeter...

  • go 实现的压测工具,ab、locust、Jmeter压测工具介

    本文介绍压测是什么,解释压测的专属名词,教大家如何压测。介绍市面上的常见压测工具(ab、locust、Jmeter...

网友评论

      本文标题:zabbix 压测

      本文链接:https://www.haomeiwen.com/subject/uxtfkctx.html