xenzbx 1.3 version
This commit is contained in:
parent
0dae24c0ab
commit
55d06d23eb
1270
xenserver/xen-zbx-active-3x.xml
Normal file
1270
xenserver/xen-zbx-active-3x.xml
Normal file
File diff suppressed because it is too large
Load Diff
3
xenserver/xenzbx.conf
Normal file
3
xenserver/xenzbx.conf
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#xenserver zabbix
|
||||||
|
UserParameter=xenzbx[*],sudo /etc/zabbix/scripts/xenzbx.sh "$1" "$2" "$3"
|
||||||
|
|
||||||
326
xenserver/xenzbx.sh
Executable file
326
xenserver/xenzbx.sh
Executable file
@ -0,0 +1,326 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# ABOUT xen server for zabbix
|
||||||
|
# author mikedmorto 2021 year
|
||||||
|
|
||||||
|
export LC_ALL=""
|
||||||
|
export LANG="en_US.UTF-8"
|
||||||
|
|
||||||
|
version="1.3"
|
||||||
|
XE="/opt/xensource/bin/xe"
|
||||||
|
|
||||||
|
JSON=""
|
||||||
|
##### PARAMETERS#####
|
||||||
|
METRIC="$1"
|
||||||
|
ITEM="$2"
|
||||||
|
|
||||||
|
case "$METRIC" in
|
||||||
|
discovery)
|
||||||
|
|
||||||
|
# delete last simbol and add the end
|
||||||
|
JSON="{ \"data\":["
|
||||||
|
XCPU_LIST=""
|
||||||
|
|
||||||
|
# get all cpu numbers
|
||||||
|
XCPU_LIST=`cat "/proc/cpuinfo" | grep processor | tr -d ' ' | awk -F":" '{print "cpu"$2}'`
|
||||||
|
XSR_LIST=`${XE} sr-list params=uuid | egrep -o "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"`
|
||||||
|
XVM_LIST=`${XE} vm-list is-control-domain=false params=uuid | egrep -o "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"`
|
||||||
|
|
||||||
|
|
||||||
|
#show all cpu
|
||||||
|
for CPU_NAME in ${XCPU_LIST}; do
|
||||||
|
JSON=${JSON}" {\"{#CPU_NAME}\":\"${CPU_NAME}\"},"
|
||||||
|
done
|
||||||
|
|
||||||
|
#show all sr uuid
|
||||||
|
for SR_UUID in ${XSR_LIST}; do
|
||||||
|
JSON=${JSON}" {\"{#SR_UUID}\":\"${SR_UUID}\"},"
|
||||||
|
done
|
||||||
|
#show all vm uuid
|
||||||
|
for VM_UUID in ${XVM_LIST}; do
|
||||||
|
JSON=${JSON}" {\"{#VM_UUID}\":\"${VM_UUID}\"},"
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
JSON=${JSON::-1}
|
||||||
|
JSON=${JSON}"]}"
|
||||||
|
echo ${JSON}
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
xen.version)
|
||||||
|
RET=`cat "/etc/xensource-inventory" | awk -F"=" '{if($1=="PRODUCT_VERSION"){print $2} }' | tr -d "'" `
|
||||||
|
echo ${RET}
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
xen.dom0_mem)
|
||||||
|
RET=`cat "/etc/xensource-inventory" | awk -F"=" '{if($1=="DOM0_MEM"){print $2} }' | tr -d "'" `
|
||||||
|
echo ${RET}
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
xen.brand)
|
||||||
|
RET=`cat "/etc/xensource-inventory" | awk -F"=" '{if($1=="PRODUCT_BRAND"){print $2} }' | tr -d "'" `
|
||||||
|
echo ${RET}
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
xen.memory_total_kib)
|
||||||
|
RET=`${XE} host-data-source-query data-source=memory_total_kib`
|
||||||
|
echo ${RET}
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
xen.memory_free_kib)
|
||||||
|
RET=`${XE} host-data-source-query data-source=memory_free_kib`
|
||||||
|
echo ${RET}
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
####### xapi memory ########
|
||||||
|
xen.xapi_memory_usage_kib)
|
||||||
|
RET=`${XE} host-data-source-query data-source=xapi_memory_usage_kib`
|
||||||
|
echo ${RET}
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
xen.xapi_free_memory_kib)
|
||||||
|
RET=`${XE} host-data-source-query data-source=xapi_free_memory_kib`
|
||||||
|
echo ${RET}
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
xen.xapi_live_memory_kib)
|
||||||
|
RET=`${XE} host-data-source-query data-source=xapi_live_memory_kib`
|
||||||
|
echo ${RET}
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
xen.xapi_allocation_kib)
|
||||||
|
RET=`${XE} host-data-source-query data-source=xapi_allocation_kib`
|
||||||
|
echo ${RET}
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
##### cpu
|
||||||
|
xen.cpu_usage)
|
||||||
|
|
||||||
|
if [ -z "$ITEM" ]
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
RET=`${XE} host-data-source-query data-source=${ITEM}`
|
||||||
|
echo ${RET}
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
###### sr #########
|
||||||
|
xen.sr_physical-size)
|
||||||
|
|
||||||
|
if [ -z "$ITEM" ]
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
RET=`${XE} sr-param-get param-name=physical-size uuid=${ITEM}`
|
||||||
|
if [[ $RET = '-1' ]]
|
||||||
|
then echo 0
|
||||||
|
else
|
||||||
|
echo ${RET}
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
|
||||||
|
xen.sr_virtual-allocation)
|
||||||
|
|
||||||
|
if [ -z "$ITEM" ]
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
RET=`${XE} sr-param-get param-name=virtual-allocation uuid=${ITEM}`
|
||||||
|
echo ${RET}
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
xen.sr_physical-utilisation)
|
||||||
|
|
||||||
|
if [ -z "$ITEM" ]
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
RET=`${XE} sr-param-get param-name=physical-utilisation uuid=${ITEM}`
|
||||||
|
|
||||||
|
if [[ $RET = '-1' ]]
|
||||||
|
then echo 0
|
||||||
|
else
|
||||||
|
echo ${RET}
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
xen.sr_type)
|
||||||
|
|
||||||
|
if [ -z "$ITEM" ]
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
RET=`${XE} sr-param-get param-name=type uuid=${ITEM}`
|
||||||
|
echo ${RET}
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
xen.sr_name-label)
|
||||||
|
|
||||||
|
if [ -z "$ITEM" ]
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
RET=`${XE} sr-param-get param-name=name-label uuid=${ITEM}`
|
||||||
|
echo ${RET}
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
###### vms ######
|
||||||
|
|
||||||
|
xen.vm_running)
|
||||||
|
|
||||||
|
RET=`${XE} vm-list is-control-domain=false power-state=running params=uuid | egrep -o "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" | wc -l`
|
||||||
|
echo ${RET}
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
xen.vm_name-label)
|
||||||
|
|
||||||
|
if [ -z "$ITEM" ]
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
RET=`${XE} vm-param-get param-name=name-label uuid=${ITEM}`
|
||||||
|
echo ${RET}
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
xen.vm_power-state)
|
||||||
|
|
||||||
|
if [ -z "$ITEM" ]
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
RET=`${XE} vm-param-get param-name=power-state uuid=${ITEM}`
|
||||||
|
echo ${RET}
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
xen.vm_memory-actual)
|
||||||
|
|
||||||
|
if [ -z "$ITEM" ]
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
RET=`${XE} vm-param-get param-name=memory-actual uuid=${ITEM}`
|
||||||
|
echo ${RET}
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
xen.pool_autorun)
|
||||||
|
XPOOL=`${XE} pool-list params=uuid| egrep -o "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"`
|
||||||
|
XSTATUS=`${XE} pool-param-get param-name=other-config uuid=${XPOOL} | tr -d ' ' | tr ';' '\n' | awk -F":" '{if($1=="auto_poweron"){print $2}}'`
|
||||||
|
if [[ $XSTATUS = "true" ]]
|
||||||
|
then echo "1"
|
||||||
|
else
|
||||||
|
echo "0"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
|
||||||
|
xen.vm_autorun)
|
||||||
|
|
||||||
|
if [ -z "$ITEM" ]
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
XSTATUS=`${XE} vm-param-get param-name=other-config uuid=${ITEM} | tr -d ' ' | tr ';' '\n' | awk -F":" '{if($1=="auto_poweron"){print $2}}'`
|
||||||
|
if [ -z "$XSTATUS" ]
|
||||||
|
then
|
||||||
|
echo "0" && exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $XSTATUS = "true" ]]
|
||||||
|
then echo "1"
|
||||||
|
else
|
||||||
|
echo "0"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
|
||||||
|
script.version)
|
||||||
|
echo ${version}
|
||||||
|
;;
|
||||||
|
|
||||||
|
|
||||||
|
help)
|
||||||
|
echo "please use these params
|
||||||
|
{
|
||||||
|
discovery
|
||||||
|
xen.version
|
||||||
|
xen.dom0_mem
|
||||||
|
xen.brand
|
||||||
|
xen.memory_total_kib
|
||||||
|
xen.memory_free_kib
|
||||||
|
xen.xapi_memory_usage_kib
|
||||||
|
xen.xapi_free_memory_kib
|
||||||
|
xen.xapi_live_memory_kib
|
||||||
|
xen.xapi_allocation_kib
|
||||||
|
xen.cpu_usage
|
||||||
|
xen.pool_autorun
|
||||||
|
xen.sr_virtual-allocation
|
||||||
|
xen.sr_physical-utilisation
|
||||||
|
xen.sr_physical-size
|
||||||
|
xen.sr_type
|
||||||
|
xen.sr_name-label
|
||||||
|
xen.vm_runnig
|
||||||
|
xen.vm_name-label
|
||||||
|
xen.vm_power-state
|
||||||
|
xen.vm_memory-actual
|
||||||
|
xen.vm_autorun
|
||||||
|
script.version
|
||||||
|
}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo ""
|
||||||
|
;;
|
||||||
|
esac
|
||||||
Loading…
x
Reference in New Issue
Block a user