zabbix自发现规则学习


最终是为了获取redis进程cpu的使用情况(大神的话就可以绕道了)

创建模板(可以省略)

创建模板是可以不用进行,尤其在工作中没有必需要求不需要在创建一个,但是学习过程中还是推荐创建一个新的,这样的话后面会比较清晰。
进入zabbix服务的web页面→组态→模板→创建模板
在这里插入图片描述
注:在学习中并没有使用过多的属性,暂时只用了下面的两个属性。
1.填写模板名称;
2.选择模板所在族群;
在这里插入图片描述

创建自发现规则(重要)

这个步骤希望大家可以认真看完,我会尽量写的详细,希望可以帮助到需要帮助的人。
1.选择刚刚创建的模板或者你需要使用模板;
2.点击进去后选择探索规则→创建发现规则;
在这里插入图片描述
在这里插入图片描述
注:学习中我没用太多属性,你需要的话自己按照需求把其它的属性填写完整就行。 这个图片内容是教程,紧接着的图片才是这次的规则。
1.输入规则的名称;
2.输入你需要的键值;
注意:这里的监控的是具体的进程,所以在写脚本是这个key要能确定进程的唯一性。
在这里插入图片描述
本次监控redis的自发现规则的内容。
在这里插入图片描述
创建完后在规则中选择项目原型→创建监控项原型。
在这里插入图片描述
在这里插入图片描述
1.填写监控项原型的名称;
2.填写键值;
3.选择你需要的数据类型;
同样这是教程。
在这里插入图片描述
本次监控的项目原型的内容。
在这里插入图片描述
可以创建多个。
在这里插入图片描述
到这里web页面的创建算是完成了。不知道我写的是否还算清楚,如果哪里不清楚请留言告诉我,我知道的话会解答的,毕竟我也是个刚开始学的小白。

定义key和脚本(必看!必看!必看!)

在web阶段介绍了zabbix服务的模板、自发现规则和监控项原型的创建,之后就是脚本的书写和创建了。
1.进入安装有zabbix agent服务的虚拟机;
在这里插入图片描述
2.修改zabbix_agentd.conf; (这个文件是agent服务的配置文件,具体还是要以你自己安装的服务名字为准。)
在这里插入图片描述
2.1添加自发现规则的key和项目原型的key值以及脚本路径;
标记的是本次监控redis的。

3. 脚本书写
3.1 自发现规则生成json的脚本
在这里插入图片描述
写完记得测试一下脚本。

rint_comma(){    ## 这个方法代表参数1($1) 不等于 参数2($2)  那么(then)  标准输出(echo)"," fi
if [ $1 -ne $2 ]; then    # -ne 表示不等于   
    echo ","
fi
}

redis_discovery () {
redis_list=(`ps -ef|grep redis-server|grep -v grep|awk 'BEGIN{FS=":"};{print $NF}'`)    #获取redis进程端口号,放在一个list中
redis_num=${#redis_list[@]}    #取查询出来的端口号
i=0
echo -n '{"data":['
for redis in ${redis_list[@]};do   #  for循环   循环列表为所有用户
    ((i++))
    echo  -n '{"{#RENAME}":"'$redis'"}'`print_comma $i $redis_num `    # $i   $redis_num 分别表示print_comma方法的第一和第二个参数   #这句话的用途就是输出  '{"{#RENAME}":"'$redis'"}'+","   ,只到循环到最后一个元素时候,不用加逗号
done
echo -n ']}'
}

redis_discovery;   #调用方法

3.1.1 生成的json字符串样式

{"data":[{"{#RENAME}":"6379"},{"{#RENAME}":"6380"}]}

3.2 监控项原型的脚本
在这里插入图片描述
这个脚本就不用注解解释了,还是比较简单的脚本,有什么不懂网上基本都用大家搜索一下就行。
写完记得测试一下脚本。

port=$1   #端口


used_cpu_sys () {
  /usr/local/redis-cluster/redis-cpu/bin/redis-cli -p $port info CPU | awk 'NR==2' | cut -d ":" -f 2
}
used_cpu_user () {
  /usr/local/redis-cluster/redis-cpu/bin/redis-cli -p $port info CPU | awk 'NR==3' | cut -d ":" -f 2
}
used_cpu_sys_children () {
  /usr/local/redis-cluster/redis-cpu/bin/redis-cli -p $port info CPU | awk 'NR==4' | cut -d ":" -f 2
}
used_cpu_user_children () {
  /usr/local/redis-cluster/redis-cpu/bin/redis-cli -p $port info CPU | awk 'NR==5' | cut -d ":" -f 2
}

if [ "$2"x == "used_cpu_sys"x ];then
  used_cpu_sys;
elif [ "$2"x == "used_cpu_user"x ];then
   used_cpu_user;
elif [ "$2"x == "used_cpu_sys_children"x ];then
   used_cpu_sys_children;
elif [ "$2"x == "used_cpu_user_children"x ];then
   used_cpu_user_children;
else
   echo "error parameter"
fi

到这里脚本就已经写完了,接下来就是使用zabbix_get命令运行这两个脚本了。

运行zabbix_get命令

我的是又安装了zabbix proxy的服务,所以我会在这台服务上进行get,如果你的zabbix服务代理agent服务的是其它的虚拟机,那就在你代理agent服务的虚拟机上进行get。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值