diff options
author | Toni Uhlig <matzeton@googlemail.com> | 2024-02-08 00:58:40 +0100 |
---|---|---|
committer | Toni Uhlig <matzeton@googlemail.com> | 2024-02-08 01:01:35 +0100 |
commit | 8949ba39e63cd7eeb279f20a74db834d02de1bc1 (patch) | |
tree | 0ffad9bbf6d4d37d33adcdd4a875f0b0c9307884 /examples/c-influxd | |
parent | ea968180a23d48edc121215359277e418b476487 (diff) |
Added test mode for influx push daemon.
* required for regression testing
* added new confidence value (match by custom rule)
* updated / tweaked grafana exported dashboard
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'examples/c-influxd')
-rw-r--r-- | examples/c-influxd/c-influxd.c | 86 | ||||
-rw-r--r-- | examples/c-influxd/grafana-dashboard-simple.json | 6141 |
2 files changed, 3148 insertions, 3079 deletions
diff --git a/examples/c-influxd/c-influxd.c b/examples/c-influxd/c-influxd.c index 70b23447a..ed6f2e99e 100644 --- a/examples/c-influxd/c-influxd.c +++ b/examples/c-influxd/c-influxd.c @@ -21,6 +21,7 @@ static char * pidfile = NULL; static char * serv_optarg = NULL; static char * user = NULL; static char * group = NULL; +static int test_mode = 0; static char * influxdb_interval = NULL; static nDPIsrvd_ull influxdb_interval_ull = 0uL; static char * influxdb_url = NULL; @@ -179,6 +180,7 @@ static struct uint64_t flow_confidence_nbpf; uint64_t flow_confidence_by_ip; uint64_t flow_confidence_dpi_aggressive; + uint64_t flow_confidence_custom_rule; uint64_t flow_confidence_unknown; uint64_t flow_severity_low; @@ -337,6 +339,7 @@ static struct global_map const confidence_map[] = { {"nBPF", INFLUXD_STATS_GAUGE_PTR(flow_confidence_nbpf)}, {"Match by IP", INFLUXD_STATS_GAUGE_PTR(flow_confidence_by_ip)}, {"DPI (aggressive)", INFLUXD_STATS_GAUGE_PTR(flow_confidence_dpi_aggressive)}, + {"Match by custom rule", INFLUXD_STATS_GAUGE_PTR(flow_confidence_custom_rule)}, {NULL, INFLUXD_STATS_GAUGE_PTR(flow_confidence_unknown)}}; static struct global_map const severity_map[] = {{"Low", INFLUXD_STATS_GAUGE_PTR(flow_severity_low)}, @@ -509,7 +512,7 @@ static int serialize_influx_line(char * buf, size_t siz) bytes = snprintf(buf, siz, "%s " INFLUXDB_FORMAT() INFLUXDB_FORMAT() INFLUXDB_FORMAT() INFLUXDB_FORMAT() INFLUXDB_FORMAT() - INFLUXDB_FORMAT() INFLUXDB_FORMAT() INFLUXDB_FORMAT() INFLUXDB_FORMAT_END(), + INFLUXDB_FORMAT() INFLUXDB_FORMAT() INFLUXDB_FORMAT() INFLUXDB_FORMAT() INFLUXDB_FORMAT_END(), "confidence", INFLUXDB_VALUE_GAUGE(flow_confidence_by_port), INFLUXDB_VALUE_GAUGE(flow_confidence_dpi_partial), @@ -519,6 +522,7 @@ static int serialize_influx_line(char * buf, size_t siz) INFLUXDB_VALUE_GAUGE(flow_confidence_nbpf), INFLUXDB_VALUE_GAUGE(flow_confidence_by_ip), INFLUXDB_VALUE_GAUGE(flow_confidence_dpi_aggressive), + INFLUXDB_VALUE_GAUGE(flow_confidence_custom_rule), INFLUXDB_VALUE_GAUGE(flow_confidence_unknown)); CHECK_SNPRINTF_RET(bytes); @@ -644,6 +648,7 @@ failure: INFLUXD_STATS_GAUGE_SUB(flow_confidence_nbpf); INFLUXD_STATS_GAUGE_SUB(flow_confidence_by_ip); INFLUXD_STATS_GAUGE_SUB(flow_confidence_dpi_aggressive); + INFLUXD_STATS_GAUGE_SUB(flow_confidence_custom_rule); INFLUXD_STATS_GAUGE_SUB(flow_confidence_unknown); INFLUXD_STATS_GAUGE_SUB(flow_severity_low); @@ -1409,7 +1414,21 @@ static int mainloop(int epollfd, struct nDPIsrvd_socket * const sock) return 1; } - start_influxdb_thread(); + if (test_mode == 0) + { + start_influxdb_thread(); + } + else + { + char stdout_buffer[BUFSIZ]; + + if (serialize_influx_line(stdout_buffer, sizeof(stdout_buffer)) != 0) + { + logger(1, "%s", "Could not serialize influx buffer"); + return 1; + } + printf("%s", stdout_buffer); + } } else if (events[i].data.fd == sock->fd) { @@ -1449,12 +1468,13 @@ static int parse_options(int argc, char ** argv, struct nDPIsrvd_socket * const "\t-u\tChange user.\n" "\t-g\tChange group.\n" "\t-i\tInterval between pushing statistics to an influxdb endpoint.\n" + "\t-t\tTest mode: Ignores `-U' / `-T' and prints stats to stdout.\n" "\t-U\tInfluxDB URL.\n" "\t \tExample: http://127.0.0.1:8086/write?db=ndpi-daemon\n" "\t-T\tInfluxDB access token.\n" "\t \tNot recommended, use environment variable INFLUXDB_AUTH_TOKEN instead.\n"; - while ((opt = getopt(argc, argv, "hcdp:s:u:g:i:U:T:")) != -1) + while ((opt = getopt(argc, argv, "hcdp:s:u:g:i:tU:T:")) != -1) { switch (opt) { @@ -1484,6 +1504,9 @@ static int parse_options(int argc, char ** argv, struct nDPIsrvd_socket * const free(influxdb_interval); influxdb_interval = strdup(optarg); break; + case 't': + test_mode = 1; + break; case 'U': free(influxdb_url); influxdb_url = strdup(optarg); @@ -1498,6 +1521,15 @@ static int parse_options(int argc, char ** argv, struct nDPIsrvd_socket * const } } + if (test_mode != 0) + { + logger_early(1, "%s", "Test mode enabled: ignoring `-U' / `-T' command line parameters"); + free(influxdb_url); + free(influxdb_token); + influxdb_url = NULL; + influxdb_token = NULL; + } + if (serv_optarg == NULL) { serv_optarg = strdup(DISTRIBUTOR_UNIX_SOCKET); @@ -1514,20 +1546,23 @@ static int parse_options(int argc, char ** argv, struct nDPIsrvd_socket * const return 1; } - if (influxdb_url == NULL) + if (test_mode == 0) { - logger_early(1, "%s", "Missing InfluxDB URL."); - return 1; - } + if (influxdb_url == NULL) + { + logger_early(1, "%s", "Missing InfluxDB URL."); + return 1; + } - if (influxdb_token == NULL && getenv("INFLUXDB_AUTH_TOKEN") != NULL) - { - influxdb_token = strdup(getenv("INFLUXDB_AUTH_TOKEN")); - } - if (influxdb_token == NULL) - { - logger_early(1, "%s", "Missing InfluxDB authentication token."); - return 1; + if (influxdb_token == NULL && getenv("INFLUXDB_AUTH_TOKEN") != NULL) + { + influxdb_token = strdup(getenv("INFLUXDB_AUTH_TOKEN")); + } + if (influxdb_token == NULL) + { + logger_early(1, "%s", "Missing InfluxDB authentication token."); + return 1; + } } if (nDPIsrvd_setup_address(&sock->address, serv_optarg) != 0) @@ -1656,13 +1691,30 @@ int main(int argc, char ** argv) } } - curl_global_init(CURL_GLOBAL_ALL); + if (test_mode == 0) + { + curl_global_init(CURL_GLOBAL_ALL); + } logger_early(0, "%s", "Initialization succeeded."); retval = mainloop(epollfd, sock); logger_early(0, "%s", "Bye."); - curl_global_cleanup(); + if (test_mode == 0) + { + curl_global_cleanup(); + } + else + { + char stdout_buffer[BUFSIZ]; + + if (serialize_influx_line(stdout_buffer, sizeof(stdout_buffer)) != 0) + { + logger(1, "%s", "Could not serialize influx buffer"); + return 1; + } + printf("%s", stdout_buffer); + } failure: nDPIsrvd_socket_free(&sock); close(influxd_timerfd); diff --git a/examples/c-influxd/grafana-dashboard-simple.json b/examples/c-influxd/grafana-dashboard-simple.json index 78f8c8d6e..6b04e37a8 100644 --- a/examples/c-influxd/grafana-dashboard-simple.json +++ b/examples/c-influxd/grafana-dashboard-simple.json @@ -89,7 +89,7 @@ } ] }, - "editable": true, + "editable": false, "fiscalYearStartMonth": 0, "graphTooltip": 0, "id": null, @@ -97,7 +97,7 @@ "liveNow": false, "panels": [ { - "collapsed": true, + "collapsed": false, "gridPos": { "h": 1, "w": 24, @@ -105,1683 +105,1681 @@ "y": 0 }, "id": 22, - "panels": [ - { - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" + "panels": [], + "title": "Events", + "type": "row" + }, + { + "datasource": { + "type": "influxdb", + "uid": "${DS_INFLUXDB}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "green", + "value": null }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 25 - }, - { - "color": "red", - "value": 50 - } - ] + { + "color": "#EAB839", + "value": 25 + }, + { + "color": "red", + "value": 50 } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "error_ip4_l4_payload_detection" }, - "overrides": [ + "properties": [ { - "matcher": { - "id": "byName", - "options": "error_ip4_l4_payload_detection" - }, - "properties": [ - { - "id": "displayName", - "value": "IPv4 L4 Failed" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "yellow", - "value": 1 - } - ] + "id": "displayName", + "value": "IPv4 L4 Failed" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 1 } - } - ] - }, + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "error_ip4_packet_too_short" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "error_ip4_packet_too_short" - }, - "properties": [ - { - "id": "displayName", - "value": "IPv4 Packet Size" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "yellow", - "value": 1 - } - ] + "id": "displayName", + "value": "IPv4 Packet Size" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 1 } - } - ] - }, + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "error_ip4_size_smaller_than_header" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "error_ip4_size_smaller_than_header" - }, - "properties": [ - { - "id": "displayName", - "value": "IPv4 Header Size" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "yellow", - "value": 1 - } - ] + "id": "displayName", + "value": "IPv4 Header Size" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 1 } - } - ] - }, + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "error_ip6_l4_payload_detection" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "error_ip6_l4_payload_detection" - }, - "properties": [ - { - "id": "displayName", - "value": "IPv6 L4 Failed" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "yellow", - "value": 1 - } - ] + "id": "displayName", + "value": "IPv6 L4 Failed" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 1 } - } - ] - }, + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "error_ip6_packet_too_short" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "error_ip6_packet_too_short" - }, - "properties": [ - { - "id": "displayName", - "value": "IPv6 Packet Size" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "yellow", - "value": 1 - } - ] + "id": "displayName", + "value": "IPv6 Packet Size" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 1 } - } - ] - }, + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "error_ip6_size_smaller_than_header" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "error_ip6_size_smaller_than_header" - }, - "properties": [ - { - "id": "displayName", - "value": "IPv6 Header Size" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "yellow", - "value": 1 - } - ] + "id": "displayName", + "value": "IPv6 Header Size" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 1 } - } - ] - }, + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "error_packet_header_invalid" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "error_packet_header_invalid" - }, - "properties": [ - { - "id": "displayName", - "value": "Packet Header Invalid" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "yellow", - "value": 1 - } - ] + "id": "displayName", + "value": "Packet Header Invalid" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 1 } - } - ] - }, + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "error_packet_too_short" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "error_packet_too_short" - }, - "properties": [ - { - "id": "displayName", - "value": "Packet Size" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "yellow", - "value": 1 - } - ] + "id": "displayName", + "value": "Packet Size" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 1 } - } - ] - }, + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "error_packet_type_unknown" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "error_packet_type_unknown" - }, - "properties": [ - { - "id": "displayName", - "value": "Packet Type Unknown" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "yellow", - "value": 1 - } - ] + "id": "displayName", + "value": "Packet Type Unknown" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 1 } - } - ] - }, + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "error_tcp_packet_too_short" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "error_tcp_packet_too_short" - }, - "properties": [ - { - "id": "displayName", - "value": "TCP Packet Size" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "yellow", - "value": 1 - } - ] + "id": "displayName", + "value": "TCP Packet Size" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 1 } - } - ] - }, + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "error_udp_packet_too_short" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "error_udp_packet_too_short" - }, - "properties": [ - { - "id": "displayName", - "value": "UDP Packet Size" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "yellow", - "value": 1 - } - ] + "id": "displayName", + "value": "UDP Packet Size" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 1 } - } - ] - }, + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "error_unknown_datalink" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "error_unknown_datalink" - }, - "properties": [ - { - "id": "displayName", - "value": "Unknown Datalink" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "yellow", - "value": 1 - } - ] + "id": "displayName", + "value": "Unknown Datalink" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 1 } - } - ] - }, + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "error_unknown_l3_protocol" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "error_unknown_l3_protocol" - }, - "properties": [ - { - "id": "displayName", - "value": "Unknown L3 Protocol" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "yellow", - "value": 1 - } - ] + "id": "displayName", + "value": "Unknown L3 Protocol" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 1 } - } - ] - }, + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "error_unsupported_datalink" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "error_unsupported_datalink" - }, - "properties": [ - { - "id": "displayName", - "value": "Unsupported Datalink" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "yellow", - "value": 1 - } - ] + "id": "displayName", + "value": "Unsupported Datalink" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 1 } - } - ] - }, + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "flow_analyse_count" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "flow_analyse_count" - }, - "properties": [ - { - "id": "displayName", - "value": "Analyse" - } - ] - }, + "id": "displayName", + "value": "Analyse" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "flow_detected_count" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "flow_detected_count" - }, - "properties": [ - { - "id": "displayName", - "value": "Detections" - } - ] - }, + "id": "displayName", + "value": "Detections" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "flow_detection_update_count" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "flow_detection_update_count" - }, - "properties": [ - { - "id": "displayName", - "value": "Detection Updates" - } - ] - }, + "id": "displayName", + "value": "Detection Updates" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "flow_end_count" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "flow_end_count" - }, - "properties": [ - { - "id": "displayName", - "value": "End" - } - ] - }, + "id": "displayName", + "value": "End" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "flow_guessed_count" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "flow_guessed_count" - }, - "properties": [ - { - "id": "displayName", - "value": "Guessed" - }, - { - "id": "thresholds", - "value": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "yellow", - "value": 5 - }, - { - "color": "red", - "value": 10 - } - ] + "id": "displayName", + "value": "Guessed" + }, + { + "id": "thresholds", + "value": { + "mode": "percentage", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 5 + }, + { + "color": "red", + "value": 10 } - }, - { - "id": "color" - } - ] + ] + } }, { - "matcher": { - "id": "byName", - "options": "flow_idle_count" - }, - "properties": [ - { - "id": "displayName", - "value": "Idle" - } - ] - }, + "id": "color" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "flow_idle_count" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "flow_new_count" - }, - "properties": [ - { - "id": "displayName", - "value": "New" - } - ] - }, + "id": "displayName", + "value": "Idle" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "flow_new_count" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "flow_not_detected_count" - }, - "properties": [ - { - "id": "displayName", - "value": "Not Detected" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 1 - } - ] + "id": "displayName", + "value": "New" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "flow_not_detected_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Not Detected" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 1 } - } - ] - }, + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "flow_risky_count" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "flow_risky_count" - }, - "properties": [ - { - "id": "displayName", - "value": "Risky" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "yellow", - "value": 1 - } - ] + "id": "displayName", + "value": "Risky" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 1 } - } - ] - }, + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "flow_update_count" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "flow_update_count" - }, - "properties": [ - { - "id": "displayName", - "value": "Updates" - } - ] - }, + "id": "displayName", + "value": "Updates" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "init_count" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "init_count" - }, - "properties": [ - { - "id": "displayName", - "value": "Init" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "yellow", - "value": 1 - } - ] + "id": "displayName", + "value": "Init" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 1 } - } - ] - }, + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "packet_count" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "packet_count" - }, - "properties": [ - { - "id": "displayName", - "value": "Packet" - }, - { - "id": "thresholds", - "value": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "yellow", - "value": 25 - }, - { - "color": "red", - "value": 50 - } - ] - } - }, - { - "id": "color", - "value": { - "mode": "thresholds" + "id": "displayName", + "value": "Packet" + }, + { + "id": "thresholds", + "value": { + "mode": "percentage", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 25 + }, + { + "color": "red", + "value": 50 } - } - ] + ] + } }, { - "matcher": { - "id": "byName", - "options": "packet_flow_count" - }, - "properties": [ - { - "id": "displayName", - "value": "Packet Flow" - } - ] - }, + "id": "color", + "value": { + "mode": "thresholds" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "packet_flow_count" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "reconnect_count" - }, - "properties": [ - { - "id": "displayName", - "value": "Reconnect" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "yellow", - "value": 1 - } - ] - } - } - ] - }, + "id": "displayName", + "value": "Packet Flow" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "reconnect_count" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "shutdown_count" - }, - "properties": [ - { - "id": "displayName", - "value": "Shutdown" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 1 - } - ] + "id": "displayName", + "value": "Reconnect" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 1 } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "status_count" - }, - "properties": [ - { - "id": "displayName", - "value": "Status" - } - ] - }, + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "shutdown_count" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "error_capture_size_smaller_than_packet" - }, - "properties": [ - { - "id": "displayName", - "value": "Capture Size < Packet Size" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 1 - } - ] + "id": "displayName", + "value": "Shutdown" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 1 } - } - ] - }, + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "status_count" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "error_flow_memory_alloc" - }, - "properties": [ - { - "id": "displayName", - "value": "Memory Allocation Failed" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 1 - } - ] - } - } - ] - }, + "id": "displayName", + "value": "Status" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "error_capture_size_smaller_than_packet" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "error_max_flows_to_track" - }, - "properties": [ - { - "id": "displayName", - "value": "Max Flows" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 1 - } - ] + "id": "displayName", + "value": "Capture Size < Packet Size" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 1 } - } - ] + ] + } } ] }, - "gridPos": { - "h": 9, - "w": 15, - "x": 0, - "y": 1 - }, - "id": 20, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false + { + "matcher": { + "id": "byName", + "options": "error_flow_memory_alloc" }, - "textMode": "auto" + "properties": [ + { + "id": "displayName", + "value": "Memory Allocation Failed" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 1 + } + ] + } + } + ] }, - "pluginVersion": "10.2.0", - "targets": [ - { - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"events\"\n )", - "refId": "A" - } + { + "matcher": { + "id": "byName", + "options": "error_max_flows_to_track" + }, + "properties": [ + { + "id": "displayName", + "value": "Max Flows" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 1 + } + ] + } + } + ] + } + ] + }, + "gridPos": { + "h": 9, + "w": 15, + "x": 0, + "y": 1 + }, + "id": 20, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" ], - "type": "stat" + "fields": "", + "values": false }, + "textMode": "auto" + }, + "pluginVersion": "10.2.0", + "targets": [ { "datasource": { "type": "influxdb", "uid": "${DS_INFLUXDB}" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic-by-name" - }, - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - } - }, - "mappings": [] - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 3, - "x": 15, - "y": 1 + "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"events\"\n )", + "refId": "A" + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "influxdb", + "uid": "${DS_INFLUXDB}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic-by-name" }, - "id": 19, - "options": { - "legend": { - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "pieType": "pie", - "reduceOptions": { - "calcs": [ - "sum" - ], - "fields": "", - "values": false - }, - "tooltip": { - "mode": "single", - "sort": "none" + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false } }, - "targets": [ - { - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"events\"\n )", - "refId": "A" - } + "mappings": [] + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 3, + "x": 15, + "y": 1 + }, + "id": 19, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "pieType": "pie", + "reduceOptions": { + "calcs": [ + "sum" ], - "type": "piechart" + "fields": "", + "values": false }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ { "datasource": { "type": "influxdb", "uid": "${DS_INFLUXDB}" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic-by-name" - }, - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - } - }, - "mappings": [] - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 3, - "x": 18, - "y": 1 + "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"events\"\n )", + "refId": "A" + } + ], + "type": "piechart" + }, + { + "datasource": { + "type": "influxdb", + "uid": "${DS_INFLUXDB}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic-by-name" }, - "id": 28, - "options": { - "legend": { - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "pieType": "pie", - "reduceOptions": { - "calcs": [ - "sum" - ], - "fields": "", - "values": false - }, - "tooltip": { - "mode": "single", - "sort": "none" + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false } }, - "targets": [ - { - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"events\" and\n r._field != \"packet_flow_count\"\n )", - "refId": "A" - } + "mappings": [] + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 3, + "x": 18, + "y": 1 + }, + "id": 28, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "pieType": "pie", + "reduceOptions": { + "calcs": [ + "sum" ], - "type": "piechart" + "fields": "", + "values": false }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ { "datasource": { "type": "influxdb", "uid": "${DS_INFLUXDB}" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - } - }, - "overrides": [] + "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"events\" and\n r._field != \"packet_flow_count\"\n )", + "refId": "A" + } + ], + "type": "piechart" + }, + { + "datasource": { + "type": "influxdb", + "uid": "${DS_INFLUXDB}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, - "gridPos": { - "h": 3, - "w": 3, - "x": 21, - "y": 1 + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 21, + "y": 1 + }, + "id": 27, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "${DS_INFLUXDB}" }, - "id": 27, + "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"events\" and\n (r._field == \"packet_count\" or\n r._field == \"packet_flow_count\")\n )", + "refId": "A" + } + ], + "title": "Packet", + "transformations": [ + { + "id": "calculateField", "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false + "mode": "reduceRow", + "reduce": { + "reducer": "sum" }, - "textMode": "auto" + "replaceFields": true + } + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "influxdb", + "uid": "${DS_INFLUXDB}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, - "pluginVersion": "10.2.0", - "targets": [ - { - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"events\" and\n (r._field == \"packet_count\" or\n r._field == \"packet_flow_count\")\n )", - "refId": "A" - } - ], - "title": "Packet", - "transformations": [ - { - "id": "calculateField", - "options": { - "mode": "reduceRow", - "reduce": { - "reducer": "sum" - }, - "replaceFields": true + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null } - } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 21, + "y": 4 + }, + "id": 26, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" ], - "type": "stat" + "fields": "", + "values": false }, + "textMode": "auto" + }, + "pluginVersion": "10.2.0", + "targets": [ { "datasource": { "type": "influxdb", "uid": "${DS_INFLUXDB}" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 21, - "y": 4 - }, - "id": 26, + "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"events\" and\n (r._field == \"flow_detected_count\" or\n r._field == \"flow_detection_update_count\" or\n r._field == \"flow_guessed_count\")\n )", + "refId": "A" + } + ], + "title": "Detection", + "transformations": [ + { + "id": "calculateField", "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false + "mode": "reduceRow", + "reduce": { + "reducer": "sum" }, - "textMode": "auto" + "replaceFields": true + } + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "influxdb", + "uid": "${DS_INFLUXDB}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, - "pluginVersion": "10.2.0", - "targets": [ - { - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"events\" and\n (r._field == \"flow_detected_count\" or\n r._field == \"flow_detection_update_count\" or\n r._field == \"flow_guessed_count\")\n )", - "refId": "A" - } - ], - "title": "Detection", - "transformations": [ - { - "id": "calculateField", - "options": { - "mode": "reduceRow", - "reduce": { - "reducer": "sum" - }, - "replaceFields": true + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null } - } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 3, + "x": 21, + "y": 7 + }, + "id": 21, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" ], - "type": "stat" + "fields": "", + "values": false }, + "textMode": "auto" + }, + "pluginVersion": "10.2.0", + "targets": [ { "datasource": { "type": "influxdb", "uid": "${DS_INFLUXDB}" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 21, - "y": 7 - }, - "id": 21, + "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"events\"\n )", + "refId": "A" + } + ], + "transformations": [ + { + "id": "calculateField", "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false + "mode": "reduceRow", + "reduce": { + "reducer": "sum" }, - "textMode": "auto" - }, - "pluginVersion": "10.2.0", - "targets": [ - { - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"events\"\n )", - "refId": "A" - } - ], - "transformations": [ - { - "id": "calculateField", - "options": { - "mode": "reduceRow", - "reduce": { - "reducer": "sum" - }, - "replaceFields": true - } - } - ], - "type": "stat" + "replaceFields": true + } } ], - "title": "Events", - "type": "row" + "type": "stat" }, { - "collapsed": true, + "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 1 + "y": 10 }, "id": 5, - "panels": [ - { - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" + "panels": [], + "title": "General", + "type": "row" + }, + { + "datasource": { + "type": "influxdb", + "uid": "${DS_INFLUXDB}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "binBps" + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "flow_dst_total_bytes" - }, - "properties": [ - { - "id": "displayName", - "value": "Total Bytes Received" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_src_total_bytes" - }, - "properties": [ - { - "id": "displayName", - "value": "Total Bytes Transmitted" - } - ] - }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ { - "matcher": { - "id": "byName", - "options": "json_bytes" - }, - "properties": [ - { - "id": "displayName", - "value": "Total JSON Bytes" - } - ] + "color": "green", + "value": null } ] }, - "gridPos": { - "h": 8, - "w": 15, - "x": 0, - "y": 2 + "unit": "binBps" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "flow_dst_total_bytes" + }, + "properties": [ + { + "id": "displayName", + "value": "Total Bytes Received" + } + ] }, - "id": 1, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true + { + "matcher": { + "id": "byName", + "options": "flow_src_total_bytes" }, - "tooltip": { - "mode": "single", - "sort": "none" - } + "properties": [ + { + "id": "displayName", + "value": "Total Bytes Transmitted" + } + ] }, - "targets": [ - { - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"general\" and\n (r._field == \"flow_src_total_bytes\" or\n r._field == \"flow_dst_total_bytes\" or\n r._field == \"json_bytes\")\n )", - "refId": "A" - } - ], - "title": "Data Processed", - "type": "timeseries" + { + "matcher": { + "id": "byName", + "options": "json_bytes" + }, + "properties": [ + { + "id": "displayName", + "value": "Total JSON Bytes" + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 15, + "x": 0, + "y": 11 + }, + "id": 1, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ { "datasource": { "type": "influxdb", "uid": "${DS_INFLUXDB}" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - } - }, - "mappings": [], - "unit": "bytes" + "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"general\" and\n (r._field == \"flow_src_total_bytes\" or\n r._field == \"flow_dst_total_bytes\" or\n r._field == \"json_bytes\")\n )", + "refId": "A" + } + ], + "title": "Data Processed", + "type": "timeseries" + }, + { + "datasource": { + "type": "influxdb", + "uid": "${DS_INFLUXDB}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + } + }, + "mappings": [], + "unit": "bytes" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "flow_dst_total_bytes" }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "flow_dst_total_bytes" - }, - "properties": [ - { - "id": "displayName", - "value": "Total Bytes Received" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_src_total_bytes" - }, - "properties": [ - { - "id": "displayName", - "value": "Total Bytes Transmitted" - } - ] - }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "json_bytes" - }, - "properties": [ - { - "id": "displayName", - "value": "Total JSON Bytes" - } - ] + "id": "displayName", + "value": "Total Bytes Received" } ] }, - "gridPos": { - "h": 8, - "w": 3, - "x": 15, - "y": 2 - }, - "id": 3, - "options": { - "legend": { - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "pieType": "pie", - "reduceOptions": { - "calcs": [ - "sum" - ], - "fields": "", - "values": false + { + "matcher": { + "id": "byName", + "options": "flow_src_total_bytes" }, - "tooltip": { - "mode": "single", - "sort": "none" - } + "properties": [ + { + "id": "displayName", + "value": "Total Bytes Transmitted" + } + ] }, - "targets": [ - { - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"general\" and\n (r._field == \"flow_src_total_bytes\" or\n r._field == \"flow_dst_total_bytes\" or\n r._field == \"json_bytes\")\n )", - "refId": "A" - } + { + "matcher": { + "id": "byName", + "options": "json_bytes" + }, + "properties": [ + { + "id": "displayName", + "value": "Total JSON Bytes" + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 3, + "x": 15, + "y": 11 + }, + "id": 3, + "options": { + "legend": { + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "pieType": "pie", + "reduceOptions": { + "calcs": [ + "sum" ], - "type": "piechart" + "fields": "", + "values": false }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ { "datasource": { "type": "influxdb", "uid": "${DS_INFLUXDB}" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "binBps" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 18, - "y": 2 + "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"general\" and\n (r._field == \"flow_src_total_bytes\" or\n r._field == \"flow_dst_total_bytes\" or\n r._field == \"json_bytes\")\n )", + "refId": "A" + } + ], + "type": "piechart" + }, + { + "datasource": { + "type": "influxdb", + "uid": "${DS_INFLUXDB}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, - "id": 24, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "auto" + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] }, - "pluginVersion": "10.2.0", - "targets": [ - { - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"general\" and\n r._field == \"flow_src_total_bytes\"\n )", - "refId": "A" - } + "unit": "binBps" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 3, + "x": 18, + "y": 11 + }, + "id": 24, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" ], - "title": "Bytes Transmitted", - "type": "stat" + "fields": "", + "values": false }, + "textMode": "auto" + }, + "pluginVersion": "10.2.0", + "targets": [ { "datasource": { "type": "influxdb", "uid": "${DS_INFLUXDB}" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] + "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"general\" and\n r._field == \"flow_src_total_bytes\"\n )", + "refId": "A" + } + ], + "title": "Bytes Transmitted", + "type": "stat" + }, + { + "datasource": { + "type": "influxdb", + "uid": "${DS_INFLUXDB}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null } - }, - "overrides": [] + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 3, + "x": 21, + "y": 11 + }, + "id": 7, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "${DS_INFLUXDB}" }, - "gridPos": { - "h": 4, - "w": 3, - "x": 21, - "y": 2 + "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"general\" and\n r._field == \"json_lines\"\n )", + "refId": "A" + } + ], + "title": "JSON Lines", + "type": "stat" + }, + { + "datasource": { + "type": "influxdb", + "uid": "${DS_INFLUXDB}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, - "id": 7, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "auto" + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] }, - "pluginVersion": "10.2.0", - "targets": [ - { - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"general\" and\n r._field == \"json_lines\"\n )", - "refId": "A" - } + "unit": "binBps" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 3, + "x": 18, + "y": 15 + }, + "id": 25, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" ], - "title": "JSON Lines", - "type": "stat" + "fields": "", + "values": false }, + "textMode": "auto" + }, + "pluginVersion": "10.2.0", + "targets": [ { "datasource": { "type": "influxdb", "uid": "${DS_INFLUXDB}" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "binBps" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 18, - "y": 6 + "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"general\" and\n r._field == \"flow_dst_total_bytes\"\n )", + "refId": "A" + } + ], + "title": "Bytes Received", + "type": "stat" + }, + { + "datasource": { + "type": "influxdb", + "uid": "${DS_INFLUXDB}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, - "id": 25, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "auto" + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] }, - "pluginVersion": "10.2.0", - "targets": [ - { - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"general\" and\n r._field == \"flow_dst_total_bytes\"\n )", - "refId": "A" - } + "unit": "binBps" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 3, + "x": 21, + "y": 15 + }, + "id": 23, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" ], - "title": "Bytes Received", - "type": "stat" + "fields": "", + "values": false }, + "textMode": "auto" + }, + "pluginVersion": "10.2.0", + "targets": [ { "datasource": { "type": "influxdb", "uid": "${DS_INFLUXDB}" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - }, - "unit": "binBps" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 21, - "y": 6 - }, - "id": 23, + "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"general\" and\n (r._field == \"flow_src_total_bytes\" or\n r._field == \"flow_dst_total_bytes\")\n )", + "refId": "A" + } + ], + "title": "Total Bytes", + "transformations": [ + { + "id": "calculateField", "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false + "mode": "reduceRow", + "reduce": { + "reducer": "sum" }, - "textMode": "auto" - }, - "pluginVersion": "10.2.0", - "targets": [ - { - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"general\" and\n (r._field == \"flow_src_total_bytes\" or\n r._field == \"flow_dst_total_bytes\")\n )", - "refId": "A" - } - ], - "title": "Total Bytes", - "transformations": [ - { - "id": "calculateField", - "options": { - "mode": "reduceRow", - "reduce": { - "reducer": "sum" - }, - "replaceFields": true - } - } - ], - "type": "stat" + "replaceFields": true + } } ], - "title": "General", - "type": "row" + "type": "stat" }, { "collapsed": true, @@ -1789,7 +1787,7 @@ "h": 1, "w": 24, "x": 0, - "y": 2 + "y": 19 }, "id": 6, "panels": [ @@ -3051,6 +3049,25 @@ } } ] + }, + { + "matcher": { + "id": "byName", + "options": "flow_confidence_custom_rule" + }, + "properties": [ + { + "id": "displayName", + "value": "Custom Rule" + }, + { + "id": "color", + "value": { + "fixedColor": "blue", + "mode": "fixed" + } + } + ] } ] }, @@ -3066,7 +3083,7 @@ "minVizHeight": 10, "minVizWidth": 0, "namePlacement": "auto", - "orientation": "auto", + "orientation": "horizontal", "reduceOptions": { "calcs": [ "lastNotNull" @@ -3329,7 +3346,7 @@ "minVizHeight": 10, "minVizWidth": 0, "namePlacement": "auto", - "orientation": "auto", + "orientation": "horizontal", "reduceOptions": { "calcs": [ "lastNotNull" @@ -3359,1469 +3376,1470 @@ "type": "row" }, { - "collapsed": false, + "collapsed": true, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 3 + "y": 20 }, "id": 32, - "panels": [], - "title": "Risks", - "type": "row" - }, - { - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" + "panels": [ + { + "datasource": { + "type": "influxdb", + "uid": "${DS_INFLUXDB}" }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, - { - "color": "yellow", - "value": 1 + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 1 + } + ] } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "flow_risk_1_count" }, - "properties": [ + "overrides": [ { - "id": "displayName", - "value": "XSS Attack" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_2_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_1_count" + }, + "properties": [ + { + "id": "displayName", + "value": "XSS Attack" + } + ] + }, { - "id": "displayName", - "value": "SQL Injection" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_3_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_2_count" + }, + "properties": [ + { + "id": "displayName", + "value": "SQL Injection" + } + ] + }, { - "id": "displayName", - "value": "RCE Injection" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_4_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_3_count" + }, + "properties": [ + { + "id": "displayName", + "value": "RCE Injection" + } + ] + }, { - "id": "displayName", - "value": "Binary App Transfer" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_5_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_4_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Binary App Transfer" + } + ] + }, { - "id": "displayName", - "value": "Known Proto on Non Std Port" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_6_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_5_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Known Proto on Non Std Port" + } + ] + }, { - "id": "displayName", - "value": "Self signed Cert" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_7_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_6_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Self signed Cert" + } + ] + }, { - "id": "displayName", - "value": "Obsolete TLS v1.1 or older" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_8_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_7_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Obsolete TLS v1.1 or older" + } + ] + }, { - "id": "displayName", - "value": "Weak TLS Cipher" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_9_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_8_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Weak TLS Cipher" + } + ] + }, { - "id": "displayName", - "value": "TLS Cert Expired" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_10_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_9_count" + }, + "properties": [ + { + "id": "displayName", + "value": "TLS Cert Expired" + } + ] + }, { - "id": "displayName", - "value": "TLS Cert Mismatch" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_11_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_10_count" + }, + "properties": [ + { + "id": "displayName", + "value": "TLS Cert Mismatch" + } + ] + }, { - "id": "displayName", - "value": "HTTP Suspicious User Agent" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_12_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_11_count" + }, + "properties": [ + { + "id": "displayName", + "value": "HTTP Suspicious User Agent" + } + ] + }, { - "id": "displayName", - "value": "HTTP Numeric IP Address" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_13_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_12_count" + }, + "properties": [ + { + "id": "displayName", + "value": "HTTP Numeric IP Address" + } + ] + }, { - "id": "displayName", - "value": "HTTP Suspicious URL" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_14_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_13_count" + }, + "properties": [ + { + "id": "displayName", + "value": "HTTP Suspicious URL" + } + ] + }, { - "id": "displayName", - "value": "HTTP Suspicious Header" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_15_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_14_count" + }, + "properties": [ + { + "id": "displayName", + "value": "HTTP Suspicious Header" + } + ] + }, { - "id": "displayName", - "value": "TLS probably Not Carrying HTTPS" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_16_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_15_count" + }, + "properties": [ + { + "id": "displayName", + "value": "TLS probably Not Carrying HTTPS" + } + ] + }, { - "id": "displayName", - "value": "Suspicious DGA Domain name" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_17_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_16_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Suspicious DGA Domain name" + } + ] + }, { - "id": "displayName", - "value": "Malformed Packet" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_18_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_17_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Malformed Packet" + } + ] + }, { - "id": "displayName", - "value": "SSH Obsolete Client Version/Cipher" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_19_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_18_count" + }, + "properties": [ + { + "id": "displayName", + "value": "SSH Obsolete Client Version/Cipher" + } + ] + }, { - "id": "displayName", - "value": "SSH Obsolete Server Version/Cipher" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_20_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_19_count" + }, + "properties": [ + { + "id": "displayName", + "value": "SSH Obsolete Server Version/Cipher" + } + ] + }, { - "id": "displayName", - "value": "SMB Insecure Version" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_21_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_20_count" + }, + "properties": [ + { + "id": "displayName", + "value": "SMB Insecure Version" + } + ] + }, { - "id": "displayName", - "value": "TLS Suspicious ESNI Usage" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_22_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_21_count" + }, + "properties": [ + { + "id": "displayName", + "value": "TLS Suspicious ESNI Usage" + } + ] + }, { - "id": "displayName", - "value": "Unsafe Protocol" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_23_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_22_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Unsafe Protocol" + } + ] + }, { - "id": "displayName", - "value": "Suspicious DNS Traffic" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_24_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_23_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Suspicious DNS Traffic" + } + ] + }, { - "id": "displayName", - "value": "Missing SNI TLS Extension" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_25_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_24_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Missing SNI TLS Extension" + } + ] + }, { - "id": "displayName", - "value": "HTTP Suspicious Content" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_26_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_25_count" + }, + "properties": [ + { + "id": "displayName", + "value": "HTTP Suspicious Content" + } + ] + }, { - "id": "displayName", - "value": "Risky ASN" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_27_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_26_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Risky ASN" + } + ] + }, { - "id": "displayName", - "value": "Risky Domain Name" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_28_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_27_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Risky Domain Name" + } + ] + }, { - "id": "displayName", - "value": "Malicious JA3 Fingerprint" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_29_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_28_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Malicious JA3 Fingerprint" + } + ] + }, { - "id": "displayName", - "value": "Malicious SSL Cert/SHA1 Fingerprint" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_30_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_29_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Malicious SSL Cert/SHA1 Fingerprint" + } + ] + }, { - "id": "displayName", - "value": "Desktop/File-Sharing" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_31_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_30_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Desktop/File-Sharing" + } + ] + }, { - "id": "displayName", - "value": "Uncommon TLS ALPN" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_32_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_31_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Uncommon TLS ALPN" + } + ] + }, { - "id": "displayName", - "value": "TLS Cert Validity Too Long" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_33_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_32_count" + }, + "properties": [ + { + "id": "displayName", + "value": "TLS Cert Validity Too Long" + } + ] + }, { - "id": "displayName", - "value": "TLS Suspicious Extension" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_34_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_33_count" + }, + "properties": [ + { + "id": "displayName", + "value": "TLS Suspicious Extension" + } + ] + }, { - "id": "displayName", - "value": "TLS Fatal Alert" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_35_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_34_count" + }, + "properties": [ + { + "id": "displayName", + "value": "TLS Fatal Alert" + } + ] + }, { - "id": "displayName", - "value": "Suspicious Entropy" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_36_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_35_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Suspicious Entropy" + } + ] + }, { - "id": "displayName", - "value": "Clear Text Credentials" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_37_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_36_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Clear Text Credentials" + } + ] + }, { - "id": "displayName", - "value": "Large DNS Packet" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_38_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_37_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Large DNS Packet" + } + ] + }, { - "id": "displayName", - "value": "Fragmented DNS Message" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_39_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_38_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Fragmented DNS Message" + } + ] + }, { - "id": "displayName", - "value": "Text With Non Printable Chars" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_40_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_39_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Text With Non Printable Chars" + } + ] + }, { - "id": "displayName", - "value": "Possible Exploit" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_41_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_40_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Possible Exploit" + } + ] + }, { - "id": "displayName", - "value": "TLS Cert About To Expire" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_42_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_41_count" + }, + "properties": [ + { + "id": "displayName", + "value": "TLS Cert About To Expire" + } + ] + }, { - "id": "displayName", - "value": "IDN Domain Name" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_43_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_42_count" + }, + "properties": [ + { + "id": "displayName", + "value": "IDN Domain Name" + } + ] + }, { - "id": "displayName", - "value": "Error Code" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_44_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_43_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Error Code" + } + ] + }, { - "id": "displayName", - "value": "Crawler/Bot" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_45_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_44_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Crawler/Bot" + } + ] + }, { - "id": "displayName", - "value": "Anonymous Subscriber" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_46_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_45_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Anonymous Subscriber" + } + ] + }, { - "id": "displayName", - "value": "Unidirectional Traffic" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_47_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_46_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Unidirectional Traffic" + } + ] + }, { - "id": "displayName", - "value": "HTTP Obsolete Server" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_48_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_47_count" + }, + "properties": [ + { + "id": "displayName", + "value": "HTTP Obsolete Server" + } + ] + }, { - "id": "displayName", - "value": "Periodic Flow" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_49_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_48_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Periodic Flow" + } + ] + }, { - "id": "displayName", - "value": "Minor Issues" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_50_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_49_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Minor Issues" + } + ] + }, { - "id": "displayName", - "value": "TCP Connection Issues" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_51_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_50_count" + }, + "properties": [ + { + "id": "displayName", + "value": "TCP Connection Issues" + } + ] + }, { - "id": "displayName", - "value": "Fully Encrypted" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_52_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_51_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Fully Encrypted" + } + ] + }, { - "id": "displayName", - "value": "Invalid ALPN/SNI combination" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_53_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_52_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Invalid ALPN/SNI combination" + } + ] + }, { - "id": "displayName", - "value": "Malware Host Contacted" + "matcher": { + "id": "byName", + "options": "flow_risk_53_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Malware Host Contacted" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "flow_risk_unknown_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Unknown Risk" + } + ] } ] }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_unknown_count" + "gridPos": { + "h": 24, + "w": 24, + "x": 0, + "y": 4 + }, + "id": 12, + "options": { + "minVizHeight": 75, + "minVizWidth": 75, + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false }, - "properties": [ - { - "id": "displayName", - "value": "Unknown Risk" - } - ] - } - ] - }, - "gridPos": { - "h": 24, - "w": 24, - "x": 0, - "y": 4 - }, - "id": 12, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" + "showThresholdLabels": false, + "showThresholdMarkers": false + }, + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "${DS_INFLUXDB}" + }, + "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"risks\"\n )", + "refId": "A" + } ], - "fields": "", - "values": false + "title": "Risk", + "type": "gauge" }, - "showThresholdLabels": false, - "showThresholdMarkers": false - }, - "pluginVersion": "10.2.0", - "targets": [ { "datasource": { "type": "influxdb", "uid": "${DS_INFLUXDB}" }, - "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"risks\"\n )", - "refId": "A" - } - ], - "title": "Risk", - "type": "gauge" - }, - { - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "yellow", + "value": 1 + } + ] + } }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ + "overrides": [ { - "color": "green", - "value": null + "matcher": { + "id": "byName", + "options": "flow_risk_1_count" + }, + "properties": [ + { + "id": "displayName", + "value": "XSS Attack" + } + ] }, { - "color": "yellow", - "value": 1 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "flow_risk_1_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_2_count" + }, + "properties": [ + { + "id": "displayName", + "value": "SQL Injection" + } + ] + }, { - "id": "displayName", - "value": "XSS Attack" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_2_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_3_count" + }, + "properties": [ + { + "id": "displayName", + "value": "RCE Injection" + } + ] + }, { - "id": "displayName", - "value": "SQL Injection" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_3_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_4_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Binary App Transfer" + } + ] + }, { - "id": "displayName", - "value": "RCE Injection" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_4_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_5_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Known Proto on Non Std Port" + } + ] + }, { - "id": "displayName", - "value": "Binary App Transfer" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_5_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_6_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Self signed Cert" + } + ] + }, { - "id": "displayName", - "value": "Known Proto on Non Std Port" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_6_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_7_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Obsolete TLS v1.1 or older" + } + ] + }, { - "id": "displayName", - "value": "Self signed Cert" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_7_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_8_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Weak TLS Cipher" + } + ] + }, { - "id": "displayName", - "value": "Obsolete TLS v1.1 or older" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_8_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_9_count" + }, + "properties": [ + { + "id": "displayName", + "value": "TLS Cert Expired" + } + ] + }, { - "id": "displayName", - "value": "Weak TLS Cipher" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_9_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_10_count" + }, + "properties": [ + { + "id": "displayName", + "value": "TLS Cert Mismatch" + } + ] + }, { - "id": "displayName", - "value": "TLS Cert Expired" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_10_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_11_count" + }, + "properties": [ + { + "id": "displayName", + "value": "HTTP Suspicious User Agent" + } + ] + }, { - "id": "displayName", - "value": "TLS Cert Mismatch" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_11_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_12_count" + }, + "properties": [ + { + "id": "displayName", + "value": "HTTP Numeric IP Address" + } + ] + }, { - "id": "displayName", - "value": "HTTP Suspicious User Agent" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_12_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_13_count" + }, + "properties": [ + { + "id": "displayName", + "value": "HTTP Suspicious URL" + } + ] + }, { - "id": "displayName", - "value": "HTTP Numeric IP Address" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_13_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_14_count" + }, + "properties": [ + { + "id": "displayName", + "value": "HTTP Suspicious Header" + } + ] + }, { - "id": "displayName", - "value": "HTTP Suspicious URL" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_14_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_15_count" + }, + "properties": [ + { + "id": "displayName", + "value": "TLS probably Not Carrying HTTPS" + } + ] + }, { - "id": "displayName", - "value": "HTTP Suspicious Header" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_15_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_16_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Suspicious DGA Domain name" + } + ] + }, { - "id": "displayName", - "value": "TLS probably Not Carrying HTTPS" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_16_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_17_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Malformed Packet" + } + ] + }, { - "id": "displayName", - "value": "Suspicious DGA Domain name" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_17_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_18_count" + }, + "properties": [ + { + "id": "displayName", + "value": "SSH Obsolete Client Version/Cipher" + } + ] + }, { - "id": "displayName", - "value": "Malformed Packet" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_18_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_19_count" + }, + "properties": [ + { + "id": "displayName", + "value": "SSH Obsolete Server Version/Cipher" + } + ] + }, { - "id": "displayName", - "value": "SSH Obsolete Client Version/Cipher" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_19_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_20_count" + }, + "properties": [ + { + "id": "displayName", + "value": "SMB Insecure Version" + } + ] + }, { - "id": "displayName", - "value": "SSH Obsolete Server Version/Cipher" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_20_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_21_count" + }, + "properties": [ + { + "id": "displayName", + "value": "TLS Suspicious ESNI Usage" + } + ] + }, { - "id": "displayName", - "value": "SMB Insecure Version" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_21_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_22_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Unsafe Protocol" + } + ] + }, { - "id": "displayName", - "value": "TLS Suspicious ESNI Usage" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_22_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_23_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Suspicious DNS Traffic" + } + ] + }, { - "id": "displayName", - "value": "Unsafe Protocol" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_23_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_24_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Missing SNI TLS Extension" + } + ] + }, { - "id": "displayName", - "value": "Suspicious DNS Traffic" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_24_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_25_count" + }, + "properties": [ + { + "id": "displayName", + "value": "HTTP Suspicious Content" + } + ] + }, { - "id": "displayName", - "value": "Missing SNI TLS Extension" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_25_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_26_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Risky ASN" + } + ] + }, { - "id": "displayName", - "value": "HTTP Suspicious Content" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_26_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_27_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Risky Domain Name" + } + ] + }, { - "id": "displayName", - "value": "Risky ASN" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_27_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_28_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Malicious JA3 Fingerprint" + } + ] + }, { - "id": "displayName", - "value": "Risky Domain Name" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_28_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_29_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Malicious SSL Cert/SHA1 Fingerprint" + } + ] + }, { - "id": "displayName", - "value": "Malicious JA3 Fingerprint" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_29_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_30_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Desktop/File-Sharing" + } + ] + }, { - "id": "displayName", - "value": "Malicious SSL Cert/SHA1 Fingerprint" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_30_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_31_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Uncommon TLS ALPN" + } + ] + }, { - "id": "displayName", - "value": "Desktop/File-Sharing" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_31_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_32_count" + }, + "properties": [ + { + "id": "displayName", + "value": "TLS Cert Validity Too Long" + } + ] + }, { - "id": "displayName", - "value": "Uncommon TLS ALPN" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_32_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_33_count" + }, + "properties": [ + { + "id": "displayName", + "value": "TLS Suspicious Extension" + } + ] + }, { - "id": "displayName", - "value": "TLS Cert Validity Too Long" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_33_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_34_count" + }, + "properties": [ + { + "id": "displayName", + "value": "TLS Fatal Alert" + } + ] + }, { - "id": "displayName", - "value": "TLS Suspicious Extension" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_34_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_35_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Suspicious Entropy" + } + ] + }, { - "id": "displayName", - "value": "TLS Fatal Alert" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_35_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_36_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Clear Text Credentials" + } + ] + }, { - "id": "displayName", - "value": "Suspicious Entropy" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_36_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_37_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Large DNS Packet" + } + ] + }, { - "id": "displayName", - "value": "Clear Text Credentials" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_37_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_38_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Fragmented DNS Message" + } + ] + }, { - "id": "displayName", - "value": "Large DNS Packet" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_38_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_39_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Text With Non Printable Chars" + } + ] + }, { - "id": "displayName", - "value": "Fragmented DNS Message" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_39_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_40_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Possible Exploit" + } + ] + }, { - "id": "displayName", - "value": "Text With Non Printable Chars" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_40_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_41_count" + }, + "properties": [ + { + "id": "displayName", + "value": "TLS Cert About To Expire" + } + ] + }, { - "id": "displayName", - "value": "Possible Exploit" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_41_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_42_count" + }, + "properties": [ + { + "id": "displayName", + "value": "IDN Domain Name" + } + ] + }, { - "id": "displayName", - "value": "TLS Cert About To Expire" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_42_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_43_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Error Code" + } + ] + }, { - "id": "displayName", - "value": "IDN Domain Name" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_43_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_44_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Crawler/Bot" + } + ] + }, { - "id": "displayName", - "value": "Error Code" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_44_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_45_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Anonymous Subscriber" + } + ] + }, { - "id": "displayName", - "value": "Crawler/Bot" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_45_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_46_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Unidirectional Traffic" + } + ] + }, { - "id": "displayName", - "value": "Anonymous Subscriber" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_46_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_47_count" + }, + "properties": [ + { + "id": "displayName", + "value": "HTTP Obsolete Server" + } + ] + }, { - "id": "displayName", - "value": "Unidirectional Traffic" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_47_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_48_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Periodic Flow" + } + ] + }, { - "id": "displayName", - "value": "HTTP Obsolete Server" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_48_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_49_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Minor Issues" + } + ] + }, { - "id": "displayName", - "value": "Periodic Flow" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_49_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_50_count" + }, + "properties": [ + { + "id": "displayName", + "value": "TCP Connection Issues" + } + ] + }, { - "id": "displayName", - "value": "Minor Issues" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_50_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_51_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Fully Encrypted" + } + ] + }, { - "id": "displayName", - "value": "TCP Connection Issues" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_51_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_52_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Invalid ALPN/SNI combination" + } + ] + }, { - "id": "displayName", - "value": "Fully Encrypted" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_52_count" - }, - "properties": [ + "matcher": { + "id": "byName", + "options": "flow_risk_53_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Malware Host Contacted" + } + ] + }, { - "id": "displayName", - "value": "Invalid ALPN/SNI combination" + "matcher": { + "id": "byName", + "options": "flow_risk_unknown_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Unknown Risk" + } + ] } ] }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_53_count" - }, - "properties": [ - { - "id": "displayName", - "value": "Malware Host Contacted" - } - ] + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 28 }, - { - "matcher": { - "id": "byName", - "options": "flow_risk_unknown_count" + "id": 34, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false }, - "properties": [ - { - "id": "displayName", - "value": "Unknown Risk" - } - ] - } - ] - }, - "gridPos": { - "h": 10, - "w": 24, - "x": 0, - "y": 28 - }, - "id": 34, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "10.2.0", - "targets": [ - { - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" + "tooltip": { + "mode": "single", + "sort": "none" + } }, - "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"risks\"\n )", - "refId": "A" + "pluginVersion": "10.2.0", + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "${DS_INFLUXDB}" + }, + "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"risks\"\n )", + "refId": "A" + } + ], + "title": "Risk", + "type": "timeseries" } ], - "title": "Risk", - "type": "timeseries" + "title": "Risks", + "type": "row" }, { "collapsed": true, @@ -4829,7 +4847,7 @@ "h": 1, "w": 24, "x": 0, - "y": 38 + "y": 21 }, "id": 29, "panels": [ @@ -4958,7 +4976,7 @@ "h": 8, "w": 12, "x": 0, - "y": 29 + "y": 5 }, "id": 30, "options": { @@ -5138,7 +5156,7 @@ "h": 8, "w": 12, "x": 12, - "y": 29 + "y": 5 }, "id": 31, "options": { @@ -5860,7 +5878,7 @@ "h": 24, "w": 24, "x": 0, - "y": 37 + "y": 13 }, "id": 33, "options": { @@ -5897,278 +5915,277 @@ "type": "row" }, { - "collapsed": true, + "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, - "y": 39 + "y": 22 }, "id": 15, - "panels": [ - { - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" + "panels": [], + "title": "Layer3 / Layer4", + "type": "row" + }, + { + "datasource": { + "type": "influxdb", + "uid": "${DS_INFLUXDB}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": null - } - ] - } + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "flow_l3_ip4_count" - }, - "properties": [ - { - "id": "displayName", - "value": "IPv4" - } - ] - }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ { - "matcher": { - "id": "byName", - "options": "flow_l3_ip6_count" - }, - "properties": [ - { - "id": "displayName", - "value": "IPv6" - } - ] - }, + "color": "green", + "value": null + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "flow_l3_ip4_count" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "flow_l3_other_count" - }, - "properties": [ - { - "id": "displayName", - "value": "Other" - } - ] + "id": "displayName", + "value": "IPv4" } ] }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 5 - }, - "id": 16, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true + { + "matcher": { + "id": "byName", + "options": "flow_l3_ip6_count" }, - "tooltip": { - "mode": "single", - "sort": "none" - } + "properties": [ + { + "id": "displayName", + "value": "IPv6" + } + ] }, - "targets": [ - { - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"layer3\"\n )", - "refId": "A" - } - ], - "title": "Layer3", - "type": "timeseries" + { + "matcher": { + "id": "byName", + "options": "flow_l3_other_count" + }, + "properties": [ + { + "id": "displayName", + "value": "Other" + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 23 + }, + "id": 16, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ { "datasource": { "type": "influxdb", "uid": "${DS_INFLUXDB}" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": null - } - ] - } + "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"layer3\"\n )", + "refId": "A" + } + ], + "title": "Layer3", + "type": "timeseries" + }, + { + "datasource": { + "type": "influxdb", + "uid": "${DS_INFLUXDB}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "flow_l4_icmp_count" - }, - "properties": [ - { - "id": "displayName", - "value": "ICMP" - } - ] - }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ { - "matcher": { - "id": "byName", - "options": "flow_l4_other_count" - }, - "properties": [ - { - "id": "displayName", - "value": "Other" - } - ] - }, + "color": "green", + "value": null + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "flow_l4_icmp_count" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "flow_l4_tcp_count" - }, - "properties": [ - { - "id": "displayName", - "value": "TCP" - } - ] - }, + "id": "displayName", + "value": "ICMP" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "flow_l4_other_count" + }, + "properties": [ { - "matcher": { - "id": "byName", - "options": "flow_l4_udp_count" - }, - "properties": [ - { - "id": "displayName", - "value": "UDP" - } - ] + "id": "displayName", + "value": "Other" } ] }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 5 + { + "matcher": { + "id": "byName", + "options": "flow_l4_tcp_count" + }, + "properties": [ + { + "id": "displayName", + "value": "TCP" + } + ] }, - "id": 17, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true + { + "matcher": { + "id": "byName", + "options": "flow_l4_udp_count" }, - "tooltip": { - "mode": "single", - "sort": "none" - } + "properties": [ + { + "id": "displayName", + "value": "UDP" + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 23 + }, + "id": 17, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "influxdb", + "uid": "${DS_INFLUXDB}" }, - "targets": [ - { - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"layer4\"\n )", - "refId": "A" - } - ], - "title": "Layer4", - "type": "timeseries" + "query": "from(bucket: \"${ndpid_db_name}\")\n |> range(start: v.timeRangeStart, stop:v.timeRangeStop)\n |> filter(fn: (r) =>\n r._measurement == \"layer4\"\n )", + "refId": "A" } ], - "title": "Layer3 / Layer4", - "type": "row" + "title": "Layer4", + "type": "timeseries" } ], "refresh": "10s", @@ -6198,13 +6215,13 @@ ] }, "time": { - "from": "now-15m", + "from": "now-30m", "to": "now" }, "timepicker": {}, "timezone": "", "title": "nDPId", "uid": "e57b37c0-d0ba-4f50-9b2d-f83e71ae8c27", - "version": 85, + "version": 88, "weekStart": "" }
\ No newline at end of file |