如何在脚本中创建zabbix中的多用户参数

时间:2015-11-01 12:32:48

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

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

2 个答案:

答案 0 :(得分:0)

UserParameter = key [*],/ 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

$ 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

$ zabbix_get -s Server_IP -k general [分钟]

答案 1 :(得分:0)

感谢Andre

尝试此脚本,这将指导您到底想要什么:

#!/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

尝试(im in 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

现在使用这些键创建项目。