如何从脚本在zabbix中创建多用户参数
how to create multi user paramerter in zabbix from a script
这是一个 shell 脚本 return 2 个值,一个用于数据包丢失百分比,另一个用于 True 或 False :
SERVER_IP=
checkip=`ping -c 2 -W 2 $SERVER_IP | grep "packet loss" | cut -d " " -f 6 | cut -d "%" -f1`
test1=$?
echo $checkip
if [ $test1 -eq 0 ]; then
echo "1"
else
echo "0"
fi
在 zabbix 中,当您创建一个项目时,您只输入一个带值的参数,但我有 2 个值,一个是数据包丢失,另一个是 ping 结果(0 和 1)
如何仅使用此脚本创建两个项目,1 用于数据包丢失百分比,2 用于 ping 健康检查?我不想再创建一个
用户参数=键[*],/path_of_script.sh$1
在 GUI 上:
键:键[Server_IP]
另一个例子:
UserParameter=general[*],/usr/local/etc/scripts/general.sh $1 $2 $3 $4 $5 $6 $7 $8 $9
$猫general.sh
#!/bin/bash
case in
ddate) ddate;;
minute) echo "`date +%M`%2" | bc;;
files) ls -l | grep ^- | wc -l;;
size.dir) du -s | cut -f1;;
script) /bin/bash /usr/local/etc/scripts/script.sh;;
*) echo "Use: ddate, minute, files <parameters>, size.dir <parameters> or script";;
esac
$ zabbix_get -s Server_IP -k 一般[分钟]
感谢Andre
试试这个脚本,它会引导您找到您想要的东西:
#!/bin/bash
case in
packetloss) ping -c2 -W1 -q 8.8.8.8 | grep -oP '\d+(?=% packet loss)' ;;
timeout) ping -c2 -q 8.8.8.8 | grep 'time' | awk -F',' '{ print}' | awk '{print }' | cut -c 1-4 ;;
*) echo "Use: packetloss , timeout";;
esac
尝试(我在 zsh 中):
zabbix_agentd -t ping.loss\[timeout\]
ping.loss[timeout] [t|1000]
或者在 zabbix 服务器中使用 get(我也在 zsh 中):
zabbix_get -s 172.20.4.49 -k ping.loss\[timeout\]
1001
现在使用这些密钥创建项目。
这是一个 shell 脚本 return 2 个值,一个用于数据包丢失百分比,另一个用于 True 或 False :
SERVER_IP=
checkip=`ping -c 2 -W 2 $SERVER_IP | grep "packet loss" | cut -d " " -f 6 | cut -d "%" -f1`
test1=$?
echo $checkip
if [ $test1 -eq 0 ]; then
echo "1"
else
echo "0"
fi
在 zabbix 中,当您创建一个项目时,您只输入一个带值的参数,但我有 2 个值,一个是数据包丢失,另一个是 ping 结果(0 和 1)
如何仅使用此脚本创建两个项目,1 用于数据包丢失百分比,2 用于 ping 健康检查?我不想再创建一个
用户参数=键[*],/path_of_script.sh$1
在 GUI 上: 键:键[Server_IP]
另一个例子: UserParameter=general[*],/usr/local/etc/scripts/general.sh $1 $2 $3 $4 $5 $6 $7 $8 $9
$猫general.sh
#!/bin/bash
case in
ddate) ddate;;
minute) echo "`date +%M`%2" | bc;;
files) ls -l | grep ^- | wc -l;;
size.dir) du -s | cut -f1;;
script) /bin/bash /usr/local/etc/scripts/script.sh;;
*) echo "Use: ddate, minute, files <parameters>, size.dir <parameters> or script";;
esac
$ zabbix_get -s Server_IP -k 一般[分钟]
感谢Andre
试试这个脚本,它会引导您找到您想要的东西:
#!/bin/bash
case in
packetloss) ping -c2 -W1 -q 8.8.8.8 | grep -oP '\d+(?=% packet loss)' ;;
timeout) ping -c2 -q 8.8.8.8 | grep 'time' | awk -F',' '{ print}' | awk '{print }' | cut -c 1-4 ;;
*) echo "Use: packetloss , timeout";;
esac
尝试(我在 zsh 中):
zabbix_agentd -t ping.loss\[timeout\]
ping.loss[timeout] [t|1000]
或者在 zabbix 服务器中使用 get(我也在 zsh 中):
zabbix_get -s 172.20.4.49 -k ping.loss\[timeout\]
1001
现在使用这些密钥创建项目。