1. 修改zabbix_agent配置文件添加以下内容,重启agent
Include=/etc/zabbix/zabbix_agentd.d/ 2. 在zabbix安装目录下的scripts目录下添加一下脚本
cat lvs_discovery_ActConn.sh ----监控lvs上的80端口连接数
     #!/bin/bash
#filename: lvs_discovery.sh
#author:
#MY_KEY=(` sudo /sbin/ipvsadm -L -n |egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep 443 |grep "$1"|awk '{print $2}'|awk -F ":" '{print $1}'`)
MY_KEY=(` sudo /sbin/ipvsadm -L -n |egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep "$1"|awk '{print $2}'|awk -F"[ ]" 'NR<4{print $1}'`)
#MY_KEY=(`sudo /sbin/ipvsadm -L -n |egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep "$1"|awk '{print $2}'|awk '{print $1}' | sed -e 's/80/http/g' -e 's/443/https/g')
length=${#MY_KEY[@]}
printf "{\n"
printf '\t'"\"data\":["
for ((i=0;i<$length;i++))
do
printf '\n\t\t{'
printf "\"{#IFNAME}\":\"${MY_KEY[$i]}\"}"
if [ $i -lt $[$length-1] ];then
printf ','
fi
done
printf "]}\n" 3. 在zabbix.agentd.d下面新建配置文件
cat ../zabbix_agentd.d/lvs_ActConn.conf
# monitor lvs status
UserParameter=lvs.status.discovery,/etc/zabbix/scripts/lvs_discovery_ActConn.sh -----lvs.status.discovery为自动发现的key值
#UserParameter=lvs.status[*],sudo /sbin/ipvsadm -L -n | egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep "$1" | awk '$$5 > 0 {print $$5}' ----grep "$1"为位置变量
UserParameter=lvs.status[*],sudo /sbin/ipvsadm -L -n | egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep "$1" | awk '{print $$5}' ----lvs.status[*],*为lvs_discovery_ActConn.sh脚本传过来的参数
4. 监控lvs443端口的连接数
     #!/bin/bash
#filename: lvs_discovery.sh
#author:
#MY_KEY=(` sudo /sbin/ipvsadm -L -n |egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep 443 |grep "$1"|awk '{print $2}'|awk -F ":" '{print $1}'`)
MY_KEY=(` sudo /sbin/ipvsadm -L -n |egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep "$1"|awk '{print $2}'|awk -F"[ ]" 'NR>3{print $1}'`)
#MY_KEY=(`sudo /sbin/ipvsadm -L -n |egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep "$1"|awk '{print $2}'|awk '{print $1}' | sed -e 's/80/http/g' -e 's/443/https/g')
length=${#MY_KEY[@]}
printf "{\n"
printf '\t'"\"data\":["
for ((i=0;i<$length;i++))
do
printf '\n\t\t{'
printf "\"{#IFNAME}\":\"${MY_KEY[$i]}\"}"
if [ $i -lt $[$length-1] ];then
printf ','
fi
done
printf "]}\n"
5. 新建监控lvs443端口连接数配置文件
cat ../zabbix_agentd.d/lvs_ActConnPort443.conf
# monitor lvs status
UserParameter=lvs.status443.discovery,/etc/zabbix/scripts/lvs_discovery_ActConnPort443.sh
#UserParameter=lvs.status[*],sudo /sbin/ipvsadm -L -n | egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep "$1" | awk '$$5 > 0 {print $$5}'
UserParameter=lvs.status443[*],sudo /sbin/ipvsadm -L -n | egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep "$1" | awk '{print $$5}'
6. 新建监控lvs443端口流量和包
cat lvs_discovery_ActConn80.sh
#!/bin/bash
#filename: lvs_discovery.sh
#author:
#MY_KEY=(` sudo /sbin/ipvsadm -L -n |egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep 443 |grep "$1"|awk '{print $2}'|awk -F ":" '{print $1}'`)
#MY_KEY=(` sudo /sbin/ipvsadm -L -n |egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep "$1"|awk '{print $2}'|awk -F"[ ]" 'NR<4{print $1}'`)
MY_KEY=(`sudo /sbin/ipvsadm -L -n |egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep "$1"|awk '{print $2}'|awk 'NR<4{print $1}'`)
length=${#MY_KEY[@]}
printf "{\n"
printf '\t'"\"data\":["
for ((i=0;i<$length;i++))
do
printf '\n\t\t{'
printf "\"{#IFNAME}\":\"${MY_KEY[$i]}\"}"
if [ $i -lt $[$length-1] ];then
printf ','
fi
done
printf "]}\n"
7. 新建监控lvs80端口的流量配置文件
cat lvs_ActConn443.conf
# monitor lvs status
UserParameter=lvs.status80.discovery,/etc/zabbix/scripts/lvs_discovery_ActConn80.sh
#UserParameter=lvs.status[*],sudo /sbin/ipvsadm -L -n | egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep "$1" | awk '$$5 > 0 {print $$5}'
#UserParameter=lvs.status[*],sudo /sbin/ipvsadm -L -n | egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep "$1" | awk '{print $$5}'
UserParameter=lvs.CPS80[*],sudo /sbin/ipvsadm -L --rate | egrep -v 'IP|Port|TCP' | sed '1,3s/http/80/g'| grep "$1" |awk '{print $$3}'
UserParameter=lvs.InPPS80[*],sudo /sbin/ipvsadm -L --rate | egrep -v 'IP|Port|TCP' | sed '1,3s/http/80/g' | grep "$1"| awk '{print $$4}'
UserParameter=lvs.OutPPS80[*],sudo /sbin/ipvsadm -L --rate | egrep -v 'IP|Port|TCP' | sed '1,3s/http/80/g'| grep "$1" | awk '{print $$5}'
UserParameter=lvs.InByte80[*],sudo /sbin/ipvsadm -L --rate | egrep -v 'IP|Port|TCP' | sed '1,3s/http/80/g'| grep "$1" | awk '{print $$6}'
#UserParameter=lvs.InByte[*],sudo /sbin/ipvsadm -L --rate | egrep -v 'IP|Port|TCP' | grep "$1" |grep 443 | awk '{print $$6}'
UserParameter=lvs.OutByte80[*],sudo /sbin/ipvsadm -L --rate | egrep -v 'IP|Port|TCP'| sed '1,3s/http/80/g' | grep "$1" | awk '{print $$7}'
8. 新建监控lvs443端口流量
cat ../scripts/lvs_discovery_ActConnhttp.sh
#!/bin/bash
#filename: lvs_discovery.sh
#author:
#MY_KEY=(` sudo /sbin/ipvsadm -L -n |egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep 443 |grep "$1"|awk '{print $2}'|awk -F ":" '{print $1}'`)
MY_KEY=(` sudo /sbin/ipvsadm -L -n |egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep "$1"|awk '{print $2}'|awk -F"[ ]" 'NR>3{print $1}' | sed 's/443/https/g'`)
#MY_KEY=(`sudo /sbin/ipvsadm -L -n |egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep "$1"|awk '{print $2}'|awk '{print $1}' | sed -e 's/80/http/g' -e 's/443/https/g')
length=${#MY_KEY[@]}
printf "{\n"
printf '\t'"\"data\":["
for ((i=0;i<$length;i++))
do
printf '\n\t\t{'
printf "\"{#IFNAME}\":\"${MY_KEY[$i]}\"}"
if [ $i -lt $[$length-1] ];then
printf ','
fi
done
printf "]}\n"
9. 新建监控lvs443端口流量配置文件
# monitor lvs status
UserParameter=lvs.stat.discovery,/etc/zabbix/scripts/lvs_discovery_ActConnhttp.sh
#UserParameter=lvs.status[*],sudo /sbin/ipvsadm -L -n | egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep "$1" | awk '$$5 > 0 {print $$5}'
#UserParameter=lvs.status[*],sudo /sbin/ipvsadm -L -n | egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep "$1" | awk '{print $$5}'
UserParameter=lvs.CPS[*],sudo /sbin/ipvsadm -L --rate | egrep -v 'IP|Port|TCP' | grep "$1" |awk '{print $$3}'
UserParameter=lvs.InPPS[*],sudo /sbin/ipvsadm -L --rate | egrep -v 'IP|Port|TCP' | grep "$1" | awk '{print $$4}'
UserParameter=lvs.OutPPS[*],sudo /sbin/ipvsadm -L --rate | egrep -v 'IP|Port|TCP' | grep "$1" | awk '{print $$5}'
UserParameter=lvs.InByte[*],sudo /sbin/ipvsadm -L --rate | egrep -v 'IP|Port|TCP' | grep "$1" | awk '{print $$6}'
#UserParameter=lvs.InByte[*],sudo /sbin/ipvsadm -L --rate | egrep -v 'IP|Port|TCP' | grep "$1" |grep 443 | awk '{print $$6}'
UserParameter=lvs.OutByte[*],sudo /sbin/ipvsadm -L --rate | egrep -v 'IP|Port|TCP' | grep "$1" | awk '{print $$7}'
监控脚本和配置文件有点乱,还来不及作修改,只需要在配置文件里面第二行UserParameter=lvs.stat.discovery,/etc/zabbix/scripts/lvs_discovery_ActConnhttp.sh与脚本名对上就OK.另外加红的部分每个配置文件必须不一样,这个是自动发现的key值.
10. 开始配置自动发现规则和key值
https://pan.baidu.com/s/1Sn7LVTdtjZHQvbyHjvNrqg 密码:302i这个模版还是有点问题的,不适合我们公司这种两个端口的Lvs,我在上面做了修改,以及自己加的图形。
先导入模版之后,创建主机,关联模版,进入主机,选择自动发现规则开始配置。

自定义监控lvs的更多相关文章

  1. Zabbix自定义监控8080端口的连接数

    Zabbix自定义监控8080端口的连接数 一 zabbix自定义监控实现思路 实际上我们要想使用zabbix来监控一些服务的原理很简单,步骤分别是:1.写一个脚本用于获取待监控服务的一些状态信息2. ...

  2. Nagios监控lvs服务

    1在lvs server上安装nrpe客户端: 1.1,rpm方式安装nrpe客户端 下载地址:http://download.csdn.net/detail/mchdba/7493875 [root ...

  3. 使用腾讯云“自定义监控”监控GPU使用率

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:李想 随着人工智能以及比特币的火热,GPU云服务的使用场景是越来越广,在很多场景下我们也需要获取GPU服务器的性能参数来优化程序的执行.目 ...

  4. zabbix自定义监控项、添加图形、设置触发器、远程执行命令

    监控项是在zabbix中手机数据的基础,没有监控项就没有数据,系统自带模板带有大量默认item,自定义item可以定义在模板中,在应用模板即可使用对应item:也可直接在host中定义 目标:自定义监 ...

  5. zabbix实现自定义监控

    实现自定义监控项实例 .创建主机组 .创建主机 .创建监控项 .到需要监控的主机的agent中添加自定义的监控项目 cd /etc/zabbix/zabbix_agentd.d vi userpara ...

  6. zabbix监控实战<3> 之自定义监控实例

    第一章    自定义监控tcp状态 命令可以选择ss 或者 netstat    ss打印基于socket的统计信息,实际运行下来,ss的速度要比netstat要快得多 1.1  tcp的十一种状态 ...

  7. 分布式系统监视zabbix讲解六之自定义监控项--技术流ken

    宏 概述 Zabbix支持许多在多种情况下使用宏.宏是一个变量,由如下特殊语法标识: {MACRO} 根据在上下文中, 宏解析为一个特殊的值. 有效地使用宏可以节省时间,并使Zabbix变地更加高效. ...

  8. zabbix自定义监控项

    原因:zabbix监控系统自带的监控规则有限,如果需要更加灵活的定义监控项,可以通过修改配置文件实现 vim xxx/zabbix_agentd.conf UnsafeUserParameters=1 ...

  9. zabbix自定义监控

    有的时候zabbix提供的监控项目,不能满足我们生产环境下的监控需求,此时我们就要按照zabbix的规范自定义监控项目,达到监控的目的 zabbix_get:模拟zabbix_server和agent ...

随机推荐

  1. node服务器搭建流程

    1,创建一个空文件夹,用来存放项目. 2,在空文件夹中,在cmd命令提示符中输入npm init  初始化一个服务器项目. 设置的属性信息:    name : 项目名称(小括号中是默认的,文件夹名相 ...

  2. uniapp中添加vant组件

    首先是npm i vant@2 -S 下载vant包 接下来就是找到main.js引入vant 然后就是在页面中直接使用 会发现没有样式 最后再找到app.vue再style里面全局引入vant的样式 ...

  3. 2021.08.01 P4311 数字序列(左偏树)

    2021.08.01 P4311 数字序列(左偏树) [P4331 BalticOI 2004]Sequence 数字序列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1 ...

  4. 2021.07.19 BZOJ2654 tree(生成树)

    2021.07.19 BZOJ2654 tree(生成树) tree - 黑暗爆炸 2654 - Virtual Judge (vjudge.net) 重点: 1.生成树的本质 2.二分 题意: 有一 ...

  5. javascript中的宏任务和微任务(二)

    js事件轮询执行顺序总结: 1)所有的同步任务都在主线程上执行,行成一个执行栈. 2)除了主线程之外,还存在一个任务列队,只要异步任务有了运行结果,就在任务列队中植入一个时间标记. 3)主线程完成所有 ...

  6. LCA的离线快速求法

    最常见的LCA(树上公共祖先)都是在线算法,往往带了一个log.有一种办法是转化为"+-1最值问题"得到O(n)+O(1)的复杂度,但是原理复杂,常数大.今天介绍一种允许离线时接近 ...

  7. 【生产事故调查】优化出来的bug-合并集合重复项

    本来是要修复前一个代码bug,修复的过程中发现原本的代码又丑又长,复用性差(但是能用),出于强迫症忍不住的去优化,测试还不充分,火急火燎的发到生产了,结果掉井了!导致多个订单线下物流发货发多了.... ...

  8. k8s入门之ConfigMap(九)

    ConfigMap是k8s的配置管理工具,通常用来保存明文的配置信息,以key-value形式传递配置. 一.使用命令创建ConfigMap对象 1.通过--from-literal参数创建 kube ...

  9. Linux 多网卡bonding

    bonding 将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡.直接给两块网卡设置同一IP 地址是不可以的.通过 bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的 ...

  10. 图解KMP字符串匹配算法+代码实现

    kmp算法跟之前讲的bm算法思想有一定的相似性.之前提到过,bm算法中有个好后缀的概念,而在kmp中有个好前缀的概念,什么是好前缀,我们先来看下面这个例子. 观察上面这个例子,已经匹配的abcde称为 ...