# 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](https://www.zabbix.com/documentation/7.0/manual/config/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](https://docs.vmware.com/en/VMware-SD-WAN/4.0/vmware-sd-wan-operator-guide/GUID-C150D536-A75F-47C1-8AFF-17C417F40C1D.html) 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**

| |Velocloud: Orchestrator API version|

Version of VMware SD-WAN Orchestrator API.

|Dependent item|velocloud.orchestrator.api_version

**Preprocessing**

| |Velocloud: Orchestrator build|

Build of VMware SD-WAN Orchestrator API.

|Dependent item|velocloud.orchestrator.build

**Preprocessing**

| |Velocloud: Orchestrator version|

Version of VMware SD-WAN Orchestrator API.

|Dependent item|velocloud.orchestrator.version

**Preprocessing**

| |Velocloud: Get data collection errors|

Errors of aggregate script item.

|Dependent item|velocloud.get.error

**Preprocessing**

| |Velocloud: System properties|

System properties of VMware SD-WAN.

|HTTP agent|velocloud.system.properties

**Preprocessing**

| ### 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**

| ### 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**

| |Edge [{#NAME}]: Activation state|

Edge activation state.

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

**Preprocessing**

| |Edge [{#NAME}]: Description|

Edge description.

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

**Preprocessing**

| |Edge [{#NAME}]: HA state|

Edge high availability state.

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

**Preprocessing**

| |Edge [{#NAME}]: Model number|

Edge model number.

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

**Preprocessing**

| |Edge [{#NAME}]: Service uptime|

Edge service uptime.

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

**Preprocessing**

| |Edge [{#NAME}]: Software version|

Edge software version.

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

**Preprocessing**

| |Edge [{#NAME}]: State|

Edge state.

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

**Preprocessing**

| |Edge [{#NAME}]: System uptime|

Edge system uptime.

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

**Preprocessing**

| ### 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**

| ### 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**

| |Gateway [{#NAME}]: Connected edges|

Gateway connected edges.

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

**Preprocessing**

| |Gateway [{#NAME}]: Description|

Gateway description.

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

**Preprocessing**

| |Gateway [{#NAME}]: IP address|

Gateway ip address.

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

**Preprocessing**

| |Gateway [{#NAME}]: Service uptime|

Gateway service uptime.

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

**Preprocessing**

| |Gateway [{#NAME}]: State|

Gateway state.

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

**Preprocessing**

| |Gateway [{#NAME}]: System uptime|

Gateway system uptime.

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

**Preprocessing**

| |Gateway [{#NAME}]: Utilization CPU|

Gateway CPU utilization.

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

**Preprocessing**

| |Gateway [{#NAME}]: Utilization load|

Gateway load.

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

**Preprocessing**

| |Gateway [{#NAME}]: Utilization memory|

Gateway memory utilization.

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

**Preprocessing**

| |Gateway [{#NAME}]: Utilization overall|

Gateway overall utilization.

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

**Preprocessing**

| ### 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|| ### LLD rule Links metrics discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Links metrics discovery|

Metrics for links statistics.

|Dependent item|velocloud.links.discovery

**Preprocessing**

| ### Item prototypes for Links metrics discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Link [{#NAME}]:[{#IP}]: Raw data|

Raw data for velocloud link.

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

**Preprocessing**

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

Link receive best loss.

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

**Preprocessing**

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

Link transmit best loss.

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

**Preprocessing**

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

Link received bytes.

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

**Preprocessing**

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

Link transmitted bytes.

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

**Preprocessing**

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

Link last active in seconds ago.

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

**Preprocessing**

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

Link received packets.

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

**Preprocessing**

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

Link transmitted packets.

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

**Preprocessing**

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

Link state.

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

**Preprocessing**

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

Link Total bytes.

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

**Preprocessing**

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

Link total packets.

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

**Preprocessing**

| ### Trigger prototypes for Links metrics discovery |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**

| ### 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**

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

Description of SDWAN peer.

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

**Preprocessing**

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

Count of stable path of SDWAN peer.

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

**Preprocessing**

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

Count of unstable path of SDWAN peer.

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

**Preprocessing**

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

Count of standby path of SDWAN peer.

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

**Preprocessing**

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

Count of dead path of SDWAN peer.

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

**Preprocessing**

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

Count of unknown path of SDWAN peer.

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

**Preprocessing**

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

Count of total path of SDWAN peer.

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

**Preprocessing**

| ### 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**

| ### 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**

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

Bytes received of SDWAN peer path.

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

**Preprocessing**

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

Bytes transmitted of SDWAN peer path.

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

**Preprocessing**

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

Total bytes of SDWAN peer path.

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

**Preprocessing**

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

Packets received of SDWAN peer path.

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

**Preprocessing**

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

Packets transmitted of SDWAN peer path.

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

**Preprocessing**

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

Total packets of SDWAN peer path.

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

**Preprocessing**

| |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**

| |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**

| ## Feedback Please report any issues with the template at [`https://support.zabbix.com`](https://support.zabbix.com) You can also provide feedback, discuss the template, or ask for help at [`ZABBIX forums`](https://www.zabbix.com/forum/zabbix-suggestions-and-feedback)