Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/net/meraki_http?at=release/7.0
Cisco Meraki dashboard by HTTP
Overview
This template is designed for the effortless deployment of Cisco Meraki dashboard 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 Meraki API 1.24.0
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
You must set {$MERAKI.TOKEN} and {$MERAKI.API.URL} macros.
Create the token in the Meraki dashboard (see Meraki documentation for instructions). Set this token as {$MERAKI.TOKEN} macro value in Zabbix.
Set your Meraki dashboard URL as {$MERAKI.API.URL} macro value in Zabbix (e.g., api.meraki.com/api/v1).
Set filters with macros if you want to override default filter parameters.
Macros used
Name | Description | Default |
---|---|---|
{$MERAKI.TOKEN} | Cisco Meraki dashboard API token. |
|
{$MERAKI.API.URL} | Cisco Meraki dashboard API URL, e.g., api.meraki.com/api/v1 |
api.meraki.com/api/v1 |
{$MERAKI.DATA.TIMEOUT} | Response timeout for an API. |
60 |
{$MERAKI.ORGANIZATION.NAME.MATCHES} | This macro is used in organizations discovery. Can be overridden on the host or linked template level. |
.+ |
{$MERAKI.ORGANIZATION.NAME.NOT_MATCHES} | This macro is used in organizations discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
{$MERAKI.DEVICE.NAME.MATCHES} | This macro is used in devices discovery. Can be overridden on the host or linked template level. |
.+ |
{$MERAKI.DEVICE.NAME.NOT_MATCHES} | This macro is used in devices discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
{$MERAKI.DEVICE.STATUS.MATCHES} | This macro is used in devices discovery. Can be overridden on the host or linked template level. |
.* |
{$MERAKI.DEVICE.STATUS.NOT_MATCHES} | This macro is used in devices discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
{$MERAKI.HTTP_PROXY} | HTTP proxy for API requests. You can specify it using the format [protocol://][username[:password]@]proxy.example.com[:port]. See documentation at https://www.zabbix.com/documentation/7.0/manual/config/items/itemtypes/http |
Items
Name | Description | Type | Key and additional info |
---|---|---|---|
Get data | Item for gathering all the organizations and devices from Meraki API. |
Script | meraki.get.data |
Data item errors | Item for gathering all the data item errors. |
Dependent item | meraki.get.data.errors Preprocessing
|
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Meraki: There are errors in 'Get data' metric | length(last(/Cisco Meraki dashboard by HTTP/meraki.get.data.errors))>0 |
Warning |
LLD rule Organizations discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Organizations discovery | Dependent item | meraki.organization.discovery Preprocessing
|
LLD rule Devices discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Devices discovery | Dependent item | meraki.devices.discovery Preprocessing
|
Cisco Meraki organization by HTTP
Macros used
Name | Description | Default |
---|---|---|
{$MERAKI.TOKEN} | Cisco Meraki dashboard API token. |
|
{$MERAKI.API.URL} | Cisco Meraki dashboard API URL, e.g., api.meraki.com/api/v1 |
api.meraki.com/api/v1 |
{$MERAKI.DATA.TIMEOUT} | Response timeout for an API. |
60 |
{$MERAKI.LICENSE.EXPIRE} | Time in seconds for license to expire. |
86400 |
{$MERAKI.VPN.LOSS.PERCENTILE} | Average VPN connection loss percentage. Used in the trigger expression |
90 |
{$MERAKI.CONFIG.CHANGE.TIMESPAN} | Timespan in seconds for gathering configuration change log. Used in the metric configuration and in the URL query. |
1200 |
{$MERAKI.VPN.STATS.TIMESPAN} | Timespan in seconds for getting organization appliance VPN stats. Used in the metric configuration and in the JavaScript API query. Must be between 1 and 86400 seconds. |
180 |
{$MERAKI.LICENSE.TYPE.MATCHES} | Filter of discoverable license. |
.* |
{$MERAKI.LICENSE.TYPE.NOT_MATCHES} | Filter to exclude discovered license. |
CHANGE_IF_NEEDED |
{$MERAKI.LICENSE.STATE.MATCHES} | Filter of discoverable license. |
.* |
{$MERAKI.LICENSE.STATE.NOT_MATCHES} | Filter to exclude discovered license. |
CHANGE_IF_NEEDED |
{$MERAKI.SAML.ORG.ACCESS.MATCHES} | Filter of discoverable SAML role. |
.* |
{$MERAKI.SAML.ORG.ACCESS.NOT_MATCHES} | Filter to exclude discovered SAML role. |
CHANGE_IF_NEEDED |
{$MERAKI.SAML.ROLE.MATCHES} | Filter of discoverable SAML role. |
.* |
{$MERAKI.SAML.ROLE.NOT_MATCHES} | Filter to exclude discovered SAML role. |
CHANGE_IF_NEEDED |
{$MERAKI.ADMIN.NAME.MATCHES} | Filter of discoverable admins in organization. |
.* |
{$MERAKI.ADMIN.NAME.NOT_MATCHES} | Filter to exclude discovered admins in organization. |
CHANGE_IF_NEEDED |
{$MERAKI.ADMIN.ORG.ACCESS.MATCHES} | Filter of discoverable admins in organization. |
.* |
{$MERAKI.ADMIN.ORG.ACCESS.NOT_MATCHES} | Filter to exclude discovered admins in organization. |
CHANGE_IF_NEEDED |
{$MERAKI.HTTP_PROXY} | HTTP proxy for API requests. You can specify it using the format [protocol://][username[:password]@]proxy.example.com[:port]. See documentation at https://www.zabbix.com/documentation/7.0/manual/config/items/itemtypes/http |
|
{$MERAKI.LLD.UPLINK.NETWORK.NAME.MATCHES} | This macro is used in uplinks discovery. Can be overridden on the host or linked template level. |
.* |
{$MERAKI.LLD.UPLINK.NETWORK.NAME.NOT_MATCHES} | This macro is used in uplinks discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
{$MERAKI.LLD.UPLINK.ROLE.MATCHES} | This macro is used in uplinks discovery. Can be overridden on the host or linked template level. |
.* |
{$MERAKI.LLD.UPLINK.ROLE.NOT_MATCHES} | This macro is used in uplinks discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
{$MERAKI.LLD.VPN.NETWORK.NAME.MATCHES} | This macro is used in VPN stats discovery. Can be overridden on the host or linked template level. |
.* |
{$MERAKI.LLD.VPN.NETWORK.NAME.NOT_MATCHES} | This macro is used in VPN stats discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
{$MERAKI.LLD.VPN.PEER.NETWORK.NAME.MATCHES} | This macro is used in VPN stats discovery. Can be overridden on the host or linked template level. |
.* |
{$MERAKI.LLD.VPN.PEER.NETWORK.NAME.NOT_MATCHES} | This macro is used in VPN stats discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
{$MERAKI.LLD.VPN.SENDER.UPLINK.MATCHES} | This macro is used in VPN stats discovery. Can be overridden on the host or linked template level. |
.* |
{$MERAKI.LLD.VPN.SENDER.UPLINK.NOT_MATCHES} | This macro is used in VPN stats discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
{$MERAKI.LLD.VPN.RECEIVER.UPLINK.MATCHES} | This macro is used in VPN stats discovery. Can be overridden on the host or linked template level. |
.* |
{$MERAKI.LLD.VPN.RECEIVER.UPLINK.NOT_MATCHES} | This macro is used in VPN stats discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
Items
Name | Description | Type | Key and additional info |
---|---|---|---|
Get list of the networks | Item for gathering all the networks of organization from Meraki API. |
Script | meraki.get.networks |
Networks item errors | Item for gathering all the networks item errors. |
Dependent item | meraki.get.networks.errors Preprocessing
|
Get list of the VPN stats | Item for gathering all the VPN stats of the organization. |
Script | meraki.get.vpn.stats |
VPN item errors | Item for gathering all the VPN item errors. |
Dependent item | meraki.get.vpn.stats.errors Preprocessing
|
Get list of configuration changes | Item for viewing the change log for your organization. Gathering once per 20m by default. |
HTTP agent | meraki.get.configuration.changes Preprocessing
|
Get list of adaptive policy aggregate statistics | Item for adaptive policy aggregate statistics for the organization. |
HTTP agent | meraki.get.adaptive.policy |
Groups | Meraki adaptive policy groups count. |
Dependent item | meraki.policies.groups Preprocessing
|
Custom ACLs | Meraki adaptive policy custom ACLs count. |
Dependent item | meraki.policies.custom.acls Preprocessing
|
Policies | Meraki adaptive policies count. |
Dependent item | meraki.policies Preprocessing
|
Allow policies | Meraki adaptive allow policies count. |
Dependent item | meraki.policies.allow Preprocessing
|
Deny policies | Meraki adaptive deny policies count. |
Dependent item | meraki.policies.deny Preprocessing
|
Get licenses overview | Return overview of the license state for the organization. |
HTTP agent | meraki.get.licenses |
License status | Meraki license status. |
Dependent item | meraki.license.status Preprocessing
|
License expire | Meraki license expire time, in seconds left. |
Dependent item | meraki.license.expire Preprocessing
|
Get list licenses | Return list of the licenses for the organization. |
Script | meraki.get.list.licenses |
Get SAML SSO | Return the enabled SAML SSO settings for the organization. |
HTTP agent | meraki.get.saml Preprocessing
|
Get SAML roles | Get list of the SAML roles for this organization. |
HTTP agent | meraki.get.saml.roles |
Get admin's account | Get list of the dashboard administrators in this organization. |
HTTP agent | meraki.get.admins |
Get login security | Return the login security settings for the organization. |
HTTP agent | meraki.get.login.security |
Account lockout attempts | Number of consecutive failed login attempts after which users' accounts will be locked. |
Dependent item | meraki.account.lockout.attempts Preprocessing
|
Idle timeout minutes | Number of minutes users can remain idle before being logged out of their accounts. |
Dependent item | meraki.idle.timeout.minutes Preprocessing
|
Number of different passwords | Number of recent passwords that new password must be distinct from. |
Dependent item | meraki.login.num.different.passwords Preprocessing
|
Password expiration days | Number of days after which users will be forced to change their password. |
Dependent item | meraki.login.password.expiration.days Preprocessing
|
Enforce account lockout | Boolean indicating whether users' dashboard accounts will be locked out after a specified number of consecutive failed login attempts. |
Dependent item | meraki.login.enforce.account.lockout Preprocessing
|
Enforce different passwords | Boolean indicating whether users, when setting a new password, are forced to choose a new password that is different from any past passwords. |
Dependent item | meraki.login.enforce.different.passwords Preprocessing
|
Enforce idle timeout | Boolean indicating whether users will be logged out after being idle for the specified number of minutes. |
Dependent item | meraki.login.enforce.idle.timeout Preprocessing
|
Enforce login IP ranges | Boolean indicating whether organization will restrict access to the dashboard (including the API) from certain IP addresses. |
Dependent item | meraki.login.enforce.login.ip.ranges Preprocessing
|
Enforce password expiration | Boolean indicating whether users are forced to change their password every X days. |
Dependent item | meraki.login.enforce.password.expiration Preprocessing
|
Enforce 2FA | Boolean indicating whether users in this organization will be required to use an extra verification code when logging in to the dashboard. This code will be sent to their mobile phones via SMS or can be generated by the authenticator application. |
Dependent item | meraki.login.enforce.two.factor.auth Preprocessing
|
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Meraki: There are errors in 'Get networks' metric | length(last(/Cisco Meraki organization by HTTP/meraki.get.networks.errors))>0 |
Warning | ||
Meraki: There are errors in 'Get VPNs' metric | length(last(/Cisco Meraki organization by HTTP/meraki.get.vpn.stats.errors))>0 |
Warning | ||
Meraki: Configuration has been changed | length(last(/Cisco Meraki organization by HTTP/meraki.get.configuration.changes))>3 |
Warning | ||
Meraki: License status is not OK | last(/Cisco Meraki organization by HTTP/meraki.license.status)<>1 |
Warning | ||
Meraki: License expires in less than {$MERAKI.LICENSE.EXPIRE} seconds | last(/Cisco Meraki organization by HTTP/meraki.license.expire)<{$MERAKI.LICENSE.EXPIRE} and last(/Cisco Meraki organization by HTTP/meraki.license.expire)>=0 |
Warning |
LLD rule Uplinks discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Uplinks discovery | Dependent item | meraki.uplinks.discovery Preprocessing
|
Item prototypes for Uplinks discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Uplink [{#INTERFACE}]: [{#UPLINK.ROLE}]: [{#NETWORK.NAME}]: status | Network uplink status. |
Dependent item | meraki.uplink.status[{#NETWORK.NAME}, {#INTERFACE}, {#UPLINK.ROLE}] Preprocessing
|
Uplink [{#INTERFACE}]: [{#UPLINK.ROLE}]: [{#NETWORK.NAME}]: interface | Network uplink interface. |
Dependent item | meraki.uplink.interface[{#NETWORK.NAME}, {#INTERFACE}, {#UPLINK.ROLE}] Preprocessing
|
Uplink [{#INTERFACE}]: [{#UPLINK.ROLE}]: [{#NETWORK.NAME}]: public IP | Network uplink public IP. |
Dependent item | meraki.uplink.public.ip[{#NETWORK.NAME}, {#INTERFACE}, {#UPLINK.ROLE}] Preprocessing
|
Trigger prototypes for Uplinks discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Meraki: Uplink [{#INTERFACE}]: [{#UPLINK.ROLE}]: [{#NETWORK.NAME}]: status is failed | last(/Cisco Meraki organization by HTTP/meraki.uplink.status[{#NETWORK.NAME}, {#INTERFACE}, {#UPLINK.ROLE}])=0 |
Warning |
LLD rule Networks discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Networks discovery | Dependent item | meraki.networks.discovery Preprocessing
|
Item prototypes for Networks discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Network [{#NETWORK.NAME}]: time zone | Timezone of the network. |
Dependent item | meraki.network.timezone[{#NETWORK.ID}] Preprocessing
|
LLD rule VPN statuses discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
VPN statuses discovery | Dependent item | meraki.vpn.statuses.discovery Preprocessing
|
Item prototypes for VPN statuses discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
VPN [{#NETWORK.NAME}]: statuses raw | VPN statuses raw. |
Dependent item | meraki.vpn.statuses.raw[{#NETWORK.ID}, {#NETWORK.NAME}] Preprocessing
|
VPN [{#NETWORK.NAME}]: mode | VPN network mode. |
Dependent item | meraki.vpn.statuses.mode[{#NETWORK.ID}, {#NETWORK.NAME}] Preprocessing
|
VPN [{#NETWORK.NAME}]: peers network name | VPN network name Meraki VPN peers. |
Dependent item | meraki.vpn.statuses.peers.network.name[{#NETWORK.ID}, {#NETWORK.NAME}] Preprocessing
|
VPN [{#NETWORK.NAME}]: peers network ID | VPN network ID. |
Dependent item | meraki.vpn.statuses.peers.network.id[{#NETWORK.ID}, {#NETWORK.NAME}] Preprocessing
|
VPN [{#NETWORK.NAME}]: peers network reachability | VPN network Meraki VPN peers reachability. |
Dependent item | meraki.vpn.statuses.peers.reachability[{#NETWORK.ID}, {#NETWORK.NAME}] Preprocessing
|
VPN [{#NETWORK.NAME}]: third-party peers network name | Return network name of the third-party VPN peers for the organization. |
Dependent item | meraki.vpn.statuses.third.party.peers.network.name[{#NETWORK.ID}, {#NETWORK.NAME}] Preprocessing
|
VPN [{#NETWORK.NAME}]: third-party peers network ID | Return network ID of the third-party VPN peers for the organization. |
Dependent item | meraki.vpn.statuses.third.party.peers.network.id[{#NETWORK.ID}, {#NETWORK.NAME}] Preprocessing
|
VPN [{#NETWORK.NAME}]: third-party peers network reachability | Return network reachability of the third-party VPN peers for the organization. |
Dependent item | meraki.vpn.statuses.third.party.peers.reachability[{#NETWORK.ID}, {#NETWORK.NAME}] Preprocessing
|
VPN [{#NETWORK.NAME}]: device serial | VPN network device serial. |
Dependent item | meraki.vpn.statuses.device.serial[{#NETWORK.ID}, {#NETWORK.NAME}] Preprocessing
|
VPN [{#NETWORK.NAME}]: device status | VPN network device status. |
Dependent item | meraki.vpn.statuses.device.status[{#NETWORK.ID}, {#NETWORK.NAME}] Preprocessing
|
LLD rule VPN stats discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
VPN stats discovery | Dependent item | meraki.vpn.stats.discovery Preprocessing
|
Item prototypes for VPN stats discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
VPN [{#NETWORK.NAME}]=>[{#PEER.NETWORK.NAME}]: stats raw | VPN connection stats raw. |
Dependent item | meraki.vpn.stat.raw[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}] Preprocessing
|
VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: latency avg | VPN connection avg latency. |
Dependent item | meraki.vpn.stat.latency.avg[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}] Preprocessing
|
VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: latency min | VPN connection min latency. |
Dependent item | meraki.vpn.stat.latency.min[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}] Preprocessing
|
VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: latency max | VPN connection max latency. |
Dependent item | meraki.vpn.stat.latency.max[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}] Preprocessing
|
VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: loss avg, % | VPN connection loss avg. |
Dependent item | meraki.vpn.stat.loss.avg[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}] Preprocessing
|
VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: loss min, % | VPN connection loss min. |
Dependent item | meraki.vpn.stat.loss.min[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}] Preprocessing
|
VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: loss max, % | VPN connection loss max. |
Dependent item | meraki.vpn.stat.loss.max[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}] Preprocessing
|
VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: jitter avg | VPN connection jitter avg. |
Dependent item | meraki.vpn.stat.jitter.avg[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}] Preprocessing
|
VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: jitter min | VPN connection jitter min. |
Dependent item | meraki.vpn.stat.jitter.min[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}] Preprocessing
|
VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: jitter max | VPN connection jitter max. |
Dependent item | meraki.vpn.stat.jitter.max[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}] Preprocessing
|
VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: mos avg | VPN connection mos avg. |
Dependent item | meraki.vpn.stat.mos.avg[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}] Preprocessing
|
VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: mos min | VPN connection mos min. |
Dependent item | meraki.vpn.stat.mos.min[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}] Preprocessing
|
VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: mos max | VPN connection mos max. |
Dependent item | meraki.vpn.stat.mos.max[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}] Preprocessing
|
Trigger prototypes for VPN stats discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Meraki: VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: High average VPN connection loss (over >= {$MERAKI.VPN.LOSS.PERCENTILE%) | count(/Cisco Meraki organization by HTTP/meraki.vpn.stat.loss.avg[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}],#3,,"{$MERAKI.VPN.LOSS.PERCENTILE}")>=3 |
Average |
LLD rule License discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
License discovery | Dependent item | meraki.license.discovery Preprocessing
|
Item prototypes for License discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
License [{#LICENSE.ID}]: get data | Raw data for a license. |
Dependent item | meraki.license.get[{#LICENSE.ID}] Preprocessing
|
License [{#LICENSE.ID}]: activation date | The date the license started burning. |
Dependent item | meraki.license.activation.date[{#LICENSE.ID}] Preprocessing
|
License [{#LICENSE.ID}]: expiration date | The date the license will expire. |
Dependent item | meraki.license.expiration.date[{#LICENSE.ID}] Preprocessing
|
License [{#LICENSE.ID}]: total duration in days | The duration of the license plus all permanently queued licenses associated with it. |
Dependent item | meraki.license.total.duration[{#LICENSE.ID}] Preprocessing
|
License [{#LICENSE.ID}]: device serial | Serial number of the device the license is assigned to. |
Dependent item | meraki.license.device.serial[{#LICENSE.ID}] Preprocessing
|
License [{#LICENSE.ID}]: device name | Name of the device the license is assigned to. |
Dependent item | meraki.license.device.name[{#LICENSE.ID}] Preprocessing
|
License [{#LICENSE.ID}]: key | License key. |
Dependent item | meraki.license.key[{#LICENSE.ID}] Preprocessing
|
License [{#LICENSE.ID}]: state | The state of the license. All queued licenses have a status of 'recently queued'. |
Dependent item | meraki.license.state[{#LICENSE.ID}] Preprocessing
|
LLD rule SAML roles discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
SAML roles discovery | Dependent item | meraki.saml.roles.discovery |
Item prototypes for SAML roles discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
SAML role [{#SAML.ROLE}]: get data | Raw data for SAML roles. |
Dependent item | meraki.saml.get[{#SAML.ID}] Preprocessing
|
SAML role [{#SAML.ROLE}]: organization access | The privilege of the SAML administrator in the organization. |
Dependent item | meraki.saml.org.access[{#SAML.ID}] Preprocessing
|
LLD rule Administrators discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Administrators discovery | Dependent item | meraki.admins.discovery |
Item prototypes for Administrators discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Admin [{#ADMIN.NAME}]: get data | Raw data for admin in this organization. |
Dependent item | meraki.admin.get[{#ADMIN.ID}] Preprocessing
|
Admin [{#ADMIN.NAME}]: account status | Status of the admin's account. |
Dependent item | meraki.admin.account.status[{#ADMIN.ID}] Preprocessing
|
Admin [{#ADMIN.NAME}]: authentication method | Admin's authentication method. |
Dependent item | meraki.admin.account.auth.method[{#ADMIN.ID}] Preprocessing
|
Admin [{#ADMIN.NAME}]: organization access | Admin's level of access to the organization. |
Dependent item | meraki.admin.account.org.access[{#ADMIN.ID}] Preprocessing
|
Admin [{#ADMIN.NAME}]: 2FA enabled | Indicates whether two-factor authentication is enabled. |
Dependent item | meraki.admin.account.two.factor.auth[{#ADMIN.ID}] Preprocessing
|
Cisco Meraki device by HTTP
Macros used
Name | Description | Default |
---|---|---|
{$MERAKI.TOKEN} | Cisco Meraki dashboard API token. |
|
{$MERAKI.API.URL} | Cisco Meraki dashboard API URL, e.g., api.meraki.com/api/v1 |
api.meraki.com/api/v1 |
{$MERAKI.DEVICE.LOSS} | Devices uplink loss threshold, in percent. |
15 |
{$MERAKI.DEVICE.LATENCY} | Devices uplink latency threshold, in seconds. |
0.15 |
{$MERAKI.GET.STATUS.INTERVAL} | Update interval for get status item. |
300 |
{$MERAKI.DATA.TIMEOUT} | Response timeout for an API. |
60 |
{$MERAKI.HTTP_PROXY} | HTTP proxy for API requests. You can specify it using the format [protocol://][username[:password]@]proxy.example.com[:port]. See documentation at https://www.zabbix.com/documentation/7.0/manual/config/items/itemtypes/http |
|
{$MERAKI.UPLINK.LL.TIMESPAN} | Timespan in seconds for getting device uplinks loss and quality stats. Used in the metric configuration and in the JavaScript API query. Must be between 1 and 86400 seconds. |
180 |
{$MERAKI.DEVICE.UPLINK.MATCHES} | This macro is used in loss and latency checks discovery. Can be overridden on the host or linked template level. |
.* |
{$MERAKI.DEVICE.UPLINK.NOT_MATCHES} | This macro is used in loss and latency checks discovery. Can be overridden on the host or linked template level. |
^null$ |
{$MERAKI.DEVICE.LOSS.LATENCY.IP.MATCHES} | This macro is used in loss and latency checks discovery. Can be overridden on the host or linked template level. |
^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$ |
{$MERAKI.DEVICE.LOSS.LATENCY.IP.NOT_MATCHES} | This macro is used in loss and latency checks discovery. Can be overridden on the host or linked template level. |
^null$ |
Items
Name | Description | Type | Key and additional info |
---|---|---|---|
Get device data | Item for gathering device data from Meraki API. |
Script | meraki.get.device |
Device data item errors | Item for gathering errors of the device item. |
Dependent item | meraki.get.device.errors Preprocessing
|
Get status | Item for gathering device status from Meraki API. |
HTTP agent | meraki.device.get.status Preprocessing
|
status | Device operational status Network: {$NETWORK.ID} MAC: {$MAC} |
Dependent item | meraki.device.status Preprocessing
|
public IP | Device public IP Network: {$NETWORK.ID} MAC: {$MAC} |
Dependent item | meraki.device.public.ip Preprocessing
|
Triggers
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Meraki: There are errors in 'Get device data' metric | length(last(/Cisco Meraki device by HTTP/meraki.get.device.errors))>0 |
Warning | ||
Meraki: Status is not online | last(/Cisco Meraki device by HTTP/meraki.device.status)<>1 |
Warning |
LLD rule Uplinks loss and quality discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Uplinks loss and quality discovery | Dependent item | meraki.device.uplinks.discovery Preprocessing
|
Item prototypes for Uplinks loss and quality discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Uplink [{#IP}]: [{#UPLINK}]: Loss, % | Loss percent of the device uplink. Network: {#NETWORK.ID}. Device serial: {#SERIAL}. |
Dependent item | meraki.device.loss.pct[{#IP},{#UPLINK}] Preprocessing
|
Uplink [{#IP}]: [{#UPLINK}]: Latency | Latency of the device uplink. Network: {#NETWORK.ID}. Device serial: {#SERIAL}. |
Dependent item | meraki.device.latency[{#IP},{#UPLINK}] Preprocessing
|
Trigger prototypes for Uplinks loss and quality discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Meraki: Uplink [{#IP}]: [{#UPLINK}]: loss > {$MERAKI.DEVICE.LOSS}% | min(/Cisco Meraki device by HTTP/meraki.device.loss.pct[{#IP},{#UPLINK}],#3)>{$MERAKI.DEVICE.LOSS} |
Warning | ||
Meraki: Uplink [{#IP}]: [{#UPLINK}]: latency > {$MERAKI.DEVICE.LATENCY} | min(/Cisco Meraki device by HTTP/meraki.device.latency[{#IP},{#UPLINK}],#3)>{$MERAKI.DEVICE.LATENCY} |
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