You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

21 KiB

VMWare SD-WAN VeloCloud by HTTP

Overview

This template is designed for the effortless deployment of VMWare SD-WAN VeloCloud monitoring by Zabbix via HTTP and doesn't require any external scripts.

Requirements

Zabbix version: 7.0 and higher.

Tested versions

This template has been tested on:

  • VMware SD-WAN Orchestrator 4.0.2

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

You must set {$VELOCLOUD.TOKEN} and {$VELOCLOUD.URL} macros.

You have to create API token in Orchestrator and use it in {$VELOCLOUD.TOKEN} macros. Read detailed instructions how to create token in VMWare documentation documentation

Set Orchestrator URl for {$VELOCLOUD.URL}. e.g. example.com (where you replace example.com with the actual url VMWare SD-WAN Orchestrator is running on)

Macros used

Name Description Default
{$VELOCLOUD.TOKEN}

VMware SD-WAN Orchestrator API Token.

{$VELOCLOUD.URL}

VMware SD-WAN Orchestrator URL. e.g vco.velocloud.net.

{$VELOCLOUD.LLD.EDGES.FILTER.MATCHES}

Filter for discoverable edges.

.*
{$VELOCLOUD.LLD.EDGES.FILTER.NOT_MATCHES}

Filter to exclude discovered edges.

CHANGE_IF_NEEDED
{$VELOCLOUD.LLD.GATEWAYS.FILTER.MATCHES}

Filter for discoverable gateways.

.*
{$VELOCLOUD.LLD.GATEWAYS.FILTER.NOT_MATCHES}

Filter to exclude discovered gateways.

CHANGE_IF_NEEDED
{$VELOCLOUD.LLD.LINKS.FILTER.MATCHES}

Filter for discoverable links.

.*
{$VELOCLOUD.LLD.LINKS.FILTER.NOT_MATCHES}

Filter to exclude discovered links.

CHANGE_IF_NEEDED

Items

Name Description Type Key and additional info
Velocloud: Get data

The JSON with result of Velocloud API requests.

Script velocloud.get
Velocloud: Clear data

Clear metrics for data without errors.

Dependent item velocloud.get.clear_metrics

Preprocessing

  • Check for error in JSON: $.error

    Custom on fail: Discard value

Velocloud: Orchestrator API version

Version of VMware SD-WAN Orchestrator API.

Dependent item velocloud.orchestrator.api_version

Preprocessing

  • JSON Path: $.info.apiVersion

Velocloud: Orchestrator build

Build of VMware SD-WAN Orchestrator API.

Dependent item velocloud.orchestrator.build

Preprocessing

  • JSON Path: $.info.build

  • Discard unchanged with heartbeat: 12h

Velocloud: Orchestrator version

Version of VMware SD-WAN Orchestrator API.

Dependent item velocloud.orchestrator.version

Preprocessing

  • JSON Path: $.info.version

  • Discard unchanged with heartbeat: 12h

Velocloud: Get data collection errors

Errors of aggregate script item.

Dependent item velocloud.get.error

Preprocessing

  • JSON Path: $.error

  • Discard unchanged with heartbeat: 1h

Velocloud: System properties

System properties of VMware SD-WAN.

HTTP agent velocloud.system.properties

Preprocessing

  • Discard unchanged with heartbeat: 12h

Triggers

Name Description Expression Severity Dependencies and additional info
Velocloud: Failed to fetch aggregate data

Zabbix has not received any data for items for the last 30 minutes.

nodata(/VMWare SD-WAN VeloCloud by HTTP/velocloud.orchestrator.api_version,30m)=1 Average Manual close: Yes
Velocloud: Orchestrator build has been changed

Velocloud Orchestrator build has been changed.

last(/VMWare SD-WAN VeloCloud by HTTP/velocloud.orchestrator.build,#1)<>last(/VMWare SD-WAN VeloCloud by HTTP/velocloud.orchestrator.build,#2) and length(last(/VMWare SD-WAN VeloCloud by HTTP/velocloud.orchestrator.build))>0 Info Manual close: Yes
Velocloud: Orchestrator version has been changed

Velocloud Orchestrator version has been changed.

last(/VMWare SD-WAN VeloCloud by HTTP/velocloud.orchestrator.version,#1)<>last(/VMWare SD-WAN VeloCloud by HTTP/velocloud.orchestrator.version,#2) and length(last(/VMWare SD-WAN VeloCloud by HTTP/velocloud.orchestrator.version))>0 Info Manual close: Yes
Velocloud: There are errors in aggregate script item

There are errors in aggregate script item.

length(last(/VMWare SD-WAN VeloCloud by HTTP/velocloud.get.error))>0 Warning
Velocloud: System properties have changed

System properties have changed.

last(/VMWare SD-WAN VeloCloud by HTTP/velocloud.system.properties,#1)<>last(/VMWare SD-WAN VeloCloud by HTTP/velocloud.system.properties,#2) Info Manual close: Yes

LLD rule Edges metrics discovery

Name Description Type Key and additional info
Edges metrics discovery

Metrics for edges statistics.

Dependent item velocloud.edges.discovery

Preprocessing

  • JSON Path: $.edges

  • Discard unchanged with heartbeat: 1h

Item prototypes for Edges metrics discovery

Name Description Type Key and additional info
Edge [{#NAME}]: Raw data

Raw data for velocloud edge.

Dependent item velocloud.get.edge[{#ID}]

Preprocessing

  • JSON Path: $.edges[?(@.id=='{#ID}')].first()

Edge [{#NAME}]: Activation state

Edge activation state.

Dependent item velocloud.edge.activation[{#ID}]

Preprocessing

  • JSON Path: $.activationState

  • Discard unchanged with heartbeat: 1h

  • JavaScript: The text is too long. Please see the template.

Edge [{#NAME}]: Description

Edge description.

Dependent item velocloud.edge.description[{#ID}]

Preprocessing

  • JSON Path: $.description

  • Discard unchanged with heartbeat: 12h

Edge [{#NAME}]: HA state

Edge high availability state.

Dependent item velocloud.edge.ha_state[{#ID}]

Preprocessing

  • JSON Path: $.haState

  • Discard unchanged with heartbeat: 1h

  • JavaScript: The text is too long. Please see the template.

Edge [{#NAME}]: Model number

Edge model number.

Dependent item velocloud.edge.model[{#ID}]

Preprocessing

  • JSON Path: $.modelNumber

  • Discard unchanged with heartbeat: 12h

Edge [{#NAME}]: Service uptime

Edge service uptime.

Dependent item velocloud.edge.service_uptime[{#ID}]

Preprocessing

  • JSON Path: $.serviceUpSince

  • JavaScript: The text is too long. Please see the template.

Edge [{#NAME}]: Software version

Edge software version.

Dependent item velocloud.edge.software_version[{#ID}]

Preprocessing

  • JSON Path: $.softwareVersion

  • Discard unchanged with heartbeat: 12h

Edge [{#NAME}]: State

Edge state.

Dependent item velocloud.edge.state[{#ID}]

Preprocessing

  • JSON Path: $.edgeState

  • Discard unchanged with heartbeat: 1h

  • JavaScript: The text is too long. Please see the template.

Edge [{#NAME}]: System uptime

Edge system uptime.

Dependent item velocloud.edge.system_uptime[{#ID}]

Preprocessing

  • JSON Path: $.systemUpSince

  • JavaScript: The text is too long. Please see the template.

Trigger prototypes for Edges metrics discovery

Name Description Expression Severity Dependencies and additional info
Edge [{#NAME}]: HA state is in "FAILED" state

High availability state is "FAILED".

last(/VMWare SD-WAN VeloCloud by HTTP/velocloud.edge.ha_state[{#ID}])=3 Warning
Edge [{#NAME}]: Edge is in "OFFLINE" state

Edge state is "OFFLINE".

last(/VMWare SD-WAN VeloCloud by HTTP/velocloud.edge.state[{#ID}])=0 Warning
Edge [{#NAME}]: Edge has been restarted

Edge was restarted.

last(/VMWare SD-WAN VeloCloud by HTTP/velocloud.edge.system_uptime[{#ID}])>0 and last(/VMWare SD-WAN VeloCloud by HTTP/velocloud.edge.system_uptime[{#ID}])<600 Warning

LLD rule Gateways metrics discovery

Name Description Type Key and additional info
Gateways metrics discovery

Metrics for gateways statistics.

Dependent item velocloud.gateways.discovery

Preprocessing

  • JSON Path: $.gateways

  • Discard unchanged with heartbeat: 1h

Item prototypes for Gateways metrics discovery

Name Description Type Key and additional info
Gateway [{#NAME}]: Raw data

Raw data for velocloud gateway.

Dependent item velocloud.get.gateway[{#ID}]

Preprocessing

  • JSON Path: $.gateways[?(@.id=='{#ID}')].first()

Gateway [{#NAME}]: Connected edges

Gateway connected edges.

Dependent item velocloud.gateway.connected_edges[{#ID}]

Preprocessing

  • JSON Path: $.connectedEdges

Gateway [{#NAME}]: Description

Gateway description.

Dependent item velocloud.gateway.description[{#ID}]

Preprocessing

  • JSON Path: $.description

  • Discard unchanged with heartbeat: 12h

Gateway [{#NAME}]: IP address

Gateway ip address.

Dependent item velocloud.gateway.ip_address[{#ID}]

Preprocessing

  • JSON Path: $.ipAddress

  • Discard unchanged with heartbeat: 1h

Gateway [{#NAME}]: Service uptime

Gateway service uptime.

Dependent item velocloud.gateway.service_uptime[{#ID}]

Preprocessing

  • JSON Path: $.serviceUpSince

  • JavaScript: The text is too long. Please see the template.

Gateway [{#NAME}]: State

Gateway state.

Dependent item velocloud.gateway.state[{#ID}]

Preprocessing

  • JSON Path: $.gatewayState

  • Discard unchanged with heartbeat: 1h

Gateway [{#NAME}]: System uptime

Gateway system uptime.

Dependent item velocloud.gateway.system_uptime[{#ID}]

Preprocessing

  • JSON Path: $.systemUpSince

  • JavaScript: The text is too long. Please see the template.

Gateway [{#NAME}]: Utilization CPU

Gateway CPU utilization.

Dependent item velocloud.gateway.utilization.cpu[{#ID}]

Preprocessing

  • JSON Path: $.utilizationDetail.cpu

Gateway [{#NAME}]: Utilization load

Gateway load.

Dependent item velocloud.gateway.utilization.load[{#ID}]

Preprocessing

  • JSON Path: $.utilizationDetail.load

Gateway [{#NAME}]: Utilization memory

Gateway memory utilization.

Dependent item velocloud.gateway.utilization.memory[{#ID}]

Preprocessing

  • JSON Path: $.utilizationDetail.memory

Gateway [{#NAME}]: Utilization overall

Gateway overall utilization.

Dependent item velocloud.gateway.utilization.overall[{#ID}]

Preprocessing

  • JSON Path: $.utilizationDetail.overall

Trigger prototypes for Gateways metrics discovery

Name Description Expression Severity Dependencies and additional info
Gateway [{#NAME}]: The number of connected edges is changed

The number of connected edges is changed.

last(/VMWare SD-WAN VeloCloud by HTTP/velocloud.gateway.connected_edges[{#ID}],#1)<>last(/VMWare SD-WAN VeloCloud by HTTP/velocloud.gateway.connected_edges[{#ID}],#2) Warning Manual close: Yes
Gateway [{#NAME}]: Gateway has been restarted

Gateway was restarted.

last(/VMWare SD-WAN VeloCloud by HTTP/velocloud.gateway.system_uptime[{#ID}])>0 and last(/VMWare SD-WAN VeloCloud by HTTP/velocloud.gateway.system_uptime[{#ID}])<600 Warning
Name Description Type Key and additional info
Links metrics discovery

Metrics for links statistics.

Dependent item velocloud.links.discovery

Preprocessing

  • JSON Path: $.links

  • Discard unchanged with heartbeat: 1h

Name Description Type Key and additional info
Link [{#NAME}]:[{#IP}]: Raw data

Raw data for velocloud link.

Dependent item velocloud.get.link[{#ID}]

Preprocessing

  • JSON Path: $.links[?(@.linkId=='{#ID}')].first()

Link [{#NAME}]:[{#IP}]: Best loss rx, %

Link receive best loss.

Dependent item velocloud.link.best_loss_rx.pct[{#ID}]

Preprocessing

  • JSON Path: $.bestLossPctRx

Link [{#NAME}]:[{#IP}]: Best loss tx, %

Link transmit best loss.

Dependent item velocloud.link.best_loss_tx.pct[{#ID}]

Preprocessing

  • JSON Path: $.bestLossPctTx

Link [{#NAME}]:[{#IP}]: Bytes in

Link received bytes.

Dependent item velocloud.link.bytes_rx[{#ID}]

Preprocessing

  • JSON Path: $.bytesRx

Link [{#NAME}]:[{#IP}]: Bytes out

Link transmitted bytes.

Dependent item velocloud.link.bytes_tx[{#ID}]

Preprocessing

  • JSON Path: $.bytesTx

Link [{#NAME}]:[{#IP}]: Last active

Link last active in seconds ago.

Dependent item velocloud.link.last_active[{#ID}]

Preprocessing

  • JSON Path: $.link.linkLastActive

  • JavaScript: The text is too long. Please see the template.

Link [{#NAME}]:[{#IP}]: Packets in

Link received packets.

Dependent item velocloud.link.packets_rx[{#ID}]

Preprocessing

  • JSON Path: $.packetsRx

Link [{#NAME}]:[{#IP}]: Packets out

Link transmitted packets.

Dependent item velocloud.link.packets_tx[{#ID}]

Preprocessing

  • JSON Path: $.packetsTx

Link [{#NAME}]:[{#IP}]: State

Link state.

Dependent item velocloud.link.state[{#ID}]

Preprocessing

  • JSON Path: $.link.linkState

  • Discard unchanged with heartbeat: 1h

  • JavaScript: The text is too long. Please see the template.

Link [{#NAME}]:[{#IP}]: Total bytes

Link Total bytes.

Dependent item velocloud.link.total_bytes[{#ID}]

Preprocessing

  • JSON Path: $.totalBytes

Link [{#NAME}]:[{#IP}]: Total packets

Link total packets.

Dependent item velocloud.link.total_packets[{#ID}]

Preprocessing

  • JSON Path: $.totalPackets

Name Description Expression Severity Dependencies and additional info
Link [{#NAME}]:[{#IP}]: Link state is not "STABLE"

Link state is not "STABLE".

last(/VMWare SD-WAN VeloCloud by HTTP/velocloud.link.state[{#ID}])<>1 Warning

LLD rule SDWAN peers metrics discovery

Name Description Type Key and additional info
SDWAN peers metrics discovery

Metrics for SDWAN peers.

Dependent item velocloud.sdwanpeers.discovery

Preprocessing

  • JSON Path: $.edgeSDWan

  • Discard unchanged with heartbeat: 1h

Item prototypes for SDWAN peers metrics discovery

Name Description Type Key and additional info
SDWAN Peer [{#NAME}]:[{#TYPE}]: Raw data

Raw data for velocloud sdwan peer.

Dependent item velocloud.get.sdwan_peer[{#EDGE.ID}/{#ID}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

SDWAN Peer [{#NAME}]:[{#TYPE}]: Description

Description of SDWAN peer.

Dependent item velocloud.sdwanpeer.description[{#EDGE.ID}/{#ID}]

Preprocessing

  • JSON Path: $.description

  • Discard unchanged with heartbeat: 12h

SDWAN Peer [{#NAME}]:[{#TYPE}]: Stable path

Count of stable path of SDWAN peer.

Dependent item velocloud.sdwanpeer.stable_path[{#EDGE.ID}/{#ID}]

Preprocessing

  • JSON Path: $.pathStatusCount.stable

SDWAN Peer [{#NAME}]:[{#TYPE}]: Unstable path

Count of unstable path of SDWAN peer.

Dependent item velocloud.sdwanpeer.unstable_path[{#EDGE.ID}/{#ID}]

Preprocessing

  • JSON Path: $.pathStatusCount.unstable

SDWAN Peer [{#NAME}]:[{#TYPE}]: Standby path

Count of standby path of SDWAN peer.

Dependent item velocloud.sdwanpeer.standby_path[{#EDGE.ID}/{#ID}]

Preprocessing

  • JSON Path: $.pathStatusCount.standby

SDWAN Peer [{#NAME}]:[{#TYPE}]: Dead path

Count of dead path of SDWAN peer.

Dependent item velocloud.sdwanpeer.dead_path[{#EDGE.ID}/{#ID}]

Preprocessing

  • JSON Path: $.pathStatusCount.dead

SDWAN Peer [{#NAME}]:[{#TYPE}]: Unknown path

Count of unknown path of SDWAN peer.

Dependent item velocloud.sdwanpeer.unknown_path[{#EDGE.ID}/{#ID}]

Preprocessing

  • JSON Path: $.pathStatusCount.unknown

SDWAN Peer [{#NAME}]:[{#TYPE}]: Total path

Count of total path of SDWAN peer.

Dependent item velocloud.sdwanpeer.total_path[{#EDGE.ID}/{#ID}]

Preprocessing

  • JSON Path: $.pathStatusCount.total

LLD rule SDWAN peers path metrics discovery

Name Description Type Key and additional info
SDWAN peers path metrics discovery

Metrics for SDWAN peers path.

Dependent item velocloud.sdwanpath.discovery

Preprocessing

  • JSON Path: $.edgeSDWanPath

  • Discard unchanged with heartbeat: 1h

Item prototypes for SDWAN peers path metrics discovery

Name Description Type Key and additional info
Path [{#NAME}]:[{#SOURCE} => {#DESTINATION}]: Raw data

Raw data for velocloud sdwan peer path.

Dependent item velocloud.get.sdwan_path[{{#NAME}/{#SOURCE}/{#DESTINATION}]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

Path [{#NAME}]:[{#SOURCE} => {#DESTINATION}]: Bytes in

Bytes received of SDWAN peer path.

Dependent item velocloud.sdwanpath.bytes_rx[{#NAME}/{#SOURCE}/{#DESTINATION}]

Preprocessing

  • JSON Path: $.metrics.bytesRx

Path [{#NAME}]:[{#SOURCE} => {#DESTINATION}]: Bytes out

Bytes transmitted of SDWAN peer path.

Dependent item velocloud.sdwanpath.bytes_tx[{#NAME}/{#SOURCE}/{#DESTINATION}]

Preprocessing

  • JSON Path: $.metrics.bytesTx

Path [{#NAME}]:[{#SOURCE} => {#DESTINATION}]: Bytes total

Total bytes of SDWAN peer path.

Dependent item velocloud.sdwanpath.total_bytes[{#NAME}/{#SOURCE}/{#DESTINATION}]

Preprocessing

  • JSON Path: $.metrics.totalBytes

Path [{#NAME}]:[{#SOURCE} => {#DESTINATION}]: Packets in

Packets received of SDWAN peer path.

Dependent item velocloud.sdwanpath.packets_rx[{#NAME}/{#SOURCE}/{#DESTINATION}]

Preprocessing

  • JSON Path: $.metrics.packetsRx

Path [{#NAME}]:[{#SOURCE} => {#DESTINATION}]: Packets out

Packets transmitted of SDWAN peer path.

Dependent item velocloud.sdwanpath.packets_tx[{#NAME}/{#SOURCE}/{#DESTINATION}]

Preprocessing

  • JSON Path: $.metrics.packetsTx

Path [{#NAME}]:[{#SOURCE} => {#DESTINATION}]: Total packets

Total packets of SDWAN peer path.

Dependent item velocloud.sdwanpath.total_packets[{#NAME}/{#SOURCE}/{#DESTINATION}]

Preprocessing

  • JSON Path: $.metrics.totalPackets

Path [{#NAME}]:[{#SOURCE} => {#DESTINATION}]: Packet Loss in

Received packet loss of SDWAN peer path.

Dependent item velocloud.sdwanpath.packet_loss_rx[{#NAME}/{#SOURCE}/{#DESTINATION}]

Preprocessing

  • JSON Path: $.metrics.packetLossRx

Path [{#NAME}]:[{#SOURCE} => {#DESTINATION}]: Packet Loss out

Transmitted packet loss of SDWAN peer path.

Dependent item velocloud.sdwanpath.packet_loss_tx[{#NAME}/{#SOURCE}/{#DESTINATION}]

Preprocessing

  • JSON Path: $.metrics.packetLossTx

Feedback

Please report any issues with the template at https://support.zabbix.com

You can also provide feedback, discuss the template, or ask for help at ZABBIX forums