如何从脚本在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

现在使用这些密钥创建项目。