Bash 如何从脚本在zabbix中创建多用户参数器

Bash 如何从脚本在zabbix中创建多用户参数器,bash,zabbix,Bash,Zabbix,这是一个shell脚本,返回2个值,一个表示数据包丢失百分比,另一个表示True或False: SERVER_IP=$1 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中,当

这是一个shell脚本,返回2个值,一个表示数据包丢失百分比,另一个表示True或False:

SERVER_IP=$1

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中,当您创建一个项目时,您只输入一个带值的参数,但我有两个值,一个是数据包丢失,第二个是ping结果(0和1)


如何仅使用此脚本创建两个项目1用于数据包丢失百分比,第二个用于ping健康检查?我不想再创建一个

UserParameter=key[*],/path\u of_script.sh$1

在GUI上: Key:Key[Server\u IP]

另一个例子: UserParameter=general[*],/usr/local/etc/scripts/general.sh$1$2$3$4$5$6$7$8$9

$cat general.sh

#!/bin/bash

case $1 in

ddate) ddate;;
minute) echo "`date +%M`%2" | bc;;
files) ls -l $2 | grep ^- | wc -l;;
size.dir) du -s $2 | cut -f1;;
script) /bin/bash /usr/local/etc/scripts/script.sh;;
*) echo "Use: ddate, minute, files <parameters>, size.dir <parameters> or script";;

esac
#/bin/bash
每箱1元
ddate)ddate;;
分钟)回音“`date+%M`%2”| bc;;
文件)ls-l$2|grep^-| wc-l;;
尺寸(dir)du-s$2 |切割-f1;;
script)/bin/bash/usr/local/etc/scripts/script.sh;;
*)echo“使用:ddate、分钟、文件、size.dir或脚本”;;
以撒
$zabbix_get-s Server_IP-k general[分钟]

感谢

尝试此脚本这将引导您准确了解您想要的内容:

#!/bin/bash

    case $1 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$4}' | awk '{print $2}' | cut -c 1-4 ;;
    *) echo "Use: packetloss , timeout";;

    esac
尝试(我在zsh中):

或者在zabbix服务器中使用get(我这里也在zsh中):


现在用这些键创建项目。

您好,我将脚本更改为#/用于Zabbix监视器的bin/bash#Ping#Ping脚本。条件返回#of 1=成功| 0=失败的服务器| IP=$1 checkip=
ping-c2-w2$SERVER | IP | grep“数据包丢失”| cut-d“”-f6 | cut-d“%”-f1
| test1=$?如果[$checkip-等式0],则回显$checkip;然后result=“1”echo$alive else loss=“0”echo$loss fi现在如何为loss和alive创建userparamater并检查ip?
zabbix_agentd -t ping.loss\[timeout\]   
ping.loss[timeout]                            [t|1000]
zabbix_get -s 172.20.4.49 -k ping.loss\[timeout\]         
1001