Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell Zabbix JMX项Regexp解析器_Shell_Jmx_Zabbix - Fatal编程技术网

Shell Zabbix JMX项Regexp解析器

Shell Zabbix JMX项Regexp解析器,shell,jmx,zabbix,Shell,Jmx,Zabbix,下午好 我在Zabbix JMX中有一个项目: jmx[监视器:类型=混合,HybridInfo] 此项返回以下字符串 POOL: HYBRID-CHARGE.I8 Active: true Carrier: TIM Start Producer: true Start Consumer: true Configurations: null CONSUMER Consumer Threads: 23 Scheduled Tasks: 50 PRODUCER Objects: 50000 Pagi

下午好

我在Zabbix JMX中有一个项目:

jmx[监视器:类型=混合,HybridInfo]

此项返回以下字符串

POOL: HYBRID-CHARGE.I8
Active: true
Carrier: TIM
Start Producer: true
Start Consumer: true
Configurations: null
CONSUMER
Consumer Threads: 23
Scheduled Tasks: 50
PRODUCER
Objects: 50000
Pagination Table: temporary.hybrid_engine_4
Pagination Interval: 60
Last Database Query: Fri May 12 14:23:32 UTC 2017
Last Result Size: 923526
Last Row Read: 923526
Seconds since Last Execution: 3
我想得到上次执行后的秒数:项目中的3,如

jmx[MONITOR:type=HybridInfo,HybridInfo].regexp[上一次之后的秒数] 执行:[0-9]*,\2]

或者它将位于JMX查询中,如:

jmx[MONITOR:type=Hybrid,HybridInfo.Seconds自上次执行以来:]

上面是JMX项的测试代码

#!/usr/bin/env bash

# Original source: https://www.zabbix.org/wiki/Docs/howto/zabbix_get_jmx
# Requires 'nc' app

ZBXGET="/usr/bin/zabbix_get"
if [ $# != 5 ] && [ $# != 7 ]; then
    echo "Usage: $0 <JAVA_GATEWAY_HOST> <JAVA_GATEWAY_PORT> <JMX_SERVER> <JMX_PORT> <KEY> [<JMX_USER> <JMX_PASS>]"
    exit;
fi

# Escape backslashes and double-quotes
KEYS=$(echo $5 | sed -e 's/\\/\\\\\\\\/g' -e 's/"/\\\"/g')

if [ $# = 5 ]; then
    QUERY="{\"request\": \"java gateway jmx\",\"conn\": \"$3\",\"port\": $4,\"keys\": [\"${KEYS}\"]}"
else
    JMX_USER="$6"
    JMX_PASS="$7"
    QUERY="{\"request\": \"java gateway jmx\",\"conn\": \"$3\",\"port\": $4,\"keys\": [\"${KEYS}\"],\"username\": \"${JMX_USER}\",\"password\": \"${JMX_PASS}\"}"
fi

# Prefix with binary header and length
QUERY_INTERPRETED=$(echo -en "${QUERY}")
QUERY_LEN=${#QUERY_INTERPRETED}
QUERY_LEN_BIN=$(printf "%.16x" ${QUERY_LEN} | sed "s/\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)/\\\x\8\\\x\7\\\x\6\\\x\5\\\x\4\\\x\3\\\x\2\\\x\1/")
QUERY_BIN="ZBXD\x01${QUERY_LEN_BIN}${QUERY}"

# Could not get zabbix_get 3.2.3 to work due to ZBX-11528 changes
# $ZBXGET -s $1 -p $2 -k "$QUERY"

echo -en "${QUERY_BIN}" | nc $1 $2

我想要这样的东西:web.page.regexp[localhost,/vi/healthcheck/api13345,HTTP‌​/1.1.[0-9]*,\2]

不确定有什么测试代码,或者shell脚本是如何相关的,但是Zabbix中的项值解析还不受支持,它将用于Zabbix 3.4:。

它将非常类似于此项:web.page.regexp[localhost,/vi/health check/api13345,HTTP/1.1.[0-9]*,\2],如前所述,Zabbix不支持将其作为所有项目类型的通用功能—这是Zabbix 3.4中的一项功能。@Richlv感谢您的回答。