sevpn 3.2
This commit is contained in:
parent
55d06d23eb
commit
854af29f12
10
sevpn/README.md
Normal file
10
sevpn/README.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
Soft ether vpn monitoring
|
||||||
|
|
||||||
|
sevpn3.cfg - script config
|
||||||
|
|
||||||
|
sevpn3.conf - zabbix config
|
||||||
|
|
||||||
|
sevpn3.sh - script
|
||||||
|
|
||||||
|
zbx3_sevpn3_active.xml - template for zabbix 3.x
|
||||||
|
|
||||||
5
sevpn/sevpn3.cfg
Normal file
5
sevpn/sevpn3.cfg
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#sevpn 3.0 configuration file
|
||||||
|
PWD="test"
|
||||||
|
URL="127.0.0.1:5555"
|
||||||
|
VCMD="/root/soft/vpnserver/vpncmd"
|
||||||
|
|
||||||
2
sevpn/sevpn3.conf
Normal file
2
sevpn/sevpn3.conf
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#SoftEther VPN server
|
||||||
|
UserParameter=sevpn[*],sudo /etc/zabbix/scripts/sevpn3.sh "$1" "$2" "$3"
|
||||||
270
sevpn/sevpn3.sh
Executable file
270
sevpn/sevpn3.sh
Executable file
@ -0,0 +1,270 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# ABOUT softether vpn for zabbix
|
||||||
|
# author mikedmorto 2020 year
|
||||||
|
export LC_ALL=""
|
||||||
|
export LANG="en_US.UTF-8"
|
||||||
|
version="3.2"
|
||||||
|
|
||||||
|
. sevpn3.cfg
|
||||||
|
|
||||||
|
JSON=""
|
||||||
|
##### PARAMETERS#####
|
||||||
|
METRIC="$1"
|
||||||
|
ITEM="$2"
|
||||||
|
|
||||||
|
case "$METRIC" in
|
||||||
|
discovery)
|
||||||
|
HUBS=`$VCMD /server ${URL} /PASSWORD:${PWD} /CMD Hublist | grep "Virtual Hub Name" | awk -F"|" '{print $2}'`
|
||||||
|
JSON="{ \"data\":["
|
||||||
|
HUBUSERS=""
|
||||||
|
HUBBRIDGES=""
|
||||||
|
HUBCASCADES=""
|
||||||
|
|
||||||
|
#add all users from hub into habuser list
|
||||||
|
for HUB_NAME in ${HUBS}; do
|
||||||
|
USERS=`$VCMD /server ${URL} /adminhub:$HUB_NAME /PASSWORD:${PWD} /CMD UserList | grep "User Name" | awk -F"|" '{print $2}'`
|
||||||
|
for U in ${USERS}; do
|
||||||
|
HUBUSERS=${HUBUSERS}${HUB_NAME}","${U}" "
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
#add all bridges from hub into hubbridge list
|
||||||
|
for HUB_NAME in ${HUBS}; do
|
||||||
|
BRIDGES=`$VCMD /server ${URL} /PASSWORD:${PWD} /CMD BridgeList | tr -d ' ' | awk '-F|' -v VH="${HUB_NAME}" '{if ($2==VH) print $3}'`
|
||||||
|
for B in ${BRIDGES}; do
|
||||||
|
HUBBRIDGES=${HUBBRIDGES}${HUB_NAME}","${B}" "
|
||||||
|
done
|
||||||
|
done
|
||||||
|
#add all cascades from hub into hubcascade list
|
||||||
|
for HUB_NAME in ${HUBS}; do
|
||||||
|
CAS=`$VCMD /server ${URL} /adminhub:$HUB_NAME /PASSWORD:${PWD} /CMD CascadeList | grep "Setting Name" | awk -F"|" '{print $2}'`
|
||||||
|
for C in ${CAS}; do
|
||||||
|
HUBCASCADES=${HUBCASCADES}${HUB_NAME}","${C}" "
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
#show all hubs
|
||||||
|
for HUB_NAME in ${HUBS}; do
|
||||||
|
JSON=${JSON}" {\"{#HUB_NAME}\":\"${HUB_NAME}\"},"
|
||||||
|
done
|
||||||
|
#show all hubusers
|
||||||
|
for HUBUSER_NAME in ${HUBUSERS}; do
|
||||||
|
JSON=${JSON}" {\"{#HUB_USER_NAME}\":\"${HUBUSER_NAME}\"},"
|
||||||
|
done
|
||||||
|
#show all hubbridges
|
||||||
|
for HUBBRIDGE_NAME in ${HUBBRIDGES}; do
|
||||||
|
JSON=${JSON}" {\"{#HUB_BRIDGE_NAME}\":\"${HUBBRIDGE_NAME}\"},"
|
||||||
|
done
|
||||||
|
#show all hubcascades
|
||||||
|
for HUBCASCADE_NAME in ${HUBCASCADES}; do
|
||||||
|
JSON=${JSON}" {\"{#HUB_CASCADE_NAME}\":\"${HUBCASCADE_NAME}\"},"
|
||||||
|
done
|
||||||
|
|
||||||
|
# delete last simbol and add the end
|
||||||
|
JSON=${JSON::-1}
|
||||||
|
JSON=${JSON}"]}"
|
||||||
|
echo ${JSON}
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
srv.uptime)
|
||||||
|
start_date=`$VCMD /SERVER ${URL} /PASSWORD:${PWD} /CMD ServerStatusGet | grep "Server Started at" | awk -F"|" '{print $2}'`
|
||||||
|
start_date_timestamp=`date -d "$start_date" +%s`
|
||||||
|
current_date_timestamp=`date +%s`
|
||||||
|
uptime_timestamp=$[$current_date_timestamp - $start_date_timestamp]
|
||||||
|
echo "$uptime_timestamp"
|
||||||
|
;;
|
||||||
|
srv.number_of_users)
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /CMD ServerStatusGet | grep "Number of Users" | awk -F"|" '{print $2}'`
|
||||||
|
;;
|
||||||
|
|
||||||
|
srv.number_of_ip_address_tables)
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /CMD ServerStatusGet | grep "Number of IP Address Tables" | awk -F"|" '{print $2}'`
|
||||||
|
;;
|
||||||
|
|
||||||
|
srv.number_of_mac_address_tables)
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /CMD ServerStatusGet | grep "Number of MAC Address Tables" | awk -F"|" '{print $2}'`
|
||||||
|
;;
|
||||||
|
|
||||||
|
srv.number_of_sessions)
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /CMD ServerStatusGet | grep "Number of Sessions" | awk -F"|" '{print $2}'`
|
||||||
|
;;
|
||||||
|
|
||||||
|
srv.number_of_virtual_hubs)
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /CMD ServerStatusGet | grep "Number of Virtual Hubs" | awk -F"|" '{print $2}'`
|
||||||
|
;;
|
||||||
|
|
||||||
|
srv.number_of_active_sockets)
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /CMD ServerStatusGet | grep "Number of Active Sockets" | awk -F"|" '{print $2}'`
|
||||||
|
;;
|
||||||
|
|
||||||
|
srv.l2tp_status)
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /CMD IPsecGet | grep "L2TP over IPsec Server Function Enabled" | awk -F"|" '{print $2}'`
|
||||||
|
;;
|
||||||
|
|
||||||
|
srv.openvpn_status)
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /CMD openvpnget | grep "OpenVPN Clone Server Enabled" | awk -F"|" '{print $2}'`
|
||||||
|
;;
|
||||||
|
|
||||||
|
srv.version)
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /CMD ServerStatusGet | awk 'FNR=='"3"`
|
||||||
|
;;
|
||||||
|
|
||||||
|
hub.if.out.broad)
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${ITEM} /CMD StatusGet | grep "Outgoing Broadcast Total Size" | tr -d ',' | grep -o "[0-9]*"`
|
||||||
|
;;
|
||||||
|
|
||||||
|
hub.if.in.broad)
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${ITEM} /CMD StatusGet | grep "Incoming Broadcast Total Size" | tr -d ',' | grep -o "[0-9]*"`
|
||||||
|
;;
|
||||||
|
|
||||||
|
hub.if.in.uni)
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${ITEM} /CMD StatusGet | grep "Incoming Unicast Total Size" | tr -d ',' | grep -o "[0-9]*"`
|
||||||
|
;;
|
||||||
|
|
||||||
|
hub.if.out.uni)
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${ITEM} /CMD StatusGet | grep "Outgoing Unicast Total Size" | tr -d ',' | grep -o "[0-9]*"`
|
||||||
|
;;
|
||||||
|
|
||||||
|
hub.sessions-bridge)
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${ITEM} /CMD StatusGet | grep "Sessions (Bridge)" | awk -F"|" '{print $2}'`
|
||||||
|
;;
|
||||||
|
|
||||||
|
hub.sessions-client)
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${ITEM} /CMD StatusGet | grep "Sessions (Client)" | awk -F"|" '{print $2}'`
|
||||||
|
;;
|
||||||
|
|
||||||
|
hub.sessions-all)
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${ITEM} /CMD StatusGet | grep "Sessions " | awk -F"|" '{print $2}'`
|
||||||
|
;;
|
||||||
|
|
||||||
|
hub.securenat)
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${ITEM} /CMD StatusGet | grep "SecureNAT" | awk -F"|" '{print $2}'`
|
||||||
|
;;
|
||||||
|
|
||||||
|
hub.type)
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${ITEM} /CMD StatusGet | grep "Type" | awk -F"|" '{print $2}'`
|
||||||
|
;;
|
||||||
|
|
||||||
|
cas.status)
|
||||||
|
HUB=${ITEM%,*}
|
||||||
|
CAS=${ITEM##*,}
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${HUB} /CMD CascadeStatusGet "${CAS}" | grep "Session Status" | awk -F"|" '{print $2}'`
|
||||||
|
;;
|
||||||
|
|
||||||
|
cas.if.out.broad)
|
||||||
|
HUB=${ITEM%,*}
|
||||||
|
CAS=${ITEM##*,}
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${HUB} /CMD CascadeStatusGet "${CAS}" | grep "Outgoing Broadcast Total Size" | tr -d ',' | grep -o "[0-9]*"`
|
||||||
|
;;
|
||||||
|
cas.if.in.broad)
|
||||||
|
HUB=${ITEM%,*}
|
||||||
|
CAS=${ITEM##*,}
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${HUB} /CMD CascadeStatusGet "${CAS}" | grep "Incoming Broadcast Total Size" | tr -d ',' | grep -o "[0-9]*"`
|
||||||
|
;;
|
||||||
|
|
||||||
|
cas.if.in)
|
||||||
|
HUB=${ITEM%,*}
|
||||||
|
CAS=${ITEM##*,}
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${HUB} /CMD CascadeStatusGet "${CAS}" | grep "Incoming Data Size" | tr -d ',' | grep -o "[0-9]*"`
|
||||||
|
;;
|
||||||
|
cas.if.out)
|
||||||
|
HUB=${ITEM%,*}
|
||||||
|
CAS=${ITEM##*,}
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${HUB} /CMD CascadeStatusGet "${CAS}" | grep "Outgoing Data Size" | tr -d ',' | grep -o "[0-9]*"`
|
||||||
|
;;
|
||||||
|
|
||||||
|
cas.if.out.uni)
|
||||||
|
HUB=${ITEM%,*}
|
||||||
|
CAS=${ITEM##*,}
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${HUB} /CMD CascadeStatusGet "${CAS}" | grep "Outgoing Unicast Total Size" | tr -d ',' | grep -o "[0-9]*"`
|
||||||
|
;;
|
||||||
|
cas.if.in.uni)
|
||||||
|
HUB=${ITEM%,*}
|
||||||
|
CAS=${ITEM##*,}
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${HUB} /CMD CascadeStatusGet "${CAS}" | grep "Incoming Unicast Total Size" | tr -d ',' | grep -o "[0-9]*"`
|
||||||
|
;;
|
||||||
|
|
||||||
|
br.status)
|
||||||
|
HUB=${ITEM%,*}
|
||||||
|
BR=${ITEM##*,}
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${HUB} /CMD bridgelist | tr -d ' ' | awk '-F|' -v VH="${HUB}" -v VB="${BR}" '{if ($2==VH && $3==VB) print $4}'`
|
||||||
|
;;
|
||||||
|
usr.if.out.broad)
|
||||||
|
HUB=${ITEM%,*}
|
||||||
|
USER=${ITEM##*,}
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${HUB} /CMD UserGet ${USER} | grep "Outgoing Broadcast Total Size" | sed -e 's/[^0-9]//g'`
|
||||||
|
;;
|
||||||
|
usr.if.in.broad)
|
||||||
|
HUB=${ITEM%,*}
|
||||||
|
USER=${ITEM##*,}
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${HUB} /CMD UserGet ${USER} | grep "Incoming Broadcast Total Size" | sed -e 's/[^0-9]//g'`
|
||||||
|
;;
|
||||||
|
usr.if.in.uni)
|
||||||
|
HUB=${ITEM%,*}
|
||||||
|
USER=${ITEM##*,}
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${HUB} /CMD UserGet ${USER} | grep "Incoming Unicast Total Size" | sed -e 's/[^0-9]//g'`
|
||||||
|
;;
|
||||||
|
usr.if.out.uni)
|
||||||
|
HUB=${ITEM%,*}
|
||||||
|
USER=${ITEM##*,}
|
||||||
|
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${HUB} /CMD UserGet ${USER} | grep "Outgoing Unicast Total Size" | sed -e 's/[^0-9]//g'`
|
||||||
|
;;
|
||||||
|
|
||||||
|
usr.lastlogin)
|
||||||
|
HUB=${ITEM%,*}
|
||||||
|
USER=${ITEM##*,}
|
||||||
|
echo `$VCMD /SERVER ${URL} /adminhub:"$HUB" /PASSWORD:"${PWD}" /CMD UserGet "${USER}" | grep "Updated on" | awk -F"|" '{print $2}'`
|
||||||
|
;;
|
||||||
|
|
||||||
|
script.version)
|
||||||
|
echo ${version}
|
||||||
|
;;
|
||||||
|
|
||||||
|
|
||||||
|
help)
|
||||||
|
echo "please use these params
|
||||||
|
{
|
||||||
|
discovery
|
||||||
|
srv.uptime
|
||||||
|
srv.number_of_users
|
||||||
|
srv.number_of_ip_address_tables
|
||||||
|
srv.number_of_mac_address_tables
|
||||||
|
srv.number_of_sessions
|
||||||
|
srv.number_of_virtual_hubs
|
||||||
|
srv.number_of_active_sockets
|
||||||
|
srv.l2tp_status
|
||||||
|
srv.openvpn_status
|
||||||
|
srv.version
|
||||||
|
hub.if.out.broad
|
||||||
|
hub.if.in.broad
|
||||||
|
hub.if.out.uni
|
||||||
|
hub.if.in.uni
|
||||||
|
hub.sessions-bridge
|
||||||
|
hub.sessions-client
|
||||||
|
hub.sessions-all
|
||||||
|
hub.securenat
|
||||||
|
hub.type
|
||||||
|
cas.status
|
||||||
|
cas.if.in.broad
|
||||||
|
cas.if.out.broad
|
||||||
|
cas.if.out
|
||||||
|
cas.if.in
|
||||||
|
cas.if.in.uni
|
||||||
|
cas.if.out.uni
|
||||||
|
br.status
|
||||||
|
usr.lastlogin
|
||||||
|
usr.if.out.broad
|
||||||
|
usr.if.in.broad
|
||||||
|
usr.if.in.uni
|
||||||
|
usr.if.out.uni
|
||||||
|
script.version
|
||||||
|
}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo ""
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
1937
sevpn/zbx3_sevpn3_active.xml
Normal file
1937
sevpn/zbx3_sevpn3_active.xml
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user