具有多个值的 Zabbix 用户参数不起作用
Zabbix userparameter with multiple values doesn't work
我正在尝试使 Zabbix 项目在 FreeBSD 上可用,以便从 SQUID 收集信息。
我有下一个用户参数:
UserParameter=data.sclient[*], printf "GET cache_object://localhost/purgeng/ HTTP/1.0\nAccept */*\n\n" | for i in $(echo "" | tr "," "\n" ); do nc -w 3 127.0.0.1 $i ; done | awk '/^[[:space:]]*$$
/ {getline;split($[=10=], a, / = /);print a[2]} END{if(!NR) print -2}'
但它只适用于一个端口值,例如:
zabbix_get -s 192.168.1.7 -p 10050 -k data.sclient["1111",distributors/configured]
6
当我尝试使用两个端口值时:
zabbix_get -s 192.168.1.7 -p 10050 -k data.sclient["1111,2222",distributors/configured]
false
你能帮我让它在多个端口上工作吗?
我的问题是for循环的设置不正确。
我做到了:
UserParameter=data.sclient[*], for i in $(echo ); do printf "GET cache_object://localhost/purgeng/ HTTP/1.0\nAccept */*\n\n" | nc -w 3 127.0.0.1 $i ; done | awk '/^[[:space:]]*$$/ {getline;split($[=10=], a, / = /);print a[2]} END{if(!NR) print -2}'
$ zabbix_get -s 192.168.1.7 -p 10050 -k data.sclient["1111 2222",distributors/connected]
3
3
我正在尝试使 Zabbix 项目在 FreeBSD 上可用,以便从 SQUID 收集信息。
我有下一个用户参数:
UserParameter=data.sclient[*], printf "GET cache_object://localhost/purgeng/ HTTP/1.0\nAccept */*\n\n" | for i in $(echo "" | tr "," "\n" ); do nc -w 3 127.0.0.1 $i ; done | awk '/^[[:space:]]*$$
/ {getline;split($[=10=], a, / = /);print a[2]} END{if(!NR) print -2}'
但它只适用于一个端口值,例如:
zabbix_get -s 192.168.1.7 -p 10050 -k data.sclient["1111",distributors/configured]
6
当我尝试使用两个端口值时:
zabbix_get -s 192.168.1.7 -p 10050 -k data.sclient["1111,2222",distributors/configured]
false
你能帮我让它在多个端口上工作吗?
我的问题是for循环的设置不正确。
我做到了:
UserParameter=data.sclient[*], for i in $(echo ); do printf "GET cache_object://localhost/purgeng/ HTTP/1.0\nAccept */*\n\n" | nc -w 3 127.0.0.1 $i ; done | awk '/^[[:space:]]*$$/ {getline;split($[=10=], a, / = /);print a[2]} END{if(!NR) print -2}'
$ zabbix_get -s 192.168.1.7 -p 10050 -k data.sclient["1111 2222",distributors/connected]
3
3