From df87caa88f19091a550b1220c70eecd8f956307f Mon Sep 17 00:00:00 2001 From: Patrice Gautier Date: Thu, 7 Oct 2021 17:27:53 -0700 Subject: [PATCH] Channel usage and interference are now discovered for active radios, 2G and 5G are automatically separated --- README.md | 13 ++ zbx_export_templates.json | 272 ++++++++++++++++++++++++++++++++++---- zbx_export_templates.xml | 272 ++++++++++++++++++++++++++++++++++---- zbx_export_templates.yaml | 219 ++++++++++++++++++++++++++---- 4 files changed, 704 insertions(+), 72 deletions(-) diff --git a/README.md b/README.md index 5e90a03..6d646b5 100644 --- a/README.md +++ b/README.md @@ -179,6 +179,19 @@ The load average value above which to issue a info. The consensus is 1 for this ### {$UNIFI_LOAD_AVERAGE_HIGH} The load average value above which to issue a warning. I have this set to 2. Note that for switches and APs this value has less meaning since they process packets with specialized HW and this macro is overridden in the template to avoid too many warnings +### {$UNIFI_CHANNEL_INTERFERENCE_INFO_THRESHOLD} +### {$UNIFI_CHANNEL_INTERFERENCE_INFO_THRESHOLD} +The percentages above which to issue and info/average event for channel interferences. I have this set to 30 and 50 respectively +You can customize this for 2G/5G with {$UNIFI_CHANNEL_INTERFERENCE_INFO_THRESHOLD:"ng"} or {$UNIFI_CHANNEL_INTERFERENCE_INFO_THRESHOLD:"na"} values + + +### {$UNIFI_CHANNEL_USAGE_INFO_THRESHOLD} +### {$UNIFI_CHANNEL_USAGE_AVERAGE_THRESHOLD} +The percentages above which to issue and info/average event for Channel usage. I have this set to 30 and 50 respectively +You can customize this for 2G/5G with {$UNIFI_CHANNEL_USAGE_INFO_THRESHOLD:"ng"} or {$UNIFI_USAGE_INTERFERENCE_INFO_THRESHOLD:"na"} values + + + # SUCCESS! diff --git a/zbx_export_templates.json b/zbx_export_templates.json index 4d59bff..1635fb2 100644 --- a/zbx_export_templates.json +++ b/zbx_export_templates.json @@ -1,7 +1,7 @@ { "zabbix_export": { "version": "5.4", - "date": "2021-10-01T20:15:14Z", + "date": "2021-10-08T00:25:24Z", "groups": [ { "uuid": "15155c95a3d048f4856272ae12fd42c5", @@ -942,6 +942,7 @@ "name": "2G Channel Interference", "type": "CALCULATED", "key": "2g_interference", + "status": "DISABLED", "units": "%", "params": "(last(//2g_interference_raw)>0)*last(//2g_interference_raw)", "tags": [ @@ -956,6 +957,7 @@ "name": "2G Channel Interference raw", "type": "CALCULATED", "key": "2g_interference_raw", + "status": "DISABLED", "units": "%", "params": "((last(//cu_total_2g)- last(//cu_self_tx_2g) - last(//cu_self_rx_2g))>0)*(last(//cu_total_2g)- last(//cu_self_tx_2g) - last(//cu_self_rx_2g))", "tags": [ @@ -969,6 +971,7 @@ "uuid": "cf75968434a1434d861b7b06a42f03fd", "expression": "avg(/Unifi AP/2g_interference_raw,{$UNIFI_ALERT_PERIOD})>50", "name": "{HOST.NAME} 2G Interference > 50%", + "status": "DISABLED", "priority": "AVERAGE", "manual_close": "YES" } @@ -979,6 +982,7 @@ "name": "2G Channel Interference Smooth", "type": "CALCULATED", "key": "2g_interference_smooth", + "status": "DISABLED", "value_type": "FLOAT", "units": "%", "params": "avg(//2g_interference,{$UNIFI_SMOOTHING_PERIOD})", @@ -994,6 +998,7 @@ "name": "5G Channel Interference", "type": "CALCULATED", "key": "5g_interference", + "status": "DISABLED", "units": "%", "params": "(last(//5g_interference_raw)>0)*last(//5g_interference_raw)", "tags": [ @@ -1008,6 +1013,7 @@ "name": "5G Channel Interference Raw", "type": "CALCULATED", "key": "5g_interference_raw", + "status": "DISABLED", "value_type": "FLOAT", "units": "%", "params": "last(//cu_total_5g) - last(//cu_self_rx_5g) - last(//cu_self_tx_5g)", @@ -1022,6 +1028,7 @@ "uuid": "c1fc0b2a82da4b4eb48105f385cfe730", "expression": "avg(/Unifi AP/5g_interference_raw,{$UNIFI_ALERT_PERIOD})>30", "name": "{HOST.NAME} 5G Interference > 30%", + "status": "DISABLED", "priority": "AVERAGE", "manual_close": "YES" } @@ -1032,6 +1039,7 @@ "name": "5G Channel Interference Smooth", "type": "CALCULATED", "key": "5g_interference_smooth", + "status": "DISABLED", "value_type": "FLOAT", "units": "%", "params": "avg(//5g_interference,{$UNIFI_SMOOTHING_PERIOD})", @@ -1088,6 +1096,7 @@ "name": "2G Channel Utilization Smooth", "type": "CALCULATED", "key": "cu_avg_5mn_2g", + "status": "DISABLED", "value_type": "FLOAT", "units": "%", "params": "avg(//cu_total_2g,{$UNIFI_SMOOTHING_PERIOD})", @@ -1103,6 +1112,7 @@ "name": "5G Channel Utilization Smooth", "type": "CALCULATED", "key": "cu_avg_5mn_5g", + "status": "DISABLED", "value_type": "FLOAT", "units": "%", "params": "avg(//cu_total_5g,{$UNIFI_SMOOTHING_PERIOD})", @@ -1119,6 +1129,7 @@ "type": "DEPENDENT", "key": "cu_self_rx_2g", "delay": "0", + "status": "DISABLED", "units": "%", "preprocessing": [ { @@ -1144,6 +1155,7 @@ "type": "DEPENDENT", "key": "cu_self_rx_5g", "delay": "0", + "status": "DISABLED", "units": "%", "preprocessing": [ { @@ -1169,6 +1181,7 @@ "type": "DEPENDENT", "key": "cu_self_tx_2g", "delay": "0", + "status": "DISABLED", "units": "%", "preprocessing": [ { @@ -1194,6 +1207,7 @@ "type": "DEPENDENT", "key": "cu_self_tx_5g", "delay": "0", + "status": "DISABLED", "units": "%", "preprocessing": [ { @@ -1219,6 +1233,7 @@ "type": "DEPENDENT", "key": "cu_total_2g", "delay": "0", + "status": "DISABLED", "units": "%", "preprocessing": [ { @@ -1242,6 +1257,7 @@ "uuid": "80b61c5fae364d7bb980798bd1c63a75", "expression": "avg(/Unifi AP/cu_total_2g,{$UNIFI_ALERT_PERIOD})>60", "name": "{HOST.NAME} 2G Channel Usage > 60%", + "status": "DISABLED", "priority": "INFO", "manual_close": "YES", "dependencies": [ @@ -1255,6 +1271,7 @@ "uuid": "594de384d46d456d8de6cd6c3fefcb48", "expression": "avg(/Unifi AP/cu_total_2g,{$UNIFI_ALERT_PERIOD})>80", "name": "{HOST.NAME} 2G Channel Usage > 80%", + "status": "DISABLED", "priority": "AVERAGE", "manual_close": "YES" } @@ -1266,6 +1283,7 @@ "type": "DEPENDENT", "key": "cu_total_5g", "delay": "0", + "status": "DISABLED", "units": "%", "preprocessing": [ { @@ -1289,6 +1307,7 @@ "uuid": "8da227da0b974562af1fa8a4f80f8a4e", "expression": "avg(/Unifi AP/cu_total_5g,{$UNIFI_ALERT_PERIOD})>60", "name": "{HOST.NAME} 5G Channel Usage > 60%", + "status": "DISABLED", "priority": "INFO", "manual_close": "YES", "dependencies": [ @@ -1302,6 +1321,7 @@ "uuid": "16dd939288264f70979aa7349ccf9202", "expression": "avg(/Unifi AP/cu_total_5g,{$UNIFI_ALERT_PERIOD})>80", "name": "{HOST.NAME} 5G Channel Usage > 80%", + "status": "DISABLED", "priority": "AVERAGE", "manual_close": "YES" } @@ -1442,6 +1462,7 @@ "type": "DEPENDENT", "key": "n_tx_xretries_2g", "delay": "0", + "status": "DISABLED", "preprocessing": [ { "type": "JSONPATH", @@ -1472,6 +1493,7 @@ "type": "DEPENDENT", "key": "n_tx_xretries_5g", "delay": "0", + "status": "DISABLED", "preprocessing": [ { "type": "JSONPATH", @@ -1717,6 +1739,200 @@ } ], "discovery_rules": [ + { + "uuid": "6e857bdd5a674e4e8be70b0e01d00d1a", + "name": "Active Radio Discovery", + "type": "DEPENDENT", + "key": "active_radio_discovery", + "delay": "0", + "description": "List all active radios to create channel items", + "item_prototypes": [ + { + "uuid": "f35732598f6f4aed84477b0932b496cb", + "name": "Channel Interference {#RADIO_NAME}", + "type": "CALCULATED", + "key": "cint[{#RADIO_NAME}]", + "units": "%", + "params": "((last( //cu_total[{#RADIO_NAME}] )- last( //cu_tx[{#RADIO_NAME}])-last(//cu_rx[{#RADIO_NAME}]))>0)*(last( //cu_total[{#RADIO_NAME}] )- last( //cu_tx[{#RADIO_NAME}])-last(//cu_rx[{#RADIO_NAME}]))", + "tags": [ + { + "tag": "Application", + "value": "Radio" + } + ], + "trigger_prototypes": [ + { + "uuid": "3f72d760eb204eceafe82682fbda16a5", + "expression": "avg(/Unifi AP/cint[{#RADIO_NAME}],{$UNIFI_ALERT_PERIOD})>{$UNIFI_CHANNEL_INTERFERENCE_AVERAGE_THRESHOLD:\"{#RADIO_NAME}\"}", + "name": "{HOST.NAME} {#RADIO_NAME} Channel Interference > {$UNIFI_CHANNEL_INTERFERENCE_AVERAGE_THRESHOLD:\"{#RADIO_NAME}\"}%", + "opdata": "{$UNIFI_CHANNEL_INTERFERENCE_INFO_THRESHOLD:\"{#RADIO_NAME\"}", + "priority": "AVERAGE", + "manual_close": "YES" + }, + { + "uuid": "e774c76335834241b15c4e203889e7e0", + "expression": "avg(/Unifi AP/cint[{#RADIO_NAME}],{$UNIFI_ALERT_PERIOD})>{$UNIFI_CHANNEL_INTERFERENCE_INFO_THRESHOLD:\"{#RADIO_NAME\"}", + "name": "{HOST.NAME} {#RADIO_NAME} Channel Interference > {$UNIFI_CHANNEL_INTERFERENCE_INFO_THRESHOLD:\"{#RADIO_NAME}\"}%", + "opdata": "{$UNIFI_CHANNEL_INTERFERENCE_INFO_THRESHOLD:\"{#RADIO_NAME\"}", + "priority": "INFO", + "manual_close": "YES", + "dependencies": [ + { + "name": "{HOST.NAME} {#RADIO_NAME} Channel Interference > {$UNIFI_CHANNEL_INTERFERENCE_AVERAGE_THRESHOLD:\"{#RADIO_NAME}\"}%", + "expression": "avg(/Unifi AP/cint[{#RADIO_NAME}],{$UNIFI_ALERT_PERIOD})>{$UNIFI_CHANNEL_INTERFERENCE_AVERAGE_THRESHOLD:\"{#RADIO_NAME}\"}" + } + ] + } + ] + }, + { + "uuid": "60ae3f2aea144c1bb42780bc424d7184", + "name": "Channel Reception Utilization {#RADIO_NAME}", + "type": "DEPENDENT", + "key": "cu_rx[{#RADIO_NAME}]", + "delay": "0", + "units": "%", + "preprocessing": [ + { + "type": "JSONPATH", + "parameters": [ + "$.radio_table[?(@.radio == '{#RADIO_NAME}')].athstats.cu_self_rx.first()" + ] + } + ], + "master_item": { + "key": "mca-dump-short.sh[\"-d\",\"{HOST.CONN}\", \"-u\", \"{$UNIFI_USER}\", \"-i\", \"{$UNIFI_SSH_PRIV_KEY_PATH}\", \"-t\", \"AP\"]" + }, + "tags": [ + { + "tag": "Application", + "value": "Radio" + } + ] + }, + { + "uuid": "466eee19400040749764a086133c4342", + "name": "Channel Total Utilization {#RADIO_NAME}", + "type": "DEPENDENT", + "key": "cu_total[{#RADIO_NAME}]", + "delay": "0", + "units": "%", + "preprocessing": [ + { + "type": "JSONPATH", + "parameters": [ + "$.radio_table[?(@.radio == '{#RADIO_NAME}')].athstats.cu_total.first()" + ] + } + ], + "master_item": { + "key": "mca-dump-short.sh[\"-d\",\"{HOST.CONN}\", \"-u\", \"{$UNIFI_USER}\", \"-i\", \"{$UNIFI_SSH_PRIV_KEY_PATH}\", \"-t\", \"AP\"]" + }, + "tags": [ + { + "tag": "Application", + "value": "Radio" + } + ], + "trigger_prototypes": [ + { + "uuid": "9047af0eb978454aab5768341986f29b", + "expression": "avg(/Unifi AP/cu_total[{#RADIO_NAME}],{$UNIFI_ALERT_PERIOD})>{$UNIFI_CHANNEL_USAGE_AVERAGE_THRESHOLD:\"{#RADIO_NAME\"}", + "name": "{HOST.NAME} {#RADIO_NAME} Channel Utilization > {$UNIFI_CHANNEL_USAGE_AVERAGE_THRESHOLD:\"{#RADIO_NAME}\"}%", + "opdata": "{$UNIFI_CHANNEL_USAGE_INFO_THRESHOLD:\"{#RADIO_NAME}\"", + "priority": "AVERAGE", + "manual_close": "YES" + }, + { + "uuid": "69372713ad284b79a905f5942c321b55", + "expression": "avg(/Unifi AP/cu_total[{#RADIO_NAME}],{$UNIFI_ALERT_PERIOD})>{$UNIFI_CHANNEL_USAGE_INFO_THRESHOLD:\"{#RADIO_NAME}\"}", + "name": "{HOST.NAME} {#RADIO_NAME} Channel Utilization > {$UNIFI_CHANNEL_USAGE_INFO_THRESHOLD:\"{#RADIO_NAME}\"}%", + "opdata": "{$UNIFI_CHANNEL_USAGE_INFO_THRESHOLD:\"{#RADIO_NAME}\"", + "priority": "INFO", + "manual_close": "YES", + "dependencies": [ + { + "name": "{HOST.NAME} {#RADIO_NAME} Channel Utilization > {$UNIFI_CHANNEL_USAGE_AVERAGE_THRESHOLD:\"{#RADIO_NAME}\"}%", + "expression": "avg(/Unifi AP/cu_total[{#RADIO_NAME}],{$UNIFI_ALERT_PERIOD})>{$UNIFI_CHANNEL_USAGE_AVERAGE_THRESHOLD:\"{#RADIO_NAME\"}" + } + ] + } + ] + }, + { + "uuid": "11b74b119dea413ea1152b15a8e3eacb", + "name": "Channel Transmission Utilization {#RADIO_NAME}", + "type": "DEPENDENT", + "key": "cu_tx[{#RADIO_NAME}]", + "delay": "0", + "units": "%", + "preprocessing": [ + { + "type": "JSONPATH", + "parameters": [ + "$.radio_table[?(@.radio == '{#RADIO_NAME}')].athstats.cu_self_tx.first()" + ] + } + ], + "master_item": { + "key": "mca-dump-short.sh[\"-d\",\"{HOST.CONN}\", \"-u\", \"{$UNIFI_USER}\", \"-i\", \"{$UNIFI_SSH_PRIV_KEY_PATH}\", \"-t\", \"AP\"]" + }, + "tags": [ + { + "tag": "Application", + "value": "Radio" + } + ] + }, + { + "uuid": "13bbc5518393491eb303198385799fbf", + "name": "Channel Retries {#RADIO_NAME}", + "type": "DEPENDENT", + "key": "retries[{#RADIO_NAME}]", + "delay": "0", + "preprocessing": [ + { + "type": "JSONPATH", + "parameters": [ + "$.radio_table[?(@.radio == '{#RADIO_NAME}')].athstats.n_tx_xretries.first()" + ] + }, + { + "type": "SIMPLE_CHANGE", + "parameters": [ + "" + ] + } + ], + "master_item": { + "key": "mca-dump-short.sh[\"-d\",\"{HOST.CONN}\", \"-u\", \"{$UNIFI_USER}\", \"-i\", \"{$UNIFI_SSH_PRIV_KEY_PATH}\", \"-t\", \"AP\"]" + }, + "tags": [ + { + "tag": "Application", + "value": "Radio" + } + ] + } + ], + "master_item": { + "key": "mca-dump-short.sh[\"-d\",\"{HOST.CONN}\", \"-u\", \"{$UNIFI_USER}\", \"-i\", \"{$UNIFI_SSH_PRIV_KEY_PATH}\", \"-t\", \"AP\"]" + }, + "lld_macro_paths": [ + { + "lld_macro": "{#RADIO_NAME}", + "path": "$.radio" + } + ], + "preprocessing": [ + { + "type": "JSONPATH", + "parameters": [ + "$.radio_table[?(@.athstats.cu_total >0)]" + ] + } + ] + }, { "uuid": "90e43b647faa4a6fa7af643960bcf0a5", "name": "Wifi Network Discovery", @@ -1727,16 +1943,16 @@ "item_prototypes": [ { "uuid": "99af4e53516341b1b4e40d814fe7a258", - "name": "{#ESSID} Rx Bandwidth", + "name": "{#ESSID}-{#RADIO_NAME} Rx Bandwidth", "type": "DEPENDENT", - "key": "rx_bandwidth[{#ESSID}]", + "key": "rx_bandwidth[{#ESSID}-{#RADIO_NAME}]", "delay": "0", "units": "bps", "preprocessing": [ { "type": "JSONPATH", "parameters": [ - "$.vap_table.[ ?(@.essid == '{#ESSID}' ) ].rx_bytes.sum()" + "$.vap_table.[ ?(@.essid == '{#ESSID}' && @.radio == '{#RADIO_NAME}' ) ].rx_bytes.sum()" ] }, { @@ -1764,12 +1980,12 @@ }, { "uuid": "3748f96463d74affa9340b398c34f1a0", - "name": "{#ESSID} Reception Bandwidth Smooth", + "name": "{#ESSID}-{#RADIO_NAME} Reception Bandwidth Smooth", "type": "CALCULATED", - "key": "rx_bandwidth_smooth[{#ESSID}]", + "key": "rx_bandwidth_smooth[{#ESSID}-{#RADIO_NAME}]", "value_type": "FLOAT", "units": "bps", - "params": "avg(//rx_bandwidth[{#ESSID}],{$UNIFI_SMOOTHING_PERIOD})", + "params": "avg(//rx_bandwidth[{#ESSID}-{#RADIO_NAME}],{$UNIFI_SMOOTHING_PERIOD})", "tags": [ { "tag": "Application", @@ -1779,16 +1995,16 @@ }, { "uuid": "b18528ee504149118ecc6aac93c51135", - "name": "{#ESSID} Tx Bandwidth", + "name": "{#ESSID}-{#RADIO_NAME} Tx Bandwidth", "type": "DEPENDENT", - "key": "tx_bandwidth[{#ESSID}]", + "key": "tx_bandwidth[{#ESSID}-{#RADIO_NAME}]", "delay": "0", "units": "bps", "preprocessing": [ { "type": "JSONPATH", "parameters": [ - "$.vap_table.[ ?(@.essid == \"{#ESSID}\") ].tx_bytes.sum()" + "$.vap_table.[ ?(@.essid == \"{#ESSID}\" && @.radio == \"{#RADIO_NAME}\") ].tx_bytes.sum()" ] }, { @@ -1816,12 +2032,12 @@ }, { "uuid": "ec606cedd02f45518d7a0c030b25849e", - "name": "{#ESSID} Transmission Bandwidth Smooth", + "name": "{#ESSID}-{#RADIO_NAME} Transmission Bandwidth Smooth", "type": "CALCULATED", - "key": "tx_bandwidth_smooth[{#ESSID}]", + "key": "tx_bandwidth_smooth[{#ESSID}-{#RADIO_NAME}]", "value_type": "FLOAT", "units": "bps", - "params": "avg(//tx_bandwidth[{#ESSID}],{$UNIFI_SMOOTHING_PERIOD})", + "params": "avg(//tx_bandwidth[{#ESSID}-{#RADIO_NAME}],{$UNIFI_SMOOTHING_PERIOD})", "tags": [ { "tag": "Application", @@ -1833,14 +2049,14 @@ "graph_prototypes": [ { "uuid": "27c2c173f4d24b48b7341f0762c727a4", - "name": "{#ESSID} Bandwidth", + "name": "{#ESSID}-{#RADIO_NAME} Bandwidth", "graph_items": [ { "sortorder": "1", "color": "1A7C11", "item": { "host": "Unifi AP", - "key": "rx_bandwidth[{#ESSID}]" + "key": "rx_bandwidth[{#ESSID}-{#RADIO_NAME}]" } }, { @@ -1848,7 +2064,7 @@ "color": "F63100", "item": { "host": "Unifi AP", - "key": "tx_bandwidth[{#ESSID}]" + "key": "tx_bandwidth[{#ESSID}-{#RADIO_NAME}]" } } ] @@ -1861,6 +2077,10 @@ { "lld_macro": "{#ESSID}", "path": "$.essid" + }, + { + "lld_macro": "{#RADIO_NAME}", + "path": "$.radio" } ], "preprocessing": [ @@ -6246,12 +6466,12 @@ "item_prototypes": [ { "uuid": "460c978a4cfb40b1930c4a47dac748e9", - "name": "{#ESSID} Total Reception Bandwidth", + "name": "{#ESSID}-{#RADIO_NAME} Total Reception Bandwidth", "type": "CALCULATED", - "key": "grpsum[\"{$AP_GROUP}\", \"rx_bandwidth[{#ESSID}]\", avg, {$UNIFI_SMOOTHING_PERIOD}]", + "key": "grpsum[\"{$AP_GROUP}\", \"rx_bandwidth[{#ESSID}-{#RADIO_NAME}]\", avg, {$UNIFI_SMOOTHING_PERIOD}]", "value_type": "FLOAT", "units": "bps", - "params": "sum(avg_foreach(/*/rx_bandwidth[{#ESSID}]?[group=\"{$AP_GROUP}\"],{$UNIFI_SMOOTHING_PERIOD}))", + "params": "sum(avg_foreach(/*/rx_bandwidth[{#ESSID}-{#RADIO_NAME}]?[group=\"{$AP_GROUP}\"],{$UNIFI_SMOOTHING_PERIOD}))", "tags": [ { "tag": "Application", @@ -6261,12 +6481,12 @@ }, { "uuid": "c91e55731b9d4dae8fb3d5d1ab8e1cb0", - "name": "{#ESSID} Total Transmission Bandwidth", + "name": "{#ESSID}-{#RADIO_NAME} Total Transmission Bandwidth", "type": "CALCULATED", - "key": "grpsum[\"{$AP_GROUP}\", \"tx_bandwidth[{#ESSID}]\", avg, \"{$UNIFI_SMOOTHING_PERIOD}\"]", + "key": "grpsum[\"{$AP_GROUP}\", \"tx_bandwidth[{#ESSID}-{#RADIO_NAME}]\", avg, \"{$UNIFI_SMOOTHING_PERIOD}\"]", "value_type": "FLOAT", "units": "bps", - "params": "sum(avg_foreach(/*/tx_bandwidth[{#ESSID}]?[group=\"{$AP_GROUP}\"],{$UNIFI_SMOOTHING_PERIOD}))", + "params": "sum(avg_foreach(/*/tx_bandwidth[{#ESSID}-{#RADIO_NAME}]?[group=\"{$AP_GROUP}\"],{$UNIFI_SMOOTHING_PERIOD}))", "tags": [ { "tag": "Application", @@ -6285,7 +6505,7 @@ "color": "1A7C11", "item": { "host": "Unifi WiFi Site", - "key": "grpsum[\"{$AP_GROUP}\", \"rx_bandwidth[{#ESSID}]\", avg, {$UNIFI_SMOOTHING_PERIOD}]" + "key": "grpsum[\"{$AP_GROUP}\", \"rx_bandwidth[{#ESSID}-{#RADIO_NAME}]\", avg, {$UNIFI_SMOOTHING_PERIOD}]" } }, { @@ -6293,7 +6513,7 @@ "color": "F63100", "item": { "host": "Unifi WiFi Site", - "key": "grpsum[\"{$AP_GROUP}\", \"tx_bandwidth[{#ESSID}]\", avg, \"{$UNIFI_SMOOTHING_PERIOD}\"]" + "key": "grpsum[\"{$AP_GROUP}\", \"tx_bandwidth[{#ESSID}-{#RADIO_NAME}]\", avg, \"{$UNIFI_SMOOTHING_PERIOD}\"]" } } ] @@ -6306,6 +6526,10 @@ { "lld_macro": "{#ESSID}", "path": "$.essid" + }, + { + "lld_macro": "{#RADIO_NAME}", + "path": "$.radio" } ], "preprocessing": [ diff --git a/zbx_export_templates.xml b/zbx_export_templates.xml index 1e2a929..33c7af1 100644 --- a/zbx_export_templates.xml +++ b/zbx_export_templates.xml @@ -1,7 +1,7 @@ 5.4 - 2021-10-01T20:15:12Z + 2021-10-08T00:25:22Z 15155c95a3d048f4856272ae12fd42c5 @@ -944,6 +944,7 @@ Assign this template to all APs in your site 2G Channel Interference CALCULATED 2g_interference + DISABLED % (last(//2g_interference_raw)>0)*last(//2g_interference_raw) @@ -958,6 +959,7 @@ Assign this template to all APs in your site 2G Channel Interference raw CALCULATED 2g_interference_raw + DISABLED % ((last(//cu_total_2g)- last(//cu_self_tx_2g) - last(//cu_self_rx_2g))>0)*(last(//cu_total_2g)- last(//cu_self_tx_2g) - last(//cu_self_rx_2g)) @@ -971,6 +973,7 @@ Assign this template to all APs in your site cf75968434a1434d861b7b06a42f03fd avg(/Unifi AP/2g_interference_raw,{$UNIFI_ALERT_PERIOD})>50 {HOST.NAME} 2G Interference > 50% + DISABLED AVERAGE YES @@ -981,6 +984,7 @@ Assign this template to all APs in your site 2G Channel Interference Smooth CALCULATED 2g_interference_smooth + DISABLED FLOAT % avg(//2g_interference,{$UNIFI_SMOOTHING_PERIOD}) @@ -996,6 +1000,7 @@ Assign this template to all APs in your site 5G Channel Interference CALCULATED 5g_interference + DISABLED % (last(//5g_interference_raw)>0)*last(//5g_interference_raw) @@ -1010,6 +1015,7 @@ Assign this template to all APs in your site 5G Channel Interference Raw CALCULATED 5g_interference_raw + DISABLED FLOAT % last(//cu_total_5g) - last(//cu_self_rx_5g) - last(//cu_self_tx_5g) @@ -1024,6 +1030,7 @@ Assign this template to all APs in your site c1fc0b2a82da4b4eb48105f385cfe730 avg(/Unifi AP/5g_interference_raw,{$UNIFI_ALERT_PERIOD})>30 {HOST.NAME} 5G Interference > 30% + DISABLED AVERAGE YES @@ -1034,6 +1041,7 @@ Assign this template to all APs in your site 5G Channel Interference Smooth CALCULATED 5g_interference_smooth + DISABLED FLOAT % avg(//5g_interference,{$UNIFI_SMOOTHING_PERIOD}) @@ -1090,6 +1098,7 @@ Assign this template to all APs in your site 2G Channel Utilization Smooth CALCULATED cu_avg_5mn_2g + DISABLED FLOAT % avg(//cu_total_2g,{$UNIFI_SMOOTHING_PERIOD}) @@ -1105,6 +1114,7 @@ Assign this template to all APs in your site 5G Channel Utilization Smooth CALCULATED cu_avg_5mn_5g + DISABLED FLOAT % avg(//cu_total_5g,{$UNIFI_SMOOTHING_PERIOD}) @@ -1121,6 +1131,7 @@ Assign this template to all APs in your site DEPENDENT cu_self_rx_2g 0 + DISABLED % @@ -1146,6 +1157,7 @@ Assign this template to all APs in your site DEPENDENT cu_self_rx_5g 0 + DISABLED % @@ -1171,6 +1183,7 @@ Assign this template to all APs in your site DEPENDENT cu_self_tx_2g 0 + DISABLED % @@ -1196,6 +1209,7 @@ Assign this template to all APs in your site DEPENDENT cu_self_tx_5g 0 + DISABLED % @@ -1221,6 +1235,7 @@ Assign this template to all APs in your site DEPENDENT cu_total_2g 0 + DISABLED % @@ -1244,6 +1259,7 @@ Assign this template to all APs in your site 80b61c5fae364d7bb980798bd1c63a75 avg(/Unifi AP/cu_total_2g,{$UNIFI_ALERT_PERIOD})>60 {HOST.NAME} 2G Channel Usage > 60% + DISABLED INFO YES @@ -1257,6 +1273,7 @@ Assign this template to all APs in your site 594de384d46d456d8de6cd6c3fefcb48 avg(/Unifi AP/cu_total_2g,{$UNIFI_ALERT_PERIOD})>80 {HOST.NAME} 2G Channel Usage > 80% + DISABLED AVERAGE YES @@ -1268,6 +1285,7 @@ Assign this template to all APs in your site DEPENDENT cu_total_5g 0 + DISABLED % @@ -1291,6 +1309,7 @@ Assign this template to all APs in your site 8da227da0b974562af1fa8a4f80f8a4e avg(/Unifi AP/cu_total_5g,{$UNIFI_ALERT_PERIOD})>60 {HOST.NAME} 5G Channel Usage > 60% + DISABLED INFO YES @@ -1304,6 +1323,7 @@ Assign this template to all APs in your site 16dd939288264f70979aa7349ccf9202 avg(/Unifi AP/cu_total_5g,{$UNIFI_ALERT_PERIOD})>80 {HOST.NAME} 5G Channel Usage > 80% + DISABLED AVERAGE YES @@ -1444,6 +1464,7 @@ Assign this template to all APs in your site DEPENDENT n_tx_xretries_2g 0 + DISABLED JSONPATH @@ -1474,6 +1495,7 @@ Assign this template to all APs in your site DEPENDENT n_tx_xretries_5g 0 + DISABLED JSONPATH @@ -1719,6 +1741,200 @@ Assign this template to all APs in your site + + 6e857bdd5a674e4e8be70b0e01d00d1a + Active Radio Discovery + DEPENDENT + active_radio_discovery + 0 + List all active radios to create channel items + + + f35732598f6f4aed84477b0932b496cb + Channel Interference {#RADIO_NAME} + CALCULATED + cint[{#RADIO_NAME}] + % + ((last( //cu_total[{#RADIO_NAME}] )- last( //cu_tx[{#RADIO_NAME}])-last(//cu_rx[{#RADIO_NAME}]))>0)*(last( //cu_total[{#RADIO_NAME}] )- last( //cu_tx[{#RADIO_NAME}])-last(//cu_rx[{#RADIO_NAME}])) + + + Application + Radio + + + + + 3f72d760eb204eceafe82682fbda16a5 + avg(/Unifi AP/cint[{#RADIO_NAME}],{$UNIFI_ALERT_PERIOD})>{$UNIFI_CHANNEL_INTERFERENCE_AVERAGE_THRESHOLD:"{#RADIO_NAME}"} + {HOST.NAME} {#RADIO_NAME} Channel Interference > {$UNIFI_CHANNEL_INTERFERENCE_AVERAGE_THRESHOLD:"{#RADIO_NAME}"}% + {$UNIFI_CHANNEL_INTERFERENCE_INFO_THRESHOLD:"{#RADIO_NAME"} + AVERAGE + YES + + + e774c76335834241b15c4e203889e7e0 + avg(/Unifi AP/cint[{#RADIO_NAME}],{$UNIFI_ALERT_PERIOD})>{$UNIFI_CHANNEL_INTERFERENCE_INFO_THRESHOLD:"{#RADIO_NAME"} + {HOST.NAME} {#RADIO_NAME} Channel Interference > {$UNIFI_CHANNEL_INTERFERENCE_INFO_THRESHOLD:"{#RADIO_NAME}"}% + {$UNIFI_CHANNEL_INTERFERENCE_INFO_THRESHOLD:"{#RADIO_NAME"} + INFO + YES + + + {HOST.NAME} {#RADIO_NAME} Channel Interference > {$UNIFI_CHANNEL_INTERFERENCE_AVERAGE_THRESHOLD:"{#RADIO_NAME}"}% + avg(/Unifi AP/cint[{#RADIO_NAME}],{$UNIFI_ALERT_PERIOD})>{$UNIFI_CHANNEL_INTERFERENCE_AVERAGE_THRESHOLD:"{#RADIO_NAME}"} + + + + + + + 60ae3f2aea144c1bb42780bc424d7184 + Channel Reception Utilization {#RADIO_NAME} + DEPENDENT + cu_rx[{#RADIO_NAME}] + 0 + % + + + JSONPATH + + $.radio_table[?(@.radio == '{#RADIO_NAME}')].athstats.cu_self_rx.first() + + + + + mca-dump-short.sh["-d","{HOST.CONN}", "-u", "{$UNIFI_USER}", "-i", "{$UNIFI_SSH_PRIV_KEY_PATH}", "-t", "AP"] + + + + Application + Radio + + + + + 466eee19400040749764a086133c4342 + Channel Total Utilization {#RADIO_NAME} + DEPENDENT + cu_total[{#RADIO_NAME}] + 0 + % + + + JSONPATH + + $.radio_table[?(@.radio == '{#RADIO_NAME}')].athstats.cu_total.first() + + + + + mca-dump-short.sh["-d","{HOST.CONN}", "-u", "{$UNIFI_USER}", "-i", "{$UNIFI_SSH_PRIV_KEY_PATH}", "-t", "AP"] + + + + Application + Radio + + + + + 9047af0eb978454aab5768341986f29b + avg(/Unifi AP/cu_total[{#RADIO_NAME}],{$UNIFI_ALERT_PERIOD})>{$UNIFI_CHANNEL_USAGE_AVERAGE_THRESHOLD:"{#RADIO_NAME"} + {HOST.NAME} {#RADIO_NAME} Channel Utilization > {$UNIFI_CHANNEL_USAGE_AVERAGE_THRESHOLD:"{#RADIO_NAME}"}% + {$UNIFI_CHANNEL_USAGE_INFO_THRESHOLD:"{#RADIO_NAME}" + AVERAGE + YES + + + 69372713ad284b79a905f5942c321b55 + avg(/Unifi AP/cu_total[{#RADIO_NAME}],{$UNIFI_ALERT_PERIOD})>{$UNIFI_CHANNEL_USAGE_INFO_THRESHOLD:"{#RADIO_NAME}"} + {HOST.NAME} {#RADIO_NAME} Channel Utilization > {$UNIFI_CHANNEL_USAGE_INFO_THRESHOLD:"{#RADIO_NAME}"}% + {$UNIFI_CHANNEL_USAGE_INFO_THRESHOLD:"{#RADIO_NAME}" + INFO + YES + + + {HOST.NAME} {#RADIO_NAME} Channel Utilization > {$UNIFI_CHANNEL_USAGE_AVERAGE_THRESHOLD:"{#RADIO_NAME}"}% + avg(/Unifi AP/cu_total[{#RADIO_NAME}],{$UNIFI_ALERT_PERIOD})>{$UNIFI_CHANNEL_USAGE_AVERAGE_THRESHOLD:"{#RADIO_NAME"} + + + + + + + 11b74b119dea413ea1152b15a8e3eacb + Channel Transmission Utilization {#RADIO_NAME} + DEPENDENT + cu_tx[{#RADIO_NAME}] + 0 + % + + + JSONPATH + + $.radio_table[?(@.radio == '{#RADIO_NAME}')].athstats.cu_self_tx.first() + + + + + mca-dump-short.sh["-d","{HOST.CONN}", "-u", "{$UNIFI_USER}", "-i", "{$UNIFI_SSH_PRIV_KEY_PATH}", "-t", "AP"] + + + + Application + Radio + + + + + 13bbc5518393491eb303198385799fbf + Channel Retries {#RADIO_NAME} + DEPENDENT + retries[{#RADIO_NAME}] + 0 + + + JSONPATH + + $.radio_table[?(@.radio == '{#RADIO_NAME}')].athstats.n_tx_xretries.first() + + + + SIMPLE_CHANGE + + + + + + + mca-dump-short.sh["-d","{HOST.CONN}", "-u", "{$UNIFI_USER}", "-i", "{$UNIFI_SSH_PRIV_KEY_PATH}", "-t", "AP"] + + + + Application + Radio + + + + + + mca-dump-short.sh["-d","{HOST.CONN}", "-u", "{$UNIFI_USER}", "-i", "{$UNIFI_SSH_PRIV_KEY_PATH}", "-t", "AP"] + + + + {#RADIO_NAME} + $.radio + + + + + JSONPATH + + $.radio_table[?(@.athstats.cu_total >0)] + + + + 90e43b647faa4a6fa7af643960bcf0a5 Wifi Network Discovery @@ -1729,16 +1945,16 @@ Assign this template to all APs in your site 99af4e53516341b1b4e40d814fe7a258 - {#ESSID} Rx Bandwidth + {#ESSID}-{#RADIO_NAME} Rx Bandwidth DEPENDENT - rx_bandwidth[{#ESSID}] + rx_bandwidth[{#ESSID}-{#RADIO_NAME}] 0 bps JSONPATH - $.vap_table.[ ?(@.essid == '{#ESSID}' ) ].rx_bytes.sum() + $.vap_table.[ ?(@.essid == '{#ESSID}' && @.radio == '{#RADIO_NAME}' ) ].rx_bytes.sum() @@ -1766,12 +1982,12 @@ Assign this template to all APs in your site 3748f96463d74affa9340b398c34f1a0 - {#ESSID} Reception Bandwidth Smooth + {#ESSID}-{#RADIO_NAME} Reception Bandwidth Smooth CALCULATED - rx_bandwidth_smooth[{#ESSID}] + rx_bandwidth_smooth[{#ESSID}-{#RADIO_NAME}] FLOAT bps - avg(//rx_bandwidth[{#ESSID}],{$UNIFI_SMOOTHING_PERIOD}) + avg(//rx_bandwidth[{#ESSID}-{#RADIO_NAME}],{$UNIFI_SMOOTHING_PERIOD}) Application @@ -1781,16 +1997,16 @@ Assign this template to all APs in your site b18528ee504149118ecc6aac93c51135 - {#ESSID} Tx Bandwidth + {#ESSID}-{#RADIO_NAME} Tx Bandwidth DEPENDENT - tx_bandwidth[{#ESSID}] + tx_bandwidth[{#ESSID}-{#RADIO_NAME}] 0 bps JSONPATH - $.vap_table.[ ?(@.essid == "{#ESSID}") ].tx_bytes.sum() + $.vap_table.[ ?(@.essid == "{#ESSID}" && @.radio == "{#RADIO_NAME}") ].tx_bytes.sum() @@ -1818,12 +2034,12 @@ Assign this template to all APs in your site ec606cedd02f45518d7a0c030b25849e - {#ESSID} Transmission Bandwidth Smooth + {#ESSID}-{#RADIO_NAME} Transmission Bandwidth Smooth CALCULATED - tx_bandwidth_smooth[{#ESSID}] + tx_bandwidth_smooth[{#ESSID}-{#RADIO_NAME}] FLOAT bps - avg(//tx_bandwidth[{#ESSID}],{$UNIFI_SMOOTHING_PERIOD}) + avg(//tx_bandwidth[{#ESSID}-{#RADIO_NAME}],{$UNIFI_SMOOTHING_PERIOD}) Application @@ -1835,14 +2051,14 @@ Assign this template to all APs in your site 27c2c173f4d24b48b7341f0762c727a4 - {#ESSID} Bandwidth + {#ESSID}-{#RADIO_NAME} Bandwidth 1 1A7C11 Unifi AP - rx_bandwidth[{#ESSID}] + rx_bandwidth[{#ESSID}-{#RADIO_NAME}] @@ -1850,7 +2066,7 @@ Assign this template to all APs in your site F63100 Unifi AP - tx_bandwidth[{#ESSID}] + tx_bandwidth[{#ESSID}-{#RADIO_NAME}] @@ -1864,6 +2080,10 @@ Assign this template to all APs in your site {#ESSID} $.essid + + {#RADIO_NAME} + $.radio + @@ -6277,12 +6497,12 @@ Additionally,. this will fill the OS version and the MAC address in the inventor 460c978a4cfb40b1930c4a47dac748e9 - {#ESSID} Total Reception Bandwidth + {#ESSID}-{#RADIO_NAME} Total Reception Bandwidth CALCULATED - grpsum["{$AP_GROUP}", "rx_bandwidth[{#ESSID}]", avg, {$UNIFI_SMOOTHING_PERIOD}] + grpsum["{$AP_GROUP}", "rx_bandwidth[{#ESSID}-{#RADIO_NAME}]", avg, {$UNIFI_SMOOTHING_PERIOD}] FLOAT bps - sum(avg_foreach(/*/rx_bandwidth[{#ESSID}]?[group="{$AP_GROUP}"],{$UNIFI_SMOOTHING_PERIOD})) + sum(avg_foreach(/*/rx_bandwidth[{#ESSID}-{#RADIO_NAME}]?[group="{$AP_GROUP}"],{$UNIFI_SMOOTHING_PERIOD})) Application @@ -6292,12 +6512,12 @@ Additionally,. this will fill the OS version and the MAC address in the inventor c91e55731b9d4dae8fb3d5d1ab8e1cb0 - {#ESSID} Total Transmission Bandwidth + {#ESSID}-{#RADIO_NAME} Total Transmission Bandwidth CALCULATED - grpsum["{$AP_GROUP}", "tx_bandwidth[{#ESSID}]", avg, "{$UNIFI_SMOOTHING_PERIOD}"] + grpsum["{$AP_GROUP}", "tx_bandwidth[{#ESSID}-{#RADIO_NAME}]", avg, "{$UNIFI_SMOOTHING_PERIOD}"] FLOAT bps - sum(avg_foreach(/*/tx_bandwidth[{#ESSID}]?[group="{$AP_GROUP}"],{$UNIFI_SMOOTHING_PERIOD})) + sum(avg_foreach(/*/tx_bandwidth[{#ESSID}-{#RADIO_NAME}]?[group="{$AP_GROUP}"],{$UNIFI_SMOOTHING_PERIOD})) Application @@ -6316,7 +6536,7 @@ Additionally,. this will fill the OS version and the MAC address in the inventor 1A7C11 Unifi WiFi Site - grpsum["{$AP_GROUP}", "rx_bandwidth[{#ESSID}]", avg, {$UNIFI_SMOOTHING_PERIOD}] + grpsum["{$AP_GROUP}", "rx_bandwidth[{#ESSID}-{#RADIO_NAME}]", avg, {$UNIFI_SMOOTHING_PERIOD}] @@ -6324,7 +6544,7 @@ Additionally,. this will fill the OS version and the MAC address in the inventor F63100 Unifi WiFi Site - grpsum["{$AP_GROUP}", "tx_bandwidth[{#ESSID}]", avg, "{$UNIFI_SMOOTHING_PERIOD}"] + grpsum["{$AP_GROUP}", "tx_bandwidth[{#ESSID}-{#RADIO_NAME}]", avg, "{$UNIFI_SMOOTHING_PERIOD}"] @@ -6338,6 +6558,10 @@ Additionally,. this will fill the OS version and the MAC address in the inventor {#ESSID} $.essid + + {#RADIO_NAME} + $.radio + diff --git a/zbx_export_templates.yaml b/zbx_export_templates.yaml index 8993e2e..e4575e4 100644 --- a/zbx_export_templates.yaml +++ b/zbx_export_templates.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-10-01T20:15:09Z' + date: '2021-10-08T00:25:19Z' groups: - uuid: 15155c95a3d048f4856272ae12fd42c5 @@ -699,6 +699,7 @@ zabbix_export: name: '2G Channel Interference' type: CALCULATED key: 2g_interference + status: DISABLED units: '%' params: '(last(//2g_interference_raw)>0)*last(//2g_interference_raw)' tags: @@ -710,6 +711,7 @@ zabbix_export: name: '2G Channel Interference raw' type: CALCULATED key: 2g_interference_raw + status: DISABLED units: '%' params: '((last(//cu_total_2g)- last(//cu_self_tx_2g) - last(//cu_self_rx_2g))>0)*(last(//cu_total_2g)- last(//cu_self_tx_2g) - last(//cu_self_rx_2g))' tags: @@ -721,6 +723,7 @@ zabbix_export: uuid: cf75968434a1434d861b7b06a42f03fd expression: 'avg(/Unifi AP/2g_interference_raw,{$UNIFI_ALERT_PERIOD})>50' name: '{HOST.NAME} 2G Interference > 50%' + status: DISABLED priority: AVERAGE manual_close: 'YES' - @@ -728,6 +731,7 @@ zabbix_export: name: '2G Channel Interference Smooth' type: CALCULATED key: 2g_interference_smooth + status: DISABLED value_type: FLOAT units: '%' params: 'avg(//2g_interference,{$UNIFI_SMOOTHING_PERIOD})' @@ -740,6 +744,7 @@ zabbix_export: name: '5G Channel Interference' type: CALCULATED key: 5g_interference + status: DISABLED units: '%' params: '(last(//5g_interference_raw)>0)*last(//5g_interference_raw)' tags: @@ -751,6 +756,7 @@ zabbix_export: name: '5G Channel Interference Raw' type: CALCULATED key: 5g_interference_raw + status: DISABLED value_type: FLOAT units: '%' params: 'last(//cu_total_5g) - last(//cu_self_rx_5g) - last(//cu_self_tx_5g)' @@ -763,6 +769,7 @@ zabbix_export: uuid: c1fc0b2a82da4b4eb48105f385cfe730 expression: 'avg(/Unifi AP/5g_interference_raw,{$UNIFI_ALERT_PERIOD})>30' name: '{HOST.NAME} 5G Interference > 30%' + status: DISABLED priority: AVERAGE manual_close: 'YES' - @@ -770,6 +777,7 @@ zabbix_export: name: '5G Channel Interference Smooth' type: CALCULATED key: 5g_interference_smooth + status: DISABLED value_type: FLOAT units: '%' params: 'avg(//5g_interference,{$UNIFI_SMOOTHING_PERIOD})' @@ -813,6 +821,7 @@ zabbix_export: name: '2G Channel Utilization Smooth' type: CALCULATED key: cu_avg_5mn_2g + status: DISABLED value_type: FLOAT units: '%' params: 'avg(//cu_total_2g,{$UNIFI_SMOOTHING_PERIOD})' @@ -825,6 +834,7 @@ zabbix_export: name: '5G Channel Utilization Smooth' type: CALCULATED key: cu_avg_5mn_5g + status: DISABLED value_type: FLOAT units: '%' params: 'avg(//cu_total_5g,{$UNIFI_SMOOTHING_PERIOD})' @@ -838,6 +848,7 @@ zabbix_export: type: DEPENDENT key: cu_self_rx_2g delay: '0' + status: DISABLED units: '%' preprocessing: - @@ -856,6 +867,7 @@ zabbix_export: type: DEPENDENT key: cu_self_rx_5g delay: '0' + status: DISABLED units: '%' preprocessing: - @@ -874,6 +886,7 @@ zabbix_export: type: DEPENDENT key: cu_self_tx_2g delay: '0' + status: DISABLED units: '%' preprocessing: - @@ -892,6 +905,7 @@ zabbix_export: type: DEPENDENT key: cu_self_tx_5g delay: '0' + status: DISABLED units: '%' preprocessing: - @@ -910,6 +924,7 @@ zabbix_export: type: DEPENDENT key: cu_total_2g delay: '0' + status: DISABLED units: '%' preprocessing: - @@ -927,6 +942,7 @@ zabbix_export: uuid: 80b61c5fae364d7bb980798bd1c63a75 expression: 'avg(/Unifi AP/cu_total_2g,{$UNIFI_ALERT_PERIOD})>60' name: '{HOST.NAME} 2G Channel Usage > 60%' + status: DISABLED priority: INFO manual_close: 'YES' dependencies: @@ -937,6 +953,7 @@ zabbix_export: uuid: 594de384d46d456d8de6cd6c3fefcb48 expression: 'avg(/Unifi AP/cu_total_2g,{$UNIFI_ALERT_PERIOD})>80' name: '{HOST.NAME} 2G Channel Usage > 80%' + status: DISABLED priority: AVERAGE manual_close: 'YES' - @@ -945,6 +962,7 @@ zabbix_export: type: DEPENDENT key: cu_total_5g delay: '0' + status: DISABLED units: '%' preprocessing: - @@ -962,6 +980,7 @@ zabbix_export: uuid: 8da227da0b974562af1fa8a4f80f8a4e expression: 'avg(/Unifi AP/cu_total_5g,{$UNIFI_ALERT_PERIOD})>60' name: '{HOST.NAME} 5G Channel Usage > 60%' + status: DISABLED priority: INFO manual_close: 'YES' dependencies: @@ -972,6 +991,7 @@ zabbix_export: uuid: 16dd939288264f70979aa7349ccf9202 expression: 'avg(/Unifi AP/cu_total_5g,{$UNIFI_ALERT_PERIOD})>80' name: '{HOST.NAME} 5G Channel Usage > 80%' + status: DISABLED priority: AVERAGE manual_close: 'YES' - @@ -1077,6 +1097,7 @@ zabbix_export: type: DEPENDENT key: n_tx_xretries_2g delay: '0' + status: DISABLED preprocessing: - type: JSONPATH @@ -1098,6 +1119,7 @@ zabbix_export: type: DEPENDENT key: n_tx_xretries_5g delay: '0' + status: DISABLED preprocessing: - type: JSONPATH @@ -1276,6 +1298,149 @@ zabbix_export: tag: Application value: Radio discovery_rules: + - + uuid: 6e857bdd5a674e4e8be70b0e01d00d1a + name: 'Active Radio Discovery' + type: DEPENDENT + key: active_radio_discovery + delay: '0' + description: 'List all active radios to create channel items' + item_prototypes: + - + uuid: f35732598f6f4aed84477b0932b496cb + name: 'Channel Interference {#RADIO_NAME}' + type: CALCULATED + key: 'cint[{#RADIO_NAME}]' + units: '%' + params: '((last( //cu_total[{#RADIO_NAME}] )- last( //cu_tx[{#RADIO_NAME}])-last(//cu_rx[{#RADIO_NAME}]))>0)*(last( //cu_total[{#RADIO_NAME}] )- last( //cu_tx[{#RADIO_NAME}])-last(//cu_rx[{#RADIO_NAME}]))' + tags: + - + tag: Application + value: Radio + trigger_prototypes: + - + uuid: 3f72d760eb204eceafe82682fbda16a5 + expression: 'avg(/Unifi AP/cint[{#RADIO_NAME}],{$UNIFI_ALERT_PERIOD})>{$UNIFI_CHANNEL_INTERFERENCE_AVERAGE_THRESHOLD:"{#RADIO_NAME}"}' + name: '{HOST.NAME} {#RADIO_NAME} Channel Interference > {$UNIFI_CHANNEL_INTERFERENCE_AVERAGE_THRESHOLD:"{#RADIO_NAME}"}%' + opdata: '{$UNIFI_CHANNEL_INTERFERENCE_INFO_THRESHOLD:"{#RADIO_NAME"}' + priority: AVERAGE + manual_close: 'YES' + - + uuid: e774c76335834241b15c4e203889e7e0 + expression: 'avg(/Unifi AP/cint[{#RADIO_NAME}],{$UNIFI_ALERT_PERIOD})>{$UNIFI_CHANNEL_INTERFERENCE_INFO_THRESHOLD:"{#RADIO_NAME"}' + name: '{HOST.NAME} {#RADIO_NAME} Channel Interference > {$UNIFI_CHANNEL_INTERFERENCE_INFO_THRESHOLD:"{#RADIO_NAME}"}%' + opdata: '{$UNIFI_CHANNEL_INTERFERENCE_INFO_THRESHOLD:"{#RADIO_NAME"}' + priority: INFO + manual_close: 'YES' + dependencies: + - + name: '{HOST.NAME} {#RADIO_NAME} Channel Interference > {$UNIFI_CHANNEL_INTERFERENCE_AVERAGE_THRESHOLD:"{#RADIO_NAME}"}%' + expression: 'avg(/Unifi AP/cint[{#RADIO_NAME}],{$UNIFI_ALERT_PERIOD})>{$UNIFI_CHANNEL_INTERFERENCE_AVERAGE_THRESHOLD:"{#RADIO_NAME}"}' + - + uuid: 60ae3f2aea144c1bb42780bc424d7184 + name: 'Channel Reception Utilization {#RADIO_NAME}' + type: DEPENDENT + key: 'cu_rx[{#RADIO_NAME}]' + delay: '0' + units: '%' + preprocessing: + - + type: JSONPATH + parameters: + - '$.radio_table[?(@.radio == ''{#RADIO_NAME}'')].athstats.cu_self_rx.first()' + master_item: + key: 'mca-dump-short.sh["-d","{HOST.CONN}", "-u", "{$UNIFI_USER}", "-i", "{$UNIFI_SSH_PRIV_KEY_PATH}", "-t", "AP"]' + tags: + - + tag: Application + value: Radio + - + uuid: 466eee19400040749764a086133c4342 + name: 'Channel Total Utilization {#RADIO_NAME}' + type: DEPENDENT + key: 'cu_total[{#RADIO_NAME}]' + delay: '0' + units: '%' + preprocessing: + - + type: JSONPATH + parameters: + - '$.radio_table[?(@.radio == ''{#RADIO_NAME}'')].athstats.cu_total.first()' + master_item: + key: 'mca-dump-short.sh["-d","{HOST.CONN}", "-u", "{$UNIFI_USER}", "-i", "{$UNIFI_SSH_PRIV_KEY_PATH}", "-t", "AP"]' + tags: + - + tag: Application + value: Radio + trigger_prototypes: + - + uuid: 9047af0eb978454aab5768341986f29b + expression: 'avg(/Unifi AP/cu_total[{#RADIO_NAME}],{$UNIFI_ALERT_PERIOD})>{$UNIFI_CHANNEL_USAGE_AVERAGE_THRESHOLD:"{#RADIO_NAME"}' + name: '{HOST.NAME} {#RADIO_NAME} Channel Utilization > {$UNIFI_CHANNEL_USAGE_AVERAGE_THRESHOLD:"{#RADIO_NAME}"}%' + opdata: '{$UNIFI_CHANNEL_USAGE_INFO_THRESHOLD:"{#RADIO_NAME}"' + priority: AVERAGE + manual_close: 'YES' + - + uuid: 69372713ad284b79a905f5942c321b55 + expression: 'avg(/Unifi AP/cu_total[{#RADIO_NAME}],{$UNIFI_ALERT_PERIOD})>{$UNIFI_CHANNEL_USAGE_INFO_THRESHOLD:"{#RADIO_NAME}"}' + name: '{HOST.NAME} {#RADIO_NAME} Channel Utilization > {$UNIFI_CHANNEL_USAGE_INFO_THRESHOLD:"{#RADIO_NAME}"}%' + opdata: '{$UNIFI_CHANNEL_USAGE_INFO_THRESHOLD:"{#RADIO_NAME}"' + priority: INFO + manual_close: 'YES' + dependencies: + - + name: '{HOST.NAME} {#RADIO_NAME} Channel Utilization > {$UNIFI_CHANNEL_USAGE_AVERAGE_THRESHOLD:"{#RADIO_NAME}"}%' + expression: 'avg(/Unifi AP/cu_total[{#RADIO_NAME}],{$UNIFI_ALERT_PERIOD})>{$UNIFI_CHANNEL_USAGE_AVERAGE_THRESHOLD:"{#RADIO_NAME"}' + - + uuid: 11b74b119dea413ea1152b15a8e3eacb + name: 'Channel Transmission Utilization {#RADIO_NAME}' + type: DEPENDENT + key: 'cu_tx[{#RADIO_NAME}]' + delay: '0' + units: '%' + preprocessing: + - + type: JSONPATH + parameters: + - '$.radio_table[?(@.radio == ''{#RADIO_NAME}'')].athstats.cu_self_tx.first()' + master_item: + key: 'mca-dump-short.sh["-d","{HOST.CONN}", "-u", "{$UNIFI_USER}", "-i", "{$UNIFI_SSH_PRIV_KEY_PATH}", "-t", "AP"]' + tags: + - + tag: Application + value: Radio + - + uuid: 13bbc5518393491eb303198385799fbf + name: 'Channel Retries {#RADIO_NAME}' + type: DEPENDENT + key: 'retries[{#RADIO_NAME}]' + delay: '0' + preprocessing: + - + type: JSONPATH + parameters: + - '$.radio_table[?(@.radio == ''{#RADIO_NAME}'')].athstats.n_tx_xretries.first()' + - + type: SIMPLE_CHANGE + parameters: + - '' + master_item: + key: 'mca-dump-short.sh["-d","{HOST.CONN}", "-u", "{$UNIFI_USER}", "-i", "{$UNIFI_SSH_PRIV_KEY_PATH}", "-t", "AP"]' + tags: + - + tag: Application + value: Radio + master_item: + key: 'mca-dump-short.sh["-d","{HOST.CONN}", "-u", "{$UNIFI_USER}", "-i", "{$UNIFI_SSH_PRIV_KEY_PATH}", "-t", "AP"]' + lld_macro_paths: + - + lld_macro: '{#RADIO_NAME}' + path: $.radio + preprocessing: + - + type: JSONPATH + parameters: + - '$.radio_table[?(@.athstats.cu_total >0)]' - uuid: 90e43b647faa4a6fa7af643960bcf0a5 name: 'Wifi Network Discovery' @@ -1286,16 +1451,16 @@ zabbix_export: item_prototypes: - uuid: 99af4e53516341b1b4e40d814fe7a258 - name: '{#ESSID} Rx Bandwidth' + name: '{#ESSID}-{#RADIO_NAME} Rx Bandwidth' type: DEPENDENT - key: 'rx_bandwidth[{#ESSID}]' + key: 'rx_bandwidth[{#ESSID}-{#RADIO_NAME}]' delay: '0' units: bps preprocessing: - type: JSONPATH parameters: - - '$.vap_table.[ ?(@.essid == ''{#ESSID}'' ) ].rx_bytes.sum()' + - '$.vap_table.[ ?(@.essid == ''{#ESSID}'' && @.radio == ''{#RADIO_NAME}'' ) ].rx_bytes.sum()' - type: CHANGE_PER_SECOND parameters: @@ -1312,28 +1477,28 @@ zabbix_export: value: Radio - uuid: 3748f96463d74affa9340b398c34f1a0 - name: '{#ESSID} Reception Bandwidth Smooth' + name: '{#ESSID}-{#RADIO_NAME} Reception Bandwidth Smooth' type: CALCULATED - key: 'rx_bandwidth_smooth[{#ESSID}]' + key: 'rx_bandwidth_smooth[{#ESSID}-{#RADIO_NAME}]' value_type: FLOAT units: bps - params: 'avg(//rx_bandwidth[{#ESSID}],{$UNIFI_SMOOTHING_PERIOD})' + params: 'avg(//rx_bandwidth[{#ESSID}-{#RADIO_NAME}],{$UNIFI_SMOOTHING_PERIOD})' tags: - tag: Application value: Radio - uuid: b18528ee504149118ecc6aac93c51135 - name: '{#ESSID} Tx Bandwidth' + name: '{#ESSID}-{#RADIO_NAME} Tx Bandwidth' type: DEPENDENT - key: 'tx_bandwidth[{#ESSID}]' + key: 'tx_bandwidth[{#ESSID}-{#RADIO_NAME}]' delay: '0' units: bps preprocessing: - type: JSONPATH parameters: - - '$.vap_table.[ ?(@.essid == "{#ESSID}") ].tx_bytes.sum()' + - '$.vap_table.[ ?(@.essid == "{#ESSID}" && @.radio == "{#RADIO_NAME}") ].tx_bytes.sum()' - type: CHANGE_PER_SECOND parameters: @@ -1350,12 +1515,12 @@ zabbix_export: value: Radio - uuid: ec606cedd02f45518d7a0c030b25849e - name: '{#ESSID} Transmission Bandwidth Smooth' + name: '{#ESSID}-{#RADIO_NAME} Transmission Bandwidth Smooth' type: CALCULATED - key: 'tx_bandwidth_smooth[{#ESSID}]' + key: 'tx_bandwidth_smooth[{#ESSID}-{#RADIO_NAME}]' value_type: FLOAT units: bps - params: 'avg(//tx_bandwidth[{#ESSID}],{$UNIFI_SMOOTHING_PERIOD})' + params: 'avg(//tx_bandwidth[{#ESSID}-{#RADIO_NAME}],{$UNIFI_SMOOTHING_PERIOD})' tags: - tag: Application @@ -1363,26 +1528,29 @@ zabbix_export: graph_prototypes: - uuid: 27c2c173f4d24b48b7341f0762c727a4 - name: '{#ESSID} Bandwidth' + name: '{#ESSID}-{#RADIO_NAME} Bandwidth' graph_items: - sortorder: '1' color: 1A7C11 item: host: 'Unifi AP' - key: 'rx_bandwidth[{#ESSID}]' + key: 'rx_bandwidth[{#ESSID}-{#RADIO_NAME}]' - sortorder: '2' color: F63100 item: host: 'Unifi AP' - key: 'tx_bandwidth[{#ESSID}]' + key: 'tx_bandwidth[{#ESSID}-{#RADIO_NAME}]' master_item: key: 'mca-dump-short.sh["-d","{HOST.CONN}", "-u", "{$UNIFI_USER}", "-i", "{$UNIFI_SSH_PRIV_KEY_PATH}", "-t", "AP"]' lld_macro_paths: - lld_macro: '{#ESSID}' path: $.essid + - + lld_macro: '{#RADIO_NAME}' + path: $.radio preprocessing: - type: JSONPATH @@ -4648,24 +4816,24 @@ zabbix_export: item_prototypes: - uuid: 460c978a4cfb40b1930c4a47dac748e9 - name: '{#ESSID} Total Reception Bandwidth' + name: '{#ESSID}-{#RADIO_NAME} Total Reception Bandwidth' type: CALCULATED - key: 'grpsum["{$AP_GROUP}", "rx_bandwidth[{#ESSID}]", avg, {$UNIFI_SMOOTHING_PERIOD}]' + key: 'grpsum["{$AP_GROUP}", "rx_bandwidth[{#ESSID}-{#RADIO_NAME}]", avg, {$UNIFI_SMOOTHING_PERIOD}]' value_type: FLOAT units: bps - params: 'sum(avg_foreach(/*/rx_bandwidth[{#ESSID}]?[group="{$AP_GROUP}"],{$UNIFI_SMOOTHING_PERIOD}))' + params: 'sum(avg_foreach(/*/rx_bandwidth[{#ESSID}-{#RADIO_NAME}]?[group="{$AP_GROUP}"],{$UNIFI_SMOOTHING_PERIOD}))' tags: - tag: Application value: Radio - uuid: c91e55731b9d4dae8fb3d5d1ab8e1cb0 - name: '{#ESSID} Total Transmission Bandwidth' + name: '{#ESSID}-{#RADIO_NAME} Total Transmission Bandwidth' type: CALCULATED - key: 'grpsum["{$AP_GROUP}", "tx_bandwidth[{#ESSID}]", avg, "{$UNIFI_SMOOTHING_PERIOD}"]' + key: 'grpsum["{$AP_GROUP}", "tx_bandwidth[{#ESSID}-{#RADIO_NAME}]", avg, "{$UNIFI_SMOOTHING_PERIOD}"]' value_type: FLOAT units: bps - params: 'sum(avg_foreach(/*/tx_bandwidth[{#ESSID}]?[group="{$AP_GROUP}"],{$UNIFI_SMOOTHING_PERIOD}))' + params: 'sum(avg_foreach(/*/tx_bandwidth[{#ESSID}-{#RADIO_NAME}]?[group="{$AP_GROUP}"],{$UNIFI_SMOOTHING_PERIOD}))' tags: - tag: Application @@ -4680,19 +4848,22 @@ zabbix_export: color: 1A7C11 item: host: 'Unifi WiFi Site' - key: 'grpsum["{$AP_GROUP}", "rx_bandwidth[{#ESSID}]", avg, {$UNIFI_SMOOTHING_PERIOD}]' + key: 'grpsum["{$AP_GROUP}", "rx_bandwidth[{#ESSID}-{#RADIO_NAME}]", avg, {$UNIFI_SMOOTHING_PERIOD}]' - sortorder: '2' color: F63100 item: host: 'Unifi WiFi Site' - key: 'grpsum["{$AP_GROUP}", "tx_bandwidth[{#ESSID}]", avg, "{$UNIFI_SMOOTHING_PERIOD}"]' + key: 'grpsum["{$AP_GROUP}", "tx_bandwidth[{#ESSID}-{#RADIO_NAME}]", avg, "{$UNIFI_SMOOTHING_PERIOD}"]' master_item: key: 'mca-dump-short.sh["-d","{HOST.CONN}", "-u", "{$UNIFI_USER}", "-i", "{$UNIFI_SSH_PRIV_KEY_PATH}", "-t", "AP", "-p", "{$UNIFI_SSHPASS_PASSWORD_PATH}"]' lld_macro_paths: - lld_macro: '{#ESSID}' path: $.essid + - + lld_macro: '{#RADIO_NAME}' + path: $.radio preprocessing: - type: JSONPATH