Cradlepoint NCM v2 by HTTP
Overview
This template is designed for the effortless deployment of Cradlepoint NCM v2 monitoring by Zabbix via HTTP and doesn't require any external scripts.
Requirements
Zabbix version: 7.4 and higher.
Tested versions
This template has been tested on:
- NetCloud Manager API v2
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
- Log into NetCloud Manager.
- Select Tools and then select the NetCloud API tab.
- Select Add in the NCM API 2.0 section, fill in the required fields, and select OK to create the API keys.
- In the Zabbix frontend, set the displayed
X-ECM-API-IDandX-ECM-API-KEYvalues in the{$CP.ECM.API.ID}and{$CP.ECM.API.KEY}macros. - Go back to NetCloud Manager and select the API Portal link to navigate to the API Portal.
- In the API Portal, you will see your
X-CP-API-IDandX-CP-API-KEYAPI key values. - In the Zabbix frontend, set the displayed
X-CP-API-IDandX-CP-API-KEYvalues in the{$CP.API.ID}and{$CP.API.KEY}macros.
For more on NetCloud Manager API v2 authentication, please refer to the vendor documentation.
Macros used
| Name | Description | Default |
|---|---|---|
| {$NCM.API.URL} | NetCloud Manager API URL. |
https://www.cradlepointecm.com/api/v2/ |
| {$NCM.CP.API.ID} | NetCloud Manager |
|
| {$NCM.CP.API.KEY} | NetCloud Manager |
|
| {$NCM.ECM.API.ID} | NetCloud Manager |
|
| {$NCM.ECM.API.KEY} | NetCloud Manager |
|
| {$NCM.DATA.TIMEOUT} | The response timeout for the API. |
15s |
| {$NCM.RESP.DATA.LIMIT} | The number of records returned by the API. Max value is |
500 |
| {$NCM.DEVICES.REBOOT.TH} | The maximum number of devices requiring a reboot before the trigger fires. The trigger can be disabled by setting the value to |
5 |
| {$NCM.DEVICES.UPGRADE.TH} | The maximum number of devices with a pending upgrade before the trigger fires. The trigger can be disabled by setting the value to |
5 |
| {$NCM.DEVICE.NAME.MATCHES} | A regular expression to filter devices by name. Only devices with names matching this regex will be monitored. |
.* |
| {$NCM.DEVICE.NAME.NOT_MATCHES} | Regular expression to filter devices by name. Devices with names matching this regex will be excluded from monitoring. |
CHANGE_IF_NEEDED |
| {$NCM.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.4/manual/config/items/itemtypes/http |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get devices | Item for gathering all devices from NetCloud Manager API. |
Script | cradlepoint.devices.get |
| Get devices item errors | Item for gathering all the data item errors. |
Dependent item | cradlepoint.devices.errors Preprocessing
|
| Total devices | The total number of all devices. |
Dependent item | cradlepoint.devices.total Preprocessing
|
| Devices required reboot | Number of devices required reboot. |
Dependent item | cradlepoint.devices.reboot_required Preprocessing
|
| Devices with pending upgrade | Number of devices with pending upgrade. |
Dependent item | cradlepoint.devices.upgrade_pending Preprocessing
|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Cradlepoint: There are errors in the 'Get devices' metric | length(last(/Cradlepoint NCM v2 by HTTP/cradlepoint.devices.errors))>0 |
Warning | ||
| Cradlepoint: More than {$NCM.DEVICES.REBOOT.TH} devices required reboot | {$NCM.DEVICES.REBOOT.TH}<>-1 and length(last(/Cradlepoint NCM v2 by HTTP/cradlepoint.devices.reboot_required))>{$NCM.DEVICES.REBOOT.TH} |
Info | ||
| Cradlepoint: More than {$NCM.DEVICES.UPGRADE.TH} devices awaiting upgrade | {$NCM.DEVICES.UPGRADE.TH}<>-1 and length(last(/Cradlepoint NCM v2 by HTTP/cradlepoint.devices.upgrade_pending))>{$NCM.DEVICES.UPGRADE.TH} |
Info |
LLD rule Devices discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Devices discovery | Discovering devices from NetCloud Manager API. |
Dependent item | cradlepoint.devices.discovery Preprocessing
|
Cradlepoint NCM v2 device by HTTP
Macros used
| Name | Description | Default |
|---|---|---|
| {$NCM.API.URL} | NetCloud Manager API URL. |
https://www.cradlepointecm.com/api/v2/ |
| {$NCM.CP.API.ID} | NetCloud Manager X-CP-API-ID. |
|
| {$NCM.CP.API.KEY} | NetCloud Manager X-CP-API-KEY. |
|
| {$NCM.ECM.API.ID} | NetCloud Manager X-ECM-API-ID. |
|
| {$NCM.ECM.API.KEY} | NetCloud Manager X-ECM-API-KEY. |
|
| {$NCM.DEVICE.ID} | NetCloud Manager device ID. |
|
| {$NCM.DATA.TIMEOUT} | A response timeout for an API. |
15s |
| {$NCM.RESP.DATA.LIMIT} | The number of records returned by API. Max value is 500. |
500 |
| {$REBOOT.CONTROL} | The macro is used as a flag to control device reboot tracking for the 'Reboot is required' trigger. |
1 |
| {$SIM.PIN.CONTROL} | The macro is used as a flag to control SIM PIN readiness tracking for the 'SIM PIN is not ready' trigger. Can be used with the net device ID as context. |
1 |
| {$NCM.LAN.NAME.MATCHES} | Regular expression to filter LANs based on their names. Only LANs with names matching this regex will be monitored. |
.* |
| {$NCM.LAN.NAME.NOT_MATCHES} | Regular expression to filter LANs based on their names. LANs with names matching this regex will be excluded from monitoring. |
CHANGE_IF_NEEDED |
| {$NCM.LAN.STATUS.MATCHES} | Regular expression to filter LANs based on their statuses. Only LANs with statuses matching this regex will be monitored. |
.* |
| {$NCM.LAN.STATUS.NOT_MATCHES} | Regular expression to filter LANs based on their statuses. LANs with statuses matching this regex will be excluded from monitoring. |
CHANGE_IF_NEEDED |
| {$NCM.NET.DEVICE.NAME.MATCHES} | Regular expression to filter Network devices based on their names. Only devices with names matching this regex will be monitored. |
.* |
| {$NCM.NET.DEVICE.NAME.NOT_MATCHES} | Regular expression to filter Network devices based on their statuses. Devices with names matching this regex will be excluded from monitoring. |
CHANGE_IF_NEEDED |
| {$NCM.NET.DEVICE.MODE.MATCHES} | Regular expression to filter Network devices based on their modes. Only devices with modes matching this regex will be monitored. |
.* |
| {$NCM.NET.DEVICE.MODE.NOT_MATCHES} | Regular expression to filter Network devices based on their modes. Devices with modes matching this regex will be excluded from monitoring. |
CHANGE_IF_NEEDED |
| {$NCM.NET.DEVICE.TYPE.MATCHES} | Regular expression to filter Network devices based on their types. Only devices with types matching this regex will be monitored. |
.* |
| {$NCM.NET.DEVICE.TYPE.NOT_MATCHES} | Regular expression to filter Network devices based on their types. Devices with types matching this regex will be excluded from monitoring. |
CHANGE_IF_NEEDED |
| {$NCM.NET.DEVICE.CONN.MATCHES} | Regular expression to filter Network devices based on their connection types. Only devices with connection types matching this regex will be monitored. |
.* |
| {$NCM.NET.DEVICE.CONN.NOT_MATCHES} | Regular expression to filter Network devices based on their connection types. Devices with connection types matching this regex will be excluded from monitoring. |
CHANGE_IF_NEEDED |
| {$NCM.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.4/manual/config/items/itemtypes/http |
Items
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get device data | Item for gathering device data from the NetCloud Manager API. |
Script | cradlepoint_device.data.get |
| Get device item errors | Item for gathering device data errors. |
Dependent item | cradlepoint_device.data.errors Preprocessing
|
| Device state | Device state. |
Dependent item | cradlepoint_device.state Preprocessing
|
| Device type | Type of device, e.g., router or access point. |
Dependent item | cradlepoint_device.device_type Preprocessing
|
| Serial number | Serial number of the device. |
Dependent item | cradlepoint_device.serial_number Preprocessing
|
| Product name | Full product name of the device. |
Dependent item | cradlepoint_device.device_model Preprocessing
|
| MAC address | MAC address of the device. |
Dependent item | cradlepoint_device.mac_address Preprocessing
|
| Firmware | Firmware of the device. |
Dependent item | cradlepoint_device.firmware Preprocessing
|
| IP address | IPv4 address of the device. |
Dependent item | cradlepoint_device.ip_address Preprocessing
|
| Timezone | Timezone of the device. |
Dependent item | cradlepoint_device.timezone Preprocessing
|
| Device latitude | Latitude of the device location. |
Dependent item | cradlepoint_device.latitude Preprocessing
|
| Device longitude | Longitude of the device location. |
Dependent item | cradlepoint_device.longitude Preprocessing
|
| Device description | Description of the device. |
Dependent item | cradlepoint_device.description Preprocessing
|
| Reboot required | Indicates if a reboot is required to enable additional device functionality. |
Dependent item | cradlepoint_device.reboot_required Preprocessing
|
Triggers
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Cradlepoint: There are errors in the 'Get device data' metric | length(last(/Cradlepoint NCM v2 device by HTTP/cradlepoint_device.data.errors))>0 |
Warning | ||
| Cradlepoint: Device state is not online | last(/Cradlepoint NCM v2 device by HTTP/cradlepoint_device.state)<>1 |
Warning | ||
| Cradlepoint: Reboot is required | {$REBOOT.CONTROL}=1 and last(/Cradlepoint NCM v2 device by HTTP/cradlepoint_device.reboot_required)=1 |
Info |
LLD rule LAN discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| LAN discovery | Discovery of LANs via the NetCloud Manager API. |
Dependent item | cradlepoint_device.lan.discovery Preprocessing
|
Item prototypes for LAN discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#NAME}: Get data | Item for gathering data for the |
Dependent item | cradlepoint_device.lan.data_get[{#ID}] Preprocessing
|
| {#NAME}: IP address | IP address of the LAN. |
Dependent item | cradlepoint_device.lan.ip_address[{#ID}] Preprocessing
|
| {#NAME}: Netmask | Netmask of the LAN. |
Dependent item | cradlepoint_device.lan.netmask[{#ID}] Preprocessing
|
| {#NAME}: State | State of the LAN, e.g., enabled or disabled. |
Dependent item | cradlepoint_device.lan.state[{#ID}] Preprocessing
|
LLD rule Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network device discovery | Discovery of network devices connected through the router. |
Dependent item | cradlepoint_device.net_device.discovery Preprocessing
|
Item prototypes for Network device discovery
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#NAME}: Get device info | Item for gathering general information about the |
Dependent item | cradlepoint_device.net_device.info_get[{#ID}] Preprocessing
|
| {#NAME}: APN | Access Point Name. |
Dependent item | cradlepoint_device.net_device.apn[{#ID}] Preprocessing
|
| {#NAME}: Carrier | The connected carrier, if available; otherwise, the carrier the modem is configured to connect to. |
Dependent item | cradlepoint_device.net_device.carrier[{#ID}] Preprocessing
|
| {#NAME}: Connection state | Current connection state. |
Dependent item | cradlepoint_device.net_device.conn_state[{#ID}] Preprocessing
|
| {#NAME}: Gateway | Gateway of the network. |
Dependent item | cradlepoint_device.net_device.gateway[{#ID}] Preprocessing
|
| {#NAME}: IPv4 address | IPv4 address of the |
Dependent item | cradlepoint_device.net_device.ipv4_address[{#ID}] Preprocessing
|
| {#NAME}: IPv6 address | IPv6 address of the |
Dependent item | cradlepoint_device.net_device.ipv6_address[{#ID}] Preprocessing
|
| {#NAME}: DNS0 server | Primary DNS server. |
Dependent item | cradlepoint_device.net_device.dns0[{#ID}] Preprocessing
|
| {#NAME}: DNS1 server | Secondary DNS server. |
Dependent item | cradlepoint_device.net_device.dns1[{#ID}] Preprocessing
|
| {#NAME}: LTE bandwidth | Indicates the frequency width of the LTE band being used by the modem module. |
Dependent item | cradlepoint_device.net_device.ltebandwidth[{#ID}] Preprocessing
|
| {#NAME}: MAC address | MAC address of the |
Dependent item | cradlepoint_device.net_device.mac_address[{#ID}] Preprocessing
|
| {#NAME}: Netmask | Netmask of the |
Dependent item | cradlepoint_device.net_device.netmask[{#ID}] Preprocessing
|
| {#NAME}: Serial number | Serial number of the |
Dependent item | cradlepoint_device.net_device.serial[{#ID}] Preprocessing
|
| {#NAME}: Product name | Product name of the |
Dependent item | cradlepoint_device.net_device.product_name[{#ID}] Preprocessing
|
| {#NAME}: Model | Manufacturing model of the |
Dependent item | cradlepoint_device.net_device.model[{#ID}] Preprocessing
|
| {#NAME}: Firmware | Firmware version of the |
Dependent item | cradlepoint_device.net_device.firmware[{#ID}] Preprocessing
|
| {#NAME}: PIN status | Indicates the status of the SIM PIN. |
Dependent item | cradlepoint_device.net_device.pin_status[{#ID}] Preprocessing
|
| {#NAME}: Radio frequency band | Indicates the radio frequency band that is currently being used by the modem module. |
Dependent item | cradlepoint_device.net_device.rf_band[{#ID}] Preprocessing
|
| {#NAME}: Radio frequency band 5G | Indicates the 5G radio frequency band that is currently being used by the modem module. |
Dependent item | cradlepoint_device.net_device.rf_band_5g[{#ID}] Preprocessing
|
| {#NAME}: Radio frequency channel | Indicates the radio frequency channel that is currently being used by the modem module. |
Dependent item | cradlepoint_device.net_device.rf_channel[{#ID}] Preprocessing
|
| {#NAME}: Uptime | Time in seconds since the network device established its link. |
Dependent item | cradlepoint_device.net_device.uptime[{#ID}] Preprocessing
|
| {#NAME}: WiMAX realm | WiMAX realm string used to connect to a WiMAX network. |
Dependent item | cradlepoint_device.net_device.wimax_realm[{#ID}] Preprocessing
|
Trigger prototypes for Network device discovery
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Cradlepoint: {#NAME}: SIM PIN is not ready | {$SIM.PIN.CONTROL:"{#ID}"}=1 and last(/Cradlepoint NCM v2 device by HTTP/cradlepoint_device.net_device.pin_status[{#ID}])<>1 |
Warning |
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