# Cisco SD-WAN by HTTP ## Overview This template is designed for the effortless deployment of Cisco SD-WAN 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: - Cisco SD-WAN 20.6.0 ## 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 1. Put your username and password from Cisco SD-WAN vManage into {$SDWAN.API.USERNAME} and {$SDWAN.API.PASSWORD} macros. 2. Set your Cisco SD-WAN vManage URL as {$SDWAN.API.URL} macro value. **NOTES** The Cisco SD-WAN API token will be generated automatically by the Authentication item every {$SDWAN.AUTH.FREQUENCY}. Don't change the {$SDWAN.AUTH.FREQUENCY} macro value if it's not required. The generated Cisco SD-WAN API token and the session ID will be used in all Cisco SD-WAN templates and items. These values will be kept in {$SDWAN.AUTH.TOKEN} and {$SDWAN.AUTH.SESSION} macros of each discovered host. **IMPORTANT** Values of {$SDWAN.AUTH.TOKEN} and {$SDWAN.AUTH.SESSION} macros are stored as plain (not secret) text by default. >Please, refer to the [vendor documentation](https://www.cisco.com/c/en/us/td/docs/routers/sdwan/configuration/sdwan-xe-gs-book/cisco-sd-wan-API-cross-site-request-forgery-prevention.html) about the Cisco SD-WAN REST API Token-Based Authentication. ### Macros used |Name|Description|Default| |----|-----------|-------| |{$SDWAN.API.URL}|

Cisco SD-WAN Monitor API URL.

|| |{$SDWAN.API.USERNAME}|

Cisco SD-WAN Monitor API username.

|| |{$SDWAN.API.PASSWORD}|

Cisco SD-WAN Monitor API password.

|| |{$SDWAN.AUTH.FREQUENCY}|

The update interval for the Cisco SD-WAN Authentication item, which also equals the access token regeneration request frequency. Check the template documentation notes carefully for more details.

|`1h`| |{$SDWAN.DATA.TIMEOUT}|

A response timeout for an API.

|`15s`| |{$SDWAN.DEVICE.NAME.MATCHES}|

This macro is used in device discovery. Can be overridden on the host or linked template level.

|`.*`| |{$SDWAN.DEVICE.NAME.NOT_MATCHES}|

This macro is used in device discovery. Can be overridden on the host or linked template level.

|`CHANGE_IF_NEEDED`| |{$SDWAN.HTTP_PROXY}|

HTTP proxy for API requests. You can specify it using the format [protocol://][username[:password]@]proxy.example.com[:port]. See the documentation at https://www.zabbix.com/documentation/7.0/manual/config/items/itemtypes/http

|| ### Items |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |SD-WAN: Authentication|

Cisco SD-WAN authentication with service account parameters and temporary-generated token usage.

Returns an authentication token and session id; it is required only once and is used for all dependent script items.

A session will expire after 30 minutes of inactivity or after 24 hours, which is the total lifespan of a session.

Check the template documentation for the details.

|Script|sd_wan.authentication| |SD-WAN: Authentication item errors|

Item for gathering all the data item errors.

|Dependent item|sd_wan.auth.errors

**Preprocessing**

| |SD-WAN: Get devices|

Item for gathering all devices from Cisco SD-WAN API.

|Dependent item|sd_wan.get.devices

**Preprocessing**

| |SD-WAN: Get devices item errors|

Item for gathering all the data item errors.

|Dependent item|sd_wan.get.devices.errors

**Preprocessing**

| |SD-WAN: Invalid certificates|

Number of invalid certificates.

|Dependent item|sd_wan.invalid_certificates

**Preprocessing**

| |SD-WAN: Total devices|

The total number of all devices.

|Dependent item|sd_wan.total.devices

**Preprocessing**

| |SD-WAN: Number of vEdge devices|

The total number of vEdge devices.

|Dependent item|sd_wan.vedge.devices

**Preprocessing**

| |SD-WAN: Number of vBond devices|

The total number of vBond devices.

|Dependent item|sd_wan.vbond.devices

**Preprocessing**

| |SD-WAN: Number of vSmart devices|

The total number of vSmart devices.

|Dependent item|sd_wan.vsmart.devices

**Preprocessing**

| |SD-WAN: Number of vManage devices|

The total number of vManage devices.

|Dependent item|sd_wan.vmanage.devices

**Preprocessing**

| ### Triggers |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |SD-WAN: Authentication has failed||`length(last(/Cisco SD-WAN by HTTP/sd_wan.auth.errors))>0`|Average|| |SD-WAN: There are errors in the 'Get devices' metric||`length(last(/Cisco SD-WAN by HTTP/sd_wan.get.devices.errors))>0`|Warning|| ### LLD rule Devices discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Devices discovery|

Discovering devices from Cisco SD-WAN API.

|Dependent item|sd_wan.devices.discovery

**Preprocessing**

| # Cisco SD-WAN device by HTTP ### Macros used |Name|Description|Default| |----|-----------|-------| |{$SDWAN.API.URL}|

Cisco SD-WAN Monitor API URL.

|| |{$SDWAN.TOKEN}|

Cisco SD-WAN Monitor API token.

|| |{$SDWAN.DATA.TIMEOUT}|

Response timeout for an API.

|`15s`| |{$SDWAN.CPU.UTIL.CRIT}|

Critical threshold of the CPU utilization, expressed in %.

|`90`| |{$SDWAN.MEMORY.UTIL.MAX}|

Critical threshold of the memory utilization, expressed in %.

|`90`| |{$SDWAN.MEMORY.AVAILABLE.MIN}|

This macro is used as a threshold in the memory available trigger.

|`100K`| |{$SDWAN.IF.UTIL.MAX}|

This macro is used as a threshold in the interface utilization trigger. Can be used with the interface name as context.

|`90`| |{$SDWAN.IF.ERRORS.WARN}|

Threshold of the error packets rate for the warning trigger. Can be used with the interface name as context.

|`2`| |{$SDWAN.FS.PUSED.MAX.CRIT}|

Critical threshold of the filesystem utilization. Can be used with the filesystem name as context.

|`90`| |{$SDWAN.FS.PUSED.MAX.WARN}|

Warning threshold of the filesystem utilization. Can be used with the filesystem name as context.

|`80`| |{$SDWAN.LA.PER.CPU.MAX.WARN}|

Load per CPU considered sustainable. Tune if needed.

|`1.5`| |{$SDWAN.LLD.FILTER.FSNAME.MATCHES}|

Filter of discoverable filesystems by name.

|`.*`| |{$SDWAN.LLD.FILTER.FSNAME.NOT_MATCHES}|

Filter to exclude discoverable filesystems by name.

|`CHANGE_IF_NEEDED`| |{$SDWAN.LLD.FILTER.IFNAME.MATCHES}|

Filter of discoverable interfaces by name.

|`.*`| |{$SDWAN.LLD.FILTER.IFNAME.NOT_MATCHES}|

Filter to exclude discoverable interfaces by name.

|`CHANGE_IF_NEEDED`| |{$SDWAN.HTTP_PROXY}|

HTTP proxy for API requests. You can specify it using the format [protocol://][username[:password]@]proxy.example.com[:port]. See the documentation at https://www.zabbix.com/documentation/7.0/manual/config/items/itemtypes/http

|| |{$IFCONTROL}|

Macro for operational state of the interface for the link down trigger. Can be used with the interface name as context.

|`1`| |{$SDWAN.ROUTES.FREQUENCY}|

Update interval for the Routes item, expressed in hours.

|`1h`| ### Items |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |SD-WAN: Get interfaces data|

Item for gathering device interfaces from Cisco SD-WAN API.

|Script|sd_wan.get.interfaces| |SD-WAN: Device interfaces item errors|

Item for gathering errors of the device interfaces.

|Dependent item|sd_wan.get.interfaces.errors

**Preprocessing**

| |SD-WAN: Get routes data|

Item for gathering device routes from Cisco SD-WAN API.

|Script|sd_wan.get.routes| |SD-WAN: Device routes item errors|

Item for gathering errors of the device routes.

|Dependent item|sd_wan.get.routes.errors

**Preprocessing**

| |SD-WAN: Get device data|

Item for gathering device data from Cisco SD-WAN API.

|Script|sd_wan.get.device| |SD-WAN: Device data item errors|

Item for gathering errors of the device item.

|Dependent item|sd_wan.get.device.errors

**Preprocessing**

| |SD-WAN: Control connections|

The number of control connections.

|Dependent item|sd_wan.device.control_conn

**Preprocessing**

| |SD-WAN: Certificate validity|

Validity status of the device certificate.

|Dependent item|sd_wan.device.certificate_validity

**Preprocessing**

| |SD-WAN: Total memory|

Total memory, expressed in bytes.

|Dependent item|sd_wan.device.memory.total

**Preprocessing**

| |SD-WAN: Available memory|

The amount of physical memory (in bytes) immediately available for the allocation to a process or for a system use in the device.

|Dependent item|sd_wan.device.memory.avail

**Preprocessing**

| |SD-WAN: Memory (buffers)|

The amount of physical memory (in bytes) used by the kernel buffers.

|Dependent item|sd_wan.device.memory.buffers

**Preprocessing**

| |SD-WAN: Memory (cached)|

The amount of physical memory (in bytes) used by the page cache and slabs.

|Dependent item|sd_wan.device.memory.cached

**Preprocessing**

| |SD-WAN: Used memory|

The amount of physical memory (in bytes) used by applications on the device.

|Dependent item|sd_wan.device.memory.used

**Preprocessing**

| |SD-WAN: Memory utilization|

Calculated percentage of the memory used, in %.

|Calculated|sd_wan.device.memory.util| |SD-WAN: Number of CPUs|

The total number of CPU.

|Dependent item|sd_wan.device.cpu.num

**Preprocessing**

| |SD-WAN: Load average (1m avg)|

The average number of processes being or waiting executed over past 1 minute.

|Dependent item|sd_wan.device.cpu.load[avg1]

**Preprocessing**

| |SD-WAN: Load average (5m avg)|

The average number of processes being or waiting executed over past 5 minutes.

|Dependent item|sd_wan.device.cpu.load[avg5]

**Preprocessing**

| |SD-WAN: Load average (15m avg)|

The average number of processes being or waiting executed over past 15 minutes.

|Dependent item|sd_wan.device.cpu.load[avg15]

**Preprocessing**

| |SD-WAN: CPU idle time|

The time the CPU has spent doing nothing.

|Dependent item|sd_wan.device.cpu.util[idle]

**Preprocessing**

| |SD-WAN: CPU system time|

The time the CPU has spent running the kernel and its processes.

|Dependent item|sd_wan.device.cpu.util[system]

**Preprocessing**

| |SD-WAN: CPU user time|

The time the CPU has spent running users' processes that are not niced.

|Dependent item|sd_wan.device.cpu.util[user]

**Preprocessing**

| |SD-WAN: CPU utilization|

CPU utilization, expressed in %.

|Dependent item|sd_wan.device.cpu.util

**Preprocessing**

| |SD-WAN: Device reachability|

Reachability to the vManager and/or the entire network.

|Dependent item|sd_wan.device.reachability

**Preprocessing**

| |SD-WAN: Device state|

The device current state.

|Dependent item|sd_wan.device.state

**Preprocessing**

| |SD-WAN: Device state description|

The description of the device current state.

|Dependent item|sd_wan.device.state_descr

**Preprocessing**

| |SD-WAN: Operating system|

The device operating system.

|Dependent item|sd_wan.device.os

**Preprocessing**

| |SD-WAN: Operating system architecture|

The architecture of the operating system.

|Dependent item|sd_wan.device.arch

**Preprocessing**

| |SD-WAN: Device role|

The device role in the network.

|Dependent item|sd_wan.device.role

**Preprocessing**

| |SD-WAN: Model name|

The model name of the device.

|Dependent item|sd_wan.device.model

**Preprocessing**

| |SD-WAN: Number of processes|

The total number of processes in any state.

|Dependent item|sd_wan.device.proc.num

**Preprocessing**

| |SD-WAN: Serial Number|

The device serial number.

|Dependent item|sd_wan.device.serialnumber

**Preprocessing**

| |SD-WAN: System name|

The system host name.

|Dependent item|sd_wan.device.hostname

**Preprocessing**

| |SD-WAN: System uptime|

The system uptime is calculated on the basis of boot time.

|Dependent item|sd_wan.device.uptime

**Preprocessing**

| |SD-WAN: Version|

The version of the device software.

|Dependent item|sd_wan.device.version

**Preprocessing**

| ### Triggers |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |SD-WAN: There are errors in the 'Get interfaces data' metric||`length(last(/Cisco SD-WAN device by HTTP/sd_wan.get.interfaces.errors))>0`|Warning|| |SD-WAN: There are errors in the 'Get routes data' metric||`length(last(/Cisco SD-WAN device by HTTP/sd_wan.get.routes.errors))>0`|Warning|| |SD-WAN: There are errors in the 'Get device data' metric||`length(last(/Cisco SD-WAN device by HTTP/sd_wan.get.device.errors))>0`|Warning|| |SD-WAN: Device certificate is invalid||`last(/Cisco SD-WAN device by HTTP/sd_wan.device.certificate_validity)=1`|Warning|| |SD-WAN: Lack of available memory||`max(/Cisco SD-WAN device by HTTP/sd_wan.device.memory.avail,5m)<{$SDWAN.MEMORY.AVAILABLE.MIN} and last(/Cisco SD-WAN device by HTTP/sd_wan.device.memory.total)>0`|Average|| |SD-WAN: High memory utilization|

The system is running out of free memory.

|`min(/Cisco SD-WAN device by HTTP/sd_wan.device.memory.util,5m)>{$SDWAN.MEMORY.UTIL.MAX}`|Average|**Depends on**:
| |SD-WAN: Load average is too high|

The load average per CPU is too high. The system might be slow to respond.

|`min(/Cisco SD-WAN device by HTTP/sd_wan.device.cpu.load[avg1],5m)/last(/Cisco SD-WAN device by HTTP/sd_wan.device.cpu.num)>{$SDWAN.LA.PER.CPU.MAX.WARN} and last(/Cisco SD-WAN device by HTTP/sd_wan.device.cpu.load[avg5])>0 and last(/Cisco SD-WAN device by HTTP/sd_wan.device.cpu.load[avg15])>0`|Average|| |SD-WAN: High CPU utilization|

CPU utilization is too high. The system might be slow to respond.

|`min(/Cisco SD-WAN device by HTTP/sd_wan.device.cpu.util,5m)>{$SDWAN.CPU.UTIL.CRIT}`|Warning|**Depends on**:
| |SD-WAN: Device is not reachable|

Device is not reachable to the vManager and/or the entire network.

|`last(/Cisco SD-WAN device by HTTP/sd_wan.device.reachability)<>0`|Warning|| |SD-WAN: Device state is not green|

The device current state is not green.

|`last(/Cisco SD-WAN device by HTTP/sd_wan.device.state)<>0 and length(last(/Cisco SD-WAN device by HTTP/sd_wan.device.state_descr))>0`|Average|| |SD-WAN: Operating system description has changed|

Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.

|`last(/Cisco SD-WAN device by HTTP/sd_wan.device.os,#1)<>last(/Cisco SD-WAN device by HTTP/sd_wan.device.os,#2) and length(last(/Cisco SD-WAN device by HTTP/sd_wan.device.os))>0`|Info|**Manual close**: Yes
**Depends on**:
| |SD-WAN: Device has been replaced|

Device serial number has changed. Acknowledge to close the problem manually.

|`last(/Cisco SD-WAN device by HTTP/sd_wan.device.serialnumber,#1)<>last(/Cisco SD-WAN device by HTTP/sd_wan.device.serialnumber,#2) and length(last(/Cisco SD-WAN device by HTTP/sd_wan.device.serialnumber))>0`|Info|**Manual close**: Yes| |SD-WAN: System name has changed|

System name has changed. Ack to close.

|`last(/Cisco SD-WAN device by HTTP/sd_wan.device.hostname,#1)<>last(/Cisco SD-WAN device by HTTP/sd_wan.device.hostname,#2) and length(last(/Cisco SD-WAN device by HTTP/sd_wan.device.hostname))>0`|Info|**Manual close**: Yes| |SD-WAN: Device has been restarted|

The host uptime is less than 10 minutes

|`last(/Cisco SD-WAN device by HTTP/sd_wan.device.uptime)<10m`|Info|**Manual close**: Yes| ### LLD rule Network interfaces discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Network interfaces discovery|

Discovering device interfaces from Cisco SD-WAN API.

|Dependent item|sd_wan.interfaces.discovery

**Preprocessing**

| ### Item prototypes for Network interfaces discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Interface ["{#IFNAME}"]: Get data|

Item for gathering data for the {#IFNAME} interface.

|Dependent item|sd_wan.device.if.get_data["{#IFKEY}"]

**Preprocessing**

| |Interface ["{#IFNAME}"]: Admin status|

Current admin status of the interface.

|Dependent item|sd_wan.device.if.adm.status["{#IFKEY}"]

**Preprocessing**

| |Interface ["{#IFNAME}"]: Operational status|

Current operational status of the interface.

|Dependent item|sd_wan.device.if.status["{#IFKEY}"]

**Preprocessing**

| |Interface ["{#IFNAME}"]: Speed|

Current bandwidth of the interface.

|Dependent item|sd_wan.device.if.speed["{#IFKEY}"]

**Preprocessing**

| |Interface ["{#IFNAME}"]: Bits received|

The total number of octets received on the interface.

|Dependent item|sd_wan.device.if.in["{#IFKEY}"]

**Preprocessing**

| |Interface ["{#IFNAME}"]: Bits sent|

The total number of octets transmitted out of the interface.

|Dependent item|sd_wan.device.if.out["{#IFKEY}"]

**Preprocessing**

| |Interface ["{#IFNAME}"]: Inbound packets discarded|

The number of inbound packets that were chosen to be discarded.

|Dependent item|sd_wan.device.if.in.discards["{#IFKEY}"]

**Preprocessing**

| |Interface ["{#IFNAME}"]: Inbound IPv6 packets discarded|

The number of inbound IPv6 packets that were chosen to be discarded.

|Dependent item|sd_wan.device.if.in.v6.discards["{#IFKEY}"]

**Preprocessing**

| |Interface ["{#IFNAME}"]: Inbound packets with errors|

The number of inbound packets that were contain errors.

|Dependent item|sd_wan.device.if.in.errors["{#IFKEY}"]

**Preprocessing**

| |Interface ["{#IFNAME}"]: Inbound IPv6 packets with errors|

The number of inbound IPv4 packets that were contain errors.

|Dependent item|sd_wan.device.if.in.v6.errors["{#IFKEY}"]

**Preprocessing**

| |Interface ["{#IFNAME}"]: Outbound packets discarded|

The number of outbound packets that were chosen to be discarded.

|Dependent item|sd_wan.device.if.out.discards["{#IFKEY}"]

**Preprocessing**

| |Interface ["{#IFNAME}"]: Outbound IPv6 packets discarded|

The number of outbound IPv6 packets that were chosen to be discarded.

|Dependent item|sd_wan.device.if.out.v6.discards["{#IFKEY}"]

**Preprocessing**

| |Interface ["{#IFNAME}"]: Outbound packets with errors|

The number of outbound packets that were contain errors.

|Dependent item|sd_wan.device.if.out.errors["{#IFKEY}"]

**Preprocessing**

| |Interface ["{#IFNAME}"]: Outbound IPv6 packets with errors|

The number of outbound IPv6 packets that were contain errors.

|Dependent item|sd_wan.device.if.out.v6.errors["{#IFKEY}"]

**Preprocessing**

| ### Trigger prototypes for Network interfaces discovery |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |Interface ["{#IFNAME}"]: Link down|

This trigger expression works as follows:
1. It can be triggered if the operational status is down.
2. `{$IFCONTROL:"{#IFNAME}"}=1` - a user can redefine context macro to value - 0. That marks this interface as not important. No new trigger will be fired if this interface is down.
3. `{TEMPLATE_NAME:METRIC.diff()}=1` - the trigger fires only if the operational status was up to (1) sometime before (so, it does not fire for the 'eternal off' interfaces).

WARNING: If closed manually, it will not fire again on the next poll because of .diff.

|`{$IFCONTROL:"{#IFNAME}"}=1 and last(/Cisco SD-WAN device by HTTP/sd_wan.device.if.status["{#IFKEY}"])=1 and (last(/Cisco SD-WAN device by HTTP/sd_wan.device.if.status["{#IFKEY}"],#1)<>last(/Cisco SD-WAN device by HTTP/sd_wan.device.if.status["{#IFKEY}"],#2))`|Average|**Manual close**: Yes| |Interface ["{#IFNAME}"]: Ethernet has changed to lower speed than it was before|

This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually.

|`change(/Cisco SD-WAN device by HTTP/sd_wan.device.if.speed["{#IFKEY}"])<0 and last(/Cisco SD-WAN device by HTTP/sd_wan.device.if.speed["{#IFKEY}"])>0 and last(/Cisco SD-WAN device by HTTP/sd_wan.device.if.status["{#IFKEY}"])<>0`|Info|**Manual close**: Yes
**Depends on**:
| |Interface ["{#IFNAME}"]: High bandwidth usage|

The network interface utilization is close to its estimated maximum bandwidth.

|`(avg(/Cisco SD-WAN device by HTTP/sd_wan.device.if.in["{#IFKEY}"],15m)>({$SDWAN.IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Cisco SD-WAN device by HTTP/sd_wan.device.if.speed["{#IFKEY}"]) or avg(/Cisco SD-WAN device by HTTP/sd_wan.device.if.out["{#IFKEY}"],15m)>({$SDWAN.IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Cisco SD-WAN device by HTTP/sd_wan.device.if.speed["{#IFKEY}"])) and last(/Cisco SD-WAN device by HTTP/sd_wan.device.if.speed["{#IFKEY}"])>0`|Warning|**Manual close**: Yes
**Depends on**:
| |Interface ["{#IFNAME}"]: High error rate|

It recovers when it is below 80% of the `{$SDWAN.IF.ERRORS.WARN:"{#IFNAME}"}` threshold.

|`min(/Cisco SD-WAN device by HTTP/sd_wan.device.if.in.errors["{#IFKEY}"],5m)>{$SDWAN.IF.ERRORS.WARN:"{#IFNAME}"} or min(/Cisco SD-WAN device by HTTP/sd_wan.device.if.out.errors["{#IFKEY}"],5m)>{$SDWAN.IF.ERRORS.WARN:"{#IFNAME}"} or min(/Cisco SD-WAN device by HTTP/sd_wan.device.if.in.v6.errors["{#IFKEY}"],5m)>{$SDWAN.IF.ERRORS.WARN:"{#IFNAME}"} or min(/Cisco SD-WAN device by HTTP/sd_wan.device.if.out.v6.errors["{#IFKEY}"],5m)>{$SDWAN.IF.ERRORS.WARN:"{#IFNAME}"}`|Warning|**Manual close**: Yes
**Depends on**:
| ### LLD rule Mounted filesystem discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Mounted filesystem discovery|

Discovering device filesystems from Cisco SD-WAN API.

|Dependent item|sd_wan.fs.discovery

**Preprocessing**

| ### Item prototypes for Mounted filesystem discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |["{#FSNAME}"]: Get data|

Item for gathering data for the {#FSNAME} filesystem.

|Dependent item|sd_wan.device.fs.get_data["{#FSNAME}"]

**Preprocessing**

| |["{#FSNAME}"]: Total space|

The size of the storage pool, in bytes.

|Dependent item|sd_wan.device.fs.total["{#FSNAME}"]

**Preprocessing**

| |["{#FSNAME}"]: Available space|

The available size of the storage pool, in bytes.

|Dependent item|sd_wan.device.fs.avail["{#FSNAME}"]

**Preprocessing**

| |["{#FSNAME}"]: Used space|

The used size of the dataset, in bytes.

|Dependent item|sd_wan.device.fs.used["{#FSNAME}"]

**Preprocessing**

| |["{#FSNAME}"]: Space utilization|

Space utilization, expressed in %.

|Dependent item|sd_wan.device.fs.pused["{#FSNAME}"]

**Preprocessing**

| ### Trigger prototypes for Mounted filesystem discovery |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |["{#FSNAME}"]: Disk space is critically low|

Utilization of the space is above {$VFS.FS.PUSED.MAX.CRIT:"{{FSNAME}}"}

|`last(/Cisco SD-WAN device by HTTP/sd_wan.device.fs.pused["{#FSNAME}"])>{$SDWAN.FS.PUSED.MAX.CRIT:"{#FSNAME}"}`|Average|**Manual close**: Yes| |["{#FSNAME}"]: Disk space is low|

Utilization of the space is above {$VFS.FS.PUSED.MAX.CRIT:"{{FSNAME}}"}

|`last(/Cisco SD-WAN device by HTTP/sd_wan.device.fs.pused["{#FSNAME}"])>{$SDWAN.FS.PUSED.MAX.WARN:"{#FSNAME}"}`|Warning|**Manual close**: Yes
**Depends on**:
| ### LLD rule Route discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Route discovery|

Discovering Application-Aware routes from Cisco SD-WAN API.

|Dependent item|sd_wan.routes.discovery

**Preprocessing**

| ### Item prototypes for Route discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Route [{#LOCAL} => {#REMOTE}]: Get data|

Item for gathering data for the route {#LOCAL} => {#REMOTE}.

|Dependent item|sd_wan.routes.get_data[{#LOCAL},{#REMOTE}]

**Preprocessing**

| |Route [{#LOCAL} => {#REMOTE}]: Latency|

The amount of time it takes for a data packet to travel through the route.

|Dependent item|sd_wan.routes.latency[{#LOCAL},{#REMOTE}]

**Preprocessing**

| |Route [{#LOCAL} => {#REMOTE}]: Jitter|

A change in the time it takes for a data packet to travel through the route.

|Dependent item|sd_wan.routes.jitter[{#LOCAL},{#REMOTE}]

**Preprocessing**

| |Route [{#LOCAL} => {#REMOTE}]: Loss|

Lost packets of data not reached the destination after being transmitted through the route.

|Dependent item|sd_wan.routes.loss[{#LOCAL},{#REMOTE}]

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