2017-05-12 31 views
0

下午好的zabbix JMX项目正则表达式解析器

我在的zabbix JMX一个项目:

JMX [ “MONITOR:类型=混合”,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:类型=杂交”, “HybridInfo”]的regexp。[(自上次执行 秒:)。([0-9] *),, \ 2])

或者这将是JMX查询等内:

JMX [ “MONITOR:类型=杂交”, “HybridInfo。” 自上次执行秒:“]

为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 [本地主机 “/ VI /健康检查/ API1”,3345,(HTTP /1.1).([0-9]* ),, \ 2]

回答

1

不确定测试代码在那里,或者如何与shell脚本相关,但Zabbix中的项目值解析还不被支持,它是来自Zabbix 3.4:https://support.zabbix.com/browse/ZBXNEXT-1443

+0

它会很像这个项目: web.page.regexp [localhost,“/ vi/health-check/api1”,3345,(HTTP/1.1)。([0-9] *),, \ 2] – Daniel

+0

如前所述,Zabbix不支持将其作为所有项目类型的通用功能 - 它是Zabbix 3.4中的一项功能。 – Richlv

+0

@ Richlv谢谢你的回答。 – Daniel