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