Zabbix日常监控之lvs监控

内容太挫,实现的方法仅供参考!

参考博文:

Zabbix自建模板监控,自动发现LVS连接状态:http://blog.51cto.com/kaibinyuan/1711863

一、自动发现主机并监控lvs的连接状态

1、脚本内容

最初的

[root@lvs01 scripts]# cat lvs_discovery_ActConn.sh 
#!/bin/bash
#filename: lvs_discovery.sh
#author: 
MY_KEY=(`sudo /sbin/ipvsadm -L -n |egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' |grep  "$1"|awk '$5 > 0 {print $2}'`)
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"
[root@lvs01 scripts]# 
注释说明:当前IP地址有活跃连接的时候才输出IP地址
之前的脚本内容

现在使用的

[root@lvs01 scripts]# cat ../scripts/lvs_discovery_ActConn.sh 
#!/bin/bash
#filename: lvs_discovery.sh
#author: 
MY_KEY=(`sudo /sbin/ipvsadm -L -n |egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' |grep  "$1"|awk '{print $2}'`)
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"

脚本测试结果:

 

2、配置文件内容

# monitor lvs status
UserParameter=lvs.status.discovery,/etc/zabbix/scripts/lvs_discovery_ActConn.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}'

3、重启服务并测试

 systemctl restart zabbix-agent.service


#在zabbix-server端测试: [root@zabbix
-server ~]# zabbix_get -s 10.10.10.59 -k lvs.status.discovery { "data":[ {"{#IFNAME}":"10.10.10.60:80"}, {"{#IFNAME}":"10.10.10.61:80"}]} [root@zabbix-server ~]# zabbix_get -s 10.10.10.59 -k lvs.status[10.10.10.60] 2

4、创建模板以及加入自动发现规则

创建模板

 创建自动发现规则

创建监控原型

 创建图形原型

 

设置触发器

猜你喜欢

转载自www.cnblogs.com/huangyanqi/p/9203125.html
今日推荐