Cradlepoint

Cradlepoint (part of Ericsson since 2020) is a networking technology company that specializes in cloud-managed wireless WAN solutions, primarily for businesses and organizations.

Available solutions




This template is for Zabbix version: 7.4
Also available for: 7.0

Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/net/cradlepoint/ncm_v2_http?at=release/7.4

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

  1. Log into NetCloud Manager.
  2. Select Tools and then select the NetCloud API tab.
  3. Select Add in the NCM API 2.0 section, fill in the required fields, and select OK to create the API keys.
  4. In the Zabbix frontend, set the displayed X-ECM-API-ID and X-ECM-API-KEY values in the {$CP.ECM.API.ID} and {$CP.ECM.API.KEY} macros.
  5. Go back to NetCloud Manager and select the API Portal link to navigate to the API Portal.
  6. In the API Portal, you will see your X-CP-API-ID and X-CP-API-KEY API key values.
  7. In the Zabbix frontend, set the displayed X-CP-API-ID and X-CP-API-KEY values 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 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.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.

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 -1.

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 -1.

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

  • JSON Path: $.error

  • Discard unchanged with heartbeat: 1h

Total devices

The total number of all devices.

Dependent item cradlepoint.devices.total

Preprocessing

  • JSON Path: $.data.length()

Devices required reboot

Number of devices required reboot.

Dependent item cradlepoint.devices.reboot_required

Preprocessing

  • JSON Path: $.data[?(@.reboot_required == 'true')].length()

Devices with pending upgrade

Number of devices with pending upgrade.

Dependent item cradlepoint.devices.upgrade_pending

Preprocessing

  • JSON Path: $.data[?(@.upgrade_pending == 'true')].length()

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

  • JSON Path: $.data

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

  • JSON Path: $.error

  • Discard unchanged with heartbeat: 1h

Device state

Device state.

Dependent item cradlepoint_device.state

Preprocessing

  • JSON Path: $.data.state

    ⛔️Custom on fail: Discard value

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

Device type

Type of device, e.g., router or access point.

Dependent item cradlepoint_device.device_type

Preprocessing

  • JSON Path: $.data.device_type

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 12h

Serial number

Serial number of the device.

Dependent item cradlepoint_device.serial_number

Preprocessing

  • JSON Path: $.data.serial_number

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 12h

Product name

Full product name of the device.

Dependent item cradlepoint_device.device_model

Preprocessing

  • JSON Path: $.data.full_product_name

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 12h

MAC address

MAC address of the device.

Dependent item cradlepoint_device.mac_address

Preprocessing

  • JSON Path: $.data.mac

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 12h

Firmware

Firmware of the device.

Dependent item cradlepoint_device.firmware

Preprocessing

  • JSON Path: $.data.actual_firmware.version

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 12h

IP address

IPv4 address of the device.

Dependent item cradlepoint_device.ip_address

Preprocessing

  • JSON Path: $.data.ipv4_address

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 12h

Timezone

Timezone of the device.

Dependent item cradlepoint_device.timezone

Preprocessing

  • JSON Path: $.data.locality

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 12h

Device latitude

Latitude of the device location.

Dependent item cradlepoint_device.latitude

Preprocessing

  • JSON Path: $.data.last_known_location.latitude

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 12h

Device longitude

Longitude of the device location.

Dependent item cradlepoint_device.longitude

Preprocessing

  • JSON Path: $.data.last_known_location.longitude

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 12h

Device description

Description of the device.

Dependent item cradlepoint_device.description

Preprocessing

  • JSON Path: $.data.description

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 12h

Reboot required

Indicates if a reboot is required to enable additional device functionality.

Dependent item cradlepoint_device.reboot_required

Preprocessing

  • JSON Path: $.data.reboot_required

    ⛔️Custom on fail: Discard value

  • Boolean to decimal
  • Discard unchanged with heartbeat: 6h

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

  • JSON Path: $.data.lans

    ⛔️Custom on fail: Set value to: []

Item prototypes for LAN discovery

Name Description Type Key and additional info
{#NAME}: Get data

Item for gathering data for the {#NAME} LAN.

Dependent item cradlepoint_device.lan.data_get[{#ID}]

Preprocessing

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

    ⛔️Custom on fail: Discard value

{#NAME}: IP address

IP address of the LAN.

Dependent item cradlepoint_device.lan.ip_address[{#ID}]

Preprocessing

  • JSON Path: $.ip_address

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 12h

{#NAME}: Netmask

Netmask of the LAN.

Dependent item cradlepoint_device.lan.netmask[{#ID}]

Preprocessing

  • JSON Path: $.netmask

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 12h

{#NAME}: State

State of the LAN, e.g., enabled or disabled.

Dependent item cradlepoint_device.lan.state[{#ID}]

Preprocessing

  • JSON Path: $.enabled

    ⛔️Custom on fail: Discard value

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

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

  • JSON Path: $.data.net_devices

    ⛔️Custom on fail: Set value to: []

Item prototypes for Network device discovery

Name Description Type Key and additional info
{#NAME}: Get device info

Item for gathering general information about the {#NAME} network device.

Dependent item cradlepoint_device.net_device.info_get[{#ID}]

Preprocessing

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

    ⛔️Custom on fail: Discard value

{#NAME}: APN

Access Point Name.

Dependent item cradlepoint_device.net_device.apn[{#ID}]

Preprocessing

  • JSON Path: $.apn

    ⛔️Custom on fail: Discard value

  • Does not match regular expression: ^null$

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 6h

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

  • JSON Path: $.carrier

    ⛔️Custom on fail: Discard value

  • Does not match regular expression: ^null$

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 6h

{#NAME}: Connection state

Current connection state.

Dependent item cradlepoint_device.net_device.conn_state[{#ID}]

Preprocessing

  • JSON Path: $.connection_state

    ⛔️Custom on fail: Discard value

  • Does not match regular expression: ^null$

    ⛔️Custom on fail: Discard value

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

{#NAME}: Gateway

Gateway of the network.

Dependent item cradlepoint_device.net_device.gateway[{#ID}]

Preprocessing

  • JSON Path: $.gateway

    ⛔️Custom on fail: Discard value

  • Does not match regular expression: ^null$

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 6h

{#NAME}: IPv4 address

IPv4 address of the {#NAME} device.

Dependent item cradlepoint_device.net_device.ipv4_address[{#ID}]

Preprocessing

  • JSON Path: $.ipv4_address

    ⛔️Custom on fail: Discard value

  • Does not match regular expression: ^null$

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 6h

{#NAME}: IPv6 address

IPv6 address of the {#NAME} device.

Dependent item cradlepoint_device.net_device.ipv6_address[{#ID}]

Preprocessing

  • JSON Path: $.ipv6_address

    ⛔️Custom on fail: Discard value

  • Does not match regular expression: ^null$

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 6h

{#NAME}: DNS0 server

Primary DNS server.

Dependent item cradlepoint_device.net_device.dns0[{#ID}]

Preprocessing

  • JSON Path: $.dns0

    ⛔️Custom on fail: Discard value

  • Does not match regular expression: ^null$

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 6h

{#NAME}: DNS1 server

Secondary DNS server.

Dependent item cradlepoint_device.net_device.dns1[{#ID}]

Preprocessing

  • JSON Path: $.dns1

    ⛔️Custom on fail: Discard value

  • Does not match regular expression: ^null$

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 6h

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

  • JSON Path: $.ltebandwidth

    ⛔️Custom on fail: Discard value

  • Does not match regular expression: ^null$

    ⛔️Custom on fail: Discard value

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

  • Discard unchanged with heartbeat: 6h

{#NAME}: MAC address

MAC address of the {#NAME} device.

Dependent item cradlepoint_device.net_device.mac_address[{#ID}]

Preprocessing

  • JSON Path: $.mac

    ⛔️Custom on fail: Discard value

  • Does not match regular expression: ^null$

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 6h

{#NAME}: Netmask

Netmask of the {#NAME} device.

Dependent item cradlepoint_device.net_device.netmask[{#ID}]

Preprocessing

  • JSON Path: $.netmask

    ⛔️Custom on fail: Discard value

  • Does not match regular expression: ^null$

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 6h

{#NAME}: Serial number

Serial number of the {#NAME} device.

Dependent item cradlepoint_device.net_device.serial[{#ID}]

Preprocessing

  • JSON Path: $.serial

    ⛔️Custom on fail: Discard value

  • Does not match regular expression: ^null$

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 6h

{#NAME}: Product name

Product name of the {#NAME} device.

Dependent item cradlepoint_device.net_device.product_name[{#ID}]

Preprocessing

  • JSON Path: $.mfg_product

    ⛔️Custom on fail: Discard value

  • Does not match regular expression: ^null$

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 6h

{#NAME}: Model

Manufacturing model of the {#NAME} device.

Dependent item cradlepoint_device.net_device.model[{#ID}]

Preprocessing

  • JSON Path: $.mfg_model

    ⛔️Custom on fail: Discard value

  • Does not match regular expression: ^null$

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 6h

{#NAME}: Firmware

Firmware version of the {#NAME} device.

Dependent item cradlepoint_device.net_device.firmware[{#ID}]

Preprocessing

  • JSON Path: $.version

    ⛔️Custom on fail: Discard value

  • Does not match regular expression: ^null$

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 6h

{#NAME}: PIN status

Indicates the status of the SIM PIN.

Dependent item cradlepoint_device.net_device.pin_status[{#ID}]

Preprocessing

  • JSON Path: $.pin_status

    ⛔️Custom on fail: Discard value

  • Does not match regular expression: ^null$

    ⛔️Custom on fail: Discard value

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

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

  • JSON Path: $.rfband

    ⛔️Custom on fail: Discard value

  • Does not match regular expression: ^null$

    ⛔️Custom on fail: Discard value

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

  • JSON Path: $.rfband5g

    ⛔️Custom on fail: Discard value

  • Does not match regular expression: ^null$

    ⛔️Custom on fail: Discard value

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

  • JSON Path: $.rfchannel

    ⛔️Custom on fail: Discard value

  • Does not match regular expression: ^null$

    ⛔️Custom on fail: Discard value

{#NAME}: Uptime

Time in seconds since the network device established its link.

Dependent item cradlepoint_device.net_device.uptime[{#ID}]

Preprocessing

  • JSON Path: $.uptime

    ⛔️Custom on fail: Discard value

  • Does not match regular expression: ^null$

    ⛔️Custom on fail: Discard value

{#NAME}: WiMAX realm

WiMAX realm string used to connect to a WiMAX network.

Dependent item cradlepoint_device.net_device.wimax_realm[{#ID}]

Preprocessing

  • JSON Path: $.wimax_realm

    ⛔️Custom on fail: Discard value

  • Does not match regular expression: ^null$

    ⛔️Custom on fail: Discard value

  • Discard unchanged with heartbeat: 6h

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

Articles and documentation

+ Propose new article

Vous n’avez pas trouvé ce que vous cherchiez ?