Zabbix日常监控之lvs监控

今天想到一个需求:监控lvs服务的运行状态。

有问题百度一下,找到此篇文章 https://www.cnblogs.com/huangyanqi/p/9203125.html 在我机器上试了一下,出现2个问题。1.普通用户无法使用ipvsadm命令    2.连接数为0就报警,优化了一下

第1个问题试了好多办法:zabbix用户增加sudo权限,使用root用户启动zabbix程序,修改/usr/lib/systemd/system/zabbix-agent.service启动脚本等。仍然无效。浪费2个小时没解决,最后换一个编译的zabbix程序。换个路径成功!

第2个问题和其他优化内容如下:

一、优化zabbix自动发现脚本

优化了 制表符,运行起来更像json。

#!/bin/bash
#author: GuoYabin
MY_KEY=(`sudo /usr/sbin/ipvsadm -L -n |egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' |grep  "$1"|awk '{print $2}'|awk -F ":" '{print $1}'`)
length=${#MY_KEY[@]}
printf "{
"
printf  '	'""data":["
for ((i=0;i<$length;i++))
do     
	printf '
		{'
	printf ""{#IFNAME}":"${MY_KEY[$i]}"}"
		if [ $i -lt $[$length-1] ];then
			printf ','
 	        fi
done
printf  "
	]
}"

  

二、zabbix自定义键配置文件

修改了lvs.connect和lvs.status自定义键的取值

UserParameter=lvs.status.discovery,/usr/local/zabbix/etc/zabbix_agentd.conf.d/lvs_discovery_ActConn.sh
UserParameter=lvs.connect[*], /usr/sbin/ipvsadm -L -n | egrep -v 'TCP|UDP|Virtual|LocalAddress|ActiveConn' | grep "$1" | awk '{print $$5}'
UserParameter=lvs.status[*], /usr/sbin/ipvsadm -L -n |grep "$1" |wc -l
UserParameter=lvs.CPS[*], ipvsadm -L --rate | egrep -v 'IP|Port|TCP' | grep "$1" | awk '{print $$3}'
UserParameter=lvs.InPPS[*], ipvsadm -L --rate | egrep -v 'IP|Port|TCP' | grep "$1" | awk '{print $$4}'
UserParameter=lvs.OutPPS[*], ipvsadm -L --rate | egrep -v 'IP|Port|TCP' | grep "$1" | awk '{print $$5}'
UserParameter=lvs.InByte[*], ipvsadm -L --rate | egrep -v 'IP|Port|TCP' | grep "$1" | awk '{print $$6}'
UserParameter=lvs.OutByte[*], ipvsadm -L --rate | egrep -v 'IP|Port|TCP' | grep "$1" | awk '{print $$7}'

  

三、其他配置

#设置权限

chmod +x /usr/local/zabbix/etc/zabbix_agentd.conf.d/lvs_discovery_ActConn.sh

#重启agent服务

systemctl restart zabbix-agent.service

#zabbix-server测试

四、图像处理

模板我已经做好了(主动模式),现在可以直接下载:链接:https://pan.baidu.com/s/1E5JqfO3Ilr7RSyBU_Angaw 提取码:k5up

注意:优化了lvsdown触发器,不能没有连接时候就算down状态。优化了间隔取值时间,优化了主动式上报模式。

下图直接盗用了他们的图给你们做个示范

原文地址:https://www.cnblogs.com/guoyabin/p/12322750.html