OPNsense-Dashboard/OPNsense-Grafana-Dashboard.json
2023-10-10 15:05:07 -05:00

3420 lines
86 KiB
JSON

{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"target": {
"limit": 100,
"matchAny": false,
"tags": [],
"type": "dashboard"
},
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": 1,
"links": [],
"liveNow": true,
"panels": [
{
"collapsed": false,
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
"id": 22,
"panels": [],
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"refId": "A"
}
],
"title": "Hardware",
"type": "row"
},
{
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [
{
"options": {
"match": "null",
"result": {
"index": 0,
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 2,
"x": 0,
"y": 1
},
"id": 20,
"options": {
"colorMode": "none",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"text": {},
"textMode": "auto"
},
"pluginVersion": "9.2.10",
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: -20s)\r\n |> filter(fn: (r) =>\r\n r.host =~ /^${Host:regex}$/ and\r\n r._measurement == \"system\" and\r\n r._field == \"n_users\"\r\n )\r\n |> keep(columns: [\"_value\"])\r\n |> last()",
"refId": "A"
}
],
"title": "Active Users",
"type": "stat"
},
{
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"displayName": "CPU",
"mappings": [],
"max": 100,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "#EAB839",
"value": 70
},
{
"color": "red",
"value": 85
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 6,
"w": 3,
"x": 2,
"y": 1
},
"id": 4,
"maxDataPoints": 9000,
"options": {
"orientation": "auto",
"reduceOptions": {
"calcs": [
"last"
],
"fields": "",
"values": false
},
"showThresholdLabels": false,
"showThresholdMarkers": true,
"text": {}
},
"pluginVersion": "9.2.10",
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: -20s)\r\n |> filter(fn: (r) =>\r\n r.host =~ /^${Host:regex}$/ and\r\n r._measurement == \"cpu\" and\r\n r._field == \"usage_idle\" and\r\n r.cpu == \"cpu-total\"\r\n )\r\n |> map(fn: (r) => ({\r\n r with\r\n _value: r._value * -1.0 + 100.0\r\n })\r\n )\r\n |> keep(columns: [\"_value\"])\r\n |> last()",
"refId": "A"
}
],
"title": "CPU Total",
"type": "gauge"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": {
"uid": "${dataSource}"
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 6,
"w": 6,
"x": 5,
"y": 1
},
"hiddenSeries": false,
"id": 2,
"legend": {
"alignAsTable": true,
"avg": true,
"current": true,
"max": true,
"min": false,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"maxDataPoints": 9000,
"nullPointMode": "null",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "9.2.10",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"datasource": {
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) =>\r\n r.host =~ /^${Host:regex}$/ and\r\n r._measurement == \"cpu\" and\r\n r._field == \"usage_idle\")\r\n |> map(fn: (r) => ({\r\n r with\r\n _value: r._value * -1.0 + 100.0\r\n })\r\n )\r\n |> aggregateWindow(every: 10s, fn: last)\r\n |> drop(columns: [\"host\"])",
"refId": "A"
}
],
"thresholds": [],
"timeRegions": [],
"title": "CPU",
"tooltip": {
"shared": true,
"sort": 2,
"value_type": "individual"
},
"transformations": [
{
"id": "labelsToFields",
"options": {
"valueLabel": "cpu"
}
},
{
"id": "concatenate",
"options": {
"frameNameLabel": "frame",
"frameNameMode": "drop"
}
},
{
"id": "organize",
"options": {
"excludeByName": {
"cpu-total": true
},
"indexByName": {},
"renameByName": {}
}
}
],
"type": "graph",
"xaxis": {
"mode": "time",
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:39",
"decimals": 0,
"format": "percent",
"logBase": 1,
"max": "100",
"min": "0",
"show": true
},
{
"$$hashKey": "object:40",
"decimals": 2,
"format": "short",
"logBase": 1,
"show": true
}
],
"yaxis": {
"align": false
}
},
{
"datasource": {
"uid": "${dataSource}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "center",
"displayMode": "auto",
"filterable": false,
"inspect": false,
"minWidth": 1
},
"decimals": 0,
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "short"
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 7,
"x": 11,
"y": 1
},
"id": 8,
"options": {
"footer": {
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"frameIndex": 0,
"showHeader": true,
"sortBy": []
},
"pluginVersion": "9.2.10",
"targets": [
{
"datasource": {
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: -30s)\r\n |> filter(fn: (r) =>\r\n r.host =~ /^${Host:regex}$/ and\r\n r._measurement == \"processes\" and\r\n r._field =~ /running|idle|sleeping|wait|blocked|zombies/\r\n )\r\n |> map(fn: (r) => ({_value:r._value, _time:r._time, _field:r._field}))\r\n |> last()",
"refId": "A"
}
],
"title": "Process Information",
"transformations": [
{
"id": "concatenate",
"options": {
"frameNameLabel": "frame",
"frameNameMode": "drop"
}
},
{
"id": "filterFieldsByName",
"options": {
"include": {
"pattern": "/blocked|idle|running|sleeping|wait|zombies/"
}
}
},
{
"id": "organize",
"options": {
"excludeByName": {},
"indexByName": {
"blocked": 4,
"idle": 1,
"running": 0,
"sleeping": 2,
"wait": 3,
"zombies": 5
},
"renameByName": {
"blocked": "Blocked",
"idle": "Idle",
"running": "Running",
"sleeping": "Sleeping",
"wait": "Wait",
"zombies": "Zombies"
}
}
}
],
"type": "table"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": {
"uid": "${dataSource}"
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 6,
"w": 6,
"x": 18,
"y": 1
},
"hiddenSeries": false,
"id": 10,
"legend": {
"alignAsTable": true,
"avg": true,
"current": true,
"max": true,
"min": false,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"maxDataPoints": 9000,
"nullPointMode": "null",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "9.2.10",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"datasource": {
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) =>\r\n r.host =~ /^${Host:regex}$/ and\r\n r._measurement == \"system\" and\r\n r._field =~ /load1|load5|load15/\r\n )\r\n |> aggregateWindow(every: 10s, fn: last)\r\n |> map(fn: (r) => ({_value:r._value, _time:r._time, _field:r._field}))",
"refId": "A"
}
],
"thresholds": [],
"timeRegions": [],
"title": "Load",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"mode": "time",
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:112",
"decimals": 1,
"format": "none",
"logBase": 1,
"show": true
},
{
"$$hashKey": "object:113",
"format": "short",
"logBase": 1,
"show": true
}
],
"yaxis": {
"align": false
}
},
{
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [
{
"options": {
"match": "null",
"result": {
"index": 0,
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 2,
"x": 0,
"y": 4
},
"id": 6,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"last"
],
"fields": "/.*/",
"values": false
},
"text": {},
"textMode": "auto"
},
"pluginVersion": "9.2.10",
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: -20s)\r\n |> filter(fn: (r) =>\r\n r.host =~ /^${Host:regex}$/ and\r\n r._measurement == \"system\" and\r\n r._field == \"uptime_format\"\r\n )\r\n |> keep(columns: [\"_value\"])\r\n |> last()\r\n",
"refId": "A"
}
],
"title": "Uptime",
"type": "stat"
},
{
"datasource": {
"uid": "${dataSource}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "center",
"displayMode": "auto",
"inspect": false,
"minWidth": 1
},
"decimals": 1,
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "locale"
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 7,
"x": 11,
"y": 4
},
"id": 16,
"options": {
"footer": {
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"showHeader": true
},
"pluginVersion": "9.2.10",
"targets": [
{
"datasource": {
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: -30s)\r\n |> filter(fn: (r) =>\r\n r.host =~ /^${Host:regex}$/ and\r\n r._measurement == \"pf\" and\r\n r._field =~ /match|state-mismatch|state-insert/\r\n )\r\n |> map(fn: (r) => ({_value:r._value, _time:r._time, _field:r._field}))\r\n |> last()",
"refId": "A"
}
],
"title": "PF Information",
"transformations": [
{
"id": "concatenate",
"options": {
"frameNameLabel": "frame",
"frameNameMode": "drop"
}
},
{
"id": "organize",
"options": {
"excludeByName": {
"Time": false
},
"indexByName": {},
"renameByName": {
"Time": "",
"match": "Match",
"state-insert": "State Insert",
"state-mismatch": "State Mismatch"
}
}
},
{
"id": "filterFieldsByName",
"options": {
"include": {
"pattern": "/Match|State Insert|State Mismatch/"
}
}
}
],
"type": "table"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"decimals": 2,
"fieldConfig": {
"defaults": {
"unit": "percent"
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 5,
"w": 7,
"x": 0,
"y": 7
},
"hiddenSeries": false,
"id": 12,
"legend": {
"alignAsTable": true,
"avg": true,
"current": true,
"max": true,
"min": false,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"maxDataPoints": 9000,
"nullPointMode": "null",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "9.2.10",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"hide": false,
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) =>\r\n r.host =~ /^${Host:regex}$/ and\r\n r.device != \"devfs\" and\r\n r.device =~ /^${Disk:regex}$/ and\r\n r._measurement == \"disk\" and\r\n r._field == \"used_percent\" \r\n )",
"refId": "A"
}
],
"thresholds": [],
"timeRegions": [],
"title": "Disk Utilization",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"transformations": [
{
"id": "labelsToFields",
"options": {
"valueLabel": "path"
}
}
],
"type": "graph",
"xaxis": {
"mode": "time",
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:206",
"format": "percent",
"logBase": 1,
"max": "100",
"min": "0",
"show": true
},
{
"$$hashKey": "object:207",
"format": "short",
"logBase": 1,
"show": true
}
],
"yaxis": {
"align": false
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": {
"uid": "${dataSource}"
},
"fieldConfig": {
"defaults": {
"unit": "percent"
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 5,
"w": 9,
"x": 7,
"y": 7
},
"hiddenSeries": false,
"id": 14,
"legend": {
"alignAsTable": true,
"avg": true,
"current": true,
"max": true,
"min": true,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"maxDataPoints": 9000,
"nullPointMode": "null",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "9.2.10",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"datasource": {
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) =>\r\n r.host =~ /^${Host:regex}$/ and\r\n r._measurement == \"mem\" and\r\n r._field == \"used_percent\"\r\n )\r\n |> aggregateWindow(every: 10s, fn: last)\r\n |> map(fn: (r) => ({_value:r._value, _time:r._time, _field:r._field}))\r\n ",
"refId": "A"
}
],
"thresholds": [],
"timeRegions": [],
"title": "Ram",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {},
"indexByName": {},
"renameByName": {
"used_percent": "Ram Used"
}
}
}
],
"type": "graph",
"xaxis": {
"mode": "time",
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:416",
"format": "percent",
"logBase": 1,
"max": "100",
"min": "0",
"show": true
},
{
"$$hashKey": "object:417",
"format": "short",
"logBase": 1,
"show": true
}
],
"yaxis": {
"align": false
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": {
"uid": "${dataSource}"
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 5,
"w": 8,
"x": 16,
"y": 7
},
"hiddenSeries": false,
"id": 18,
"legend": {
"alignAsTable": true,
"avg": true,
"current": true,
"max": true,
"min": true,
"rightSide": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"maxDataPoints": 9000,
"nullPointMode": "null",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "9.2.10",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"datasource": {
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) =>\r\n r.host =~ /^${Host:regex}$/ and\r\n r.sensor =~ /^${Sensor:regex}$/ and\r\n r._measurement == \"temperature\" and\r\n r._field == \"degrees\"\r\n )\r\n |> aggregateWindow(every:10s, fn: last)",
"refId": "A"
}
],
"thresholds": [],
"timeRegions": [],
"title": "Temperature Sensors",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"transformations": [
{
"id": "labelsToFields",
"options": {
"valueLabel": "sensor"
}
}
],
"type": "graph",
"xaxis": {
"mode": "time",
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:33",
"format": "celsius",
"logBase": 1,
"show": true
},
{
"$$hashKey": "object:34",
"format": "short",
"logBase": 1,
"show": true
}
],
"yaxis": {
"align": false
}
},
{
"collapsed": false,
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 12
},
"id": 55,
"panels": [],
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"refId": "A"
}
],
"title": "Firewall",
"type": "row"
},
{
"datasource": {
"type": "elasticsearch",
"uid": "${ESdataSource}"
},
"fieldConfig": {
"defaults": {
"mappings": [
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 6,
"x": 0,
"y": 13
},
"id": 111,
"links": [],
"options": {
"colorMode": "value",
"fieldOptions": {
"calcs": [
"sum"
]
},
"graphMode": "area",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"sum"
],
"fields": "",
"values": false
},
"text": {},
"textMode": "auto"
},
"pluginVersion": "9.2.10",
"targets": [
{
"bucketAggs": [
{
"$$hashKey": "object:14",
"field": "timestamp",
"id": "2",
"settings": {
"interval": "auto",
"min_doc_count": 0,
"trimEdges": 0
},
"type": "date_histogram"
}
],
"datasource": {
"type": "elasticsearch",
"uid": "${ESdataSource}"
},
"metrics": [
{
"$$hashKey": "object:12",
"field": "select field",
"id": "1",
"type": "count"
}
],
"query": "interface:$iface AND action:\"block\"",
"refId": "A",
"target": "",
"timeField": "timestamp"
}
],
"title": "Firewall Blocked Events on $iface",
"type": "stat"
},
{
"circleMaxSize": "",
"circleMinSize": "",
"colors": [
"#37872D",
"#E0B400",
"#C4162A",
"#8F3BB8"
],
"datasource": {
"type": "elasticsearch",
"uid": "${ESdataSource}"
},
"decimals": 0,
"esGeoPoint": "src_location",
"esLocationName": "src_ip",
"esMetric": "Count",
"gridPos": {
"h": 11,
"w": 13,
"x": 6,
"y": 13
},
"height": "",
"hideEmpty": false,
"hideZero": false,
"id": 59,
"initialZoom": "1",
"links": [],
"locationData": "countries",
"mapCenter": "(0°, 0°)",
"mapCenterLatitude": 0,
"mapCenterLongitude": 0,
"maxDataPoints": 1,
"mouseWheelZoom": false,
"showLegend": true,
"stickyLabels": false,
"tableQueryOptions": {
"geohashField": "geohash",
"labelField": "src_ip_geo_country",
"latitudeField": "src_ip_lat",
"longitudeField": "src_ip_long",
"metricField": "Count",
"queryType": "coordinates"
},
"targets": [
{
"alias": "",
"bucketAggs": [
{
"field": "src-ip-geo-country",
"id": "2",
"settings": {
"min_doc_count": "1",
"order": "desc",
"orderBy": "_term",
"size": "0"
},
"type": "terms"
},
{
"field": "timestamp",
"id": "3",
"settings": {
"interval": "auto",
"min_doc_count": "0",
"timeZone": "utc",
"trimEdges": "0"
},
"type": "date_histogram"
}
],
"datasource": {
"type": "elasticsearch",
"uid": "${ESdataSource}"
},
"dsType": "elasticsearch",
"hide": false,
"metrics": [
{
"hide": false,
"id": "1",
"type": "count"
}
],
"query": "interface:$iface AND src-ip:$src_ip AND action:\"block\" AND source:$Host",
"refId": "A",
"timeField": "timestamp"
}
],
"thresholds": "10,100,500",
"title": "Firewall Blocked Event Locations on $iface",
"type": "grafana-worldmap-panel",
"unitPlural": "",
"unitSingle": "",
"valueName": "total"
},
{
"datasource": {
"type": "elasticsearch",
"uid": "${ESdataSource}"
},
"fieldConfig": {
"defaults": {
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 5,
"x": 19,
"y": 13
},
"id": 67,
"links": [],
"maxDataPoints": 100,
"options": {
"colorMode": "value",
"fieldOptions": {
"calcs": [
"first"
]
},
"graphMode": "none",
"justifyMode": "center",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"first"
],
"fields": "/^src\\-ip$/",
"values": true
},
"text": {},
"textMode": "value"
},
"pluginVersion": "9.2.10",
"targets": [
{
"bucketAggs": [
{
"$$hashKey": "object:120",
"fake": true,
"field": "src-ip",
"id": "3",
"settings": {
"min_doc_count": 1,
"order": "desc",
"orderBy": "_count",
"size": "1"
},
"type": "terms"
}
],
"datasource": {
"type": "elasticsearch",
"uid": "${ESdataSource}"
},
"dsType": "elasticsearch",
"metrics": [
{
"$$hashKey": "object:118",
"field": "select field",
"id": "1",
"type": "count"
}
],
"query": "action:\"block\" AND interface:$iface AND src-ip:$src_ip AND dst-port:$dst_port and source:$Host",
"refId": "A",
"target": "",
"timeField": "timestamp"
}
],
"title": "Top IP Blocked on $iface",
"transformations": [],
"type": "stat"
},
{
"datasource": {
"type": "elasticsearch",
"uid": "${ESdataSource}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
}
},
"decimals": 0,
"mappings": [],
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 6,
"x": 0,
"y": 16
},
"id": 61,
"links": [],
"maxDataPoints": 1,
"options": {
"legend": {
"calcs": [],
"displayMode": "table",
"placement": "right",
"showLegend": true,
"values": [
"value"
]
},
"pieType": "pie",
"reduceOptions": {
"calcs": [
"sum"
],
"fields": "",
"values": false
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"alias": "",
"bucketAggs": [
{
"$$hashKey": "object:1775",
"fake": true,
"field": "dst-port",
"id": "3",
"settings": {
"min_doc_count": 1,
"order": "desc",
"orderBy": "_count",
"size": "5"
},
"type": "terms"
},
{
"$$hashKey": "object:1776",
"field": "timestamp",
"id": "2",
"settings": {
"interval": "auto",
"min_doc_count": 0,
"trimEdges": 0
},
"type": "date_histogram"
}
],
"datasource": {
"type": "elasticsearch",
"uid": "${ESdataSource}"
},
"dsType": "elasticsearch",
"metrics": [
{
"$$hashKey": "object:1773",
"field": "select field",
"id": "1",
"type": "count"
}
],
"query": "interface:$iface AND src-ip:$src_ip AND dst-port:$dst_port AND action:\"block\" AND source:$Host",
"refId": "A",
"target": "",
"timeField": "timestamp"
}
],
"title": "Firewall Blocked Destination Ports on $iface",
"type": "piechart"
},
{
"datasource": {
"type": "elasticsearch",
"uid": "${ESdataSource}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
}
},
"decimals": 0,
"mappings": [],
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 5,
"x": 19,
"y": 16
},
"id": 65,
"links": [],
"maxDataPoints": 1,
"options": {
"legend": {
"calcs": [],
"displayMode": "table",
"placement": "right",
"showLegend": true,
"values": [
"value"
]
},
"pieType": "pie",
"reduceOptions": {
"calcs": [
"sum"
],
"fields": "",
"values": false
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"bucketAggs": [
{
"$$hashKey": "object:1049",
"fake": true,
"field": "protocol-name",
"id": "3",
"settings": {
"min_doc_count": 1,
"order": "desc",
"orderBy": "_term",
"size": "0"
},
"type": "terms"
},
{
"$$hashKey": "object:1050",
"field": "timestamp",
"id": "2",
"settings": {
"interval": "auto",
"min_doc_count": 0,
"trimEdges": 0
},
"type": "date_histogram"
}
],
"datasource": {
"type": "elasticsearch",
"uid": "${ESdataSource}"
},
"dsType": "elasticsearch",
"metrics": [
{
"$$hashKey": "object:1047",
"field": "select field",
"id": "1",
"type": "count"
}
],
"query": "interface:$iface AND src-ip:$src_ip AND action:\"block\" AND source:$Host",
"refId": "A",
"timeField": "timestamp"
}
],
"title": "Firewall Blocked Protocols on $iface",
"type": "piechart"
},
{
"collapsed": false,
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 24
},
"id": 24,
"panels": [],
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"refId": "A"
}
],
"title": "Network Stats",
"type": "row"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 8,
"w": 8,
"x": 0,
"y": 25
},
"hiddenSeries": false,
"id": 26,
"legend": {
"alignAsTable": true,
"avg": true,
"current": true,
"max": true,
"min": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"maxDataPoints": 9000,
"nullPointMode": "null",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "9.2.10",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) =>\r\n r.host =~ /^${Host:regex}$/ and\r\n r.gateway_name =~ /^${Gateway:regex}$/ and\r\n r._measurement == \"gateways\" and\r\n r._field == \"delay\"\r\n )",
"refId": "A"
}
],
"thresholds": [],
"timeRegions": [],
"title": "Gateway RTT - $Gateway ",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"transformations": [
{
"id": "labelsToFields",
"options": {
"valueLabel": "gateway_name"
}
}
],
"type": "graph",
"xaxis": {
"mode": "time",
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:164",
"format": "ms",
"logBase": 10,
"show": true
},
{
"$$hashKey": "object:165",
"format": "short",
"logBase": 1,
"show": true
}
],
"yaxis": {
"align": false
}
},
{
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "center",
"displayMode": "color-text",
"filterable": true,
"inspect": false,
"minWidth": 1
},
"mappings": [
{
"options": {
"0": {
"index": 2,
"text": "DOWN"
},
"1": {
"index": 1,
"text": "UP"
},
"2": {
"index": 0,
"text": "UNKNOWN"
}
},
"type": "value"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "text",
"value": null
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Status"
},
"properties": [
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "transparent",
"value": null
},
{
"color": "red",
"value": 0
},
{
"color": "green",
"value": 1
},
{
"color": "orange",
"value": 2
}
]
}
}
]
}
]
},
"gridPos": {
"h": 10,
"w": 16,
"x": 8,
"y": 25
},
"id": 32,
"options": {
"footer": {
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"frameIndex": 0,
"showHeader": true,
"sortBy": []
},
"pluginVersion": "9.2.10",
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: -30s)\r\n |> filter(fn: (r) =>\r\n r.host =~ /^${Host:regex}$/ and\r\n r._measurement == \"interface\"\r\n )\r\n |> last()\r\n |> group()\r\n |> keep(columns: [\"friendlyname\", \"ip4_address\", \"ip4_subnet\", \"mac_address\", \"name\", \"_value\"])\r\n |> sort(columns:[\"name\"])",
"refId": "A"
}
],
"title": "Interface Summary",
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {},
"indexByName": {
"_value": 5,
"friendlyname": 1,
"ip4_address": 2,
"ip4_subnet": 3,
"mac_address": 4,
"name": 0
},
"renameByName": {
"_value": "Status",
"friendlyname": "Friendly Name",
"ip4_address": "IPv4 Address",
"ip4_subnet": "Subnet",
"mac_address": "Physical Address",
"name": "Interface"
}
}
}
],
"type": "table"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": {
"uid": "${dataSource}"
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 8,
"w": 8,
"x": 0,
"y": 33
},
"hiddenSeries": false,
"id": 38,
"legend": {
"alignAsTable": true,
"avg": true,
"current": true,
"max": true,
"min": false,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"maxDataPoints": 9000,
"nullPointMode": "null",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "9.2.10",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"datasource": {
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) =>\r\n r.host =~ /^${Host:regex}$/ and\r\n r.gateway_name =~ /^${Gateway:regex}$/ and\r\n r._measurement == \"gateways\" and\r\n r._field == \"loss\"\r\n )",
"refId": "A"
}
],
"thresholds": [],
"timeRegions": [],
"title": "Gateway Loss - $Gateway ",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"transformations": [
{
"id": "labelsToFields",
"options": {
"valueLabel": "gateway_name"
}
}
],
"type": "graph",
"xaxis": {
"mode": "time",
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:97",
"decimals": 0,
"format": "percent",
"logBase": 1,
"max": "100",
"min": "0",
"show": true
},
{
"$$hashKey": "object:98",
"format": "short",
"logBase": 1,
"show": true
}
],
"yaxis": {
"align": false
}
},
{
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "center",
"displayMode": "color-text",
"filterable": true,
"inspect": false,
"minWidth": 1
},
"mappings": [
{
"options": {
"0": {
"color": "red",
"index": 0,
"text": "OFFLINE"
},
"1": {
"color": "green",
"index": 1,
"text": "ONLINE"
}
},
"type": "value"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "text",
"value": null
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 6,
"w": 16,
"x": 8,
"y": 35
},
"id": 46,
"options": {
"footer": {
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"frameIndex": 3,
"showHeader": true,
"sortBy": [
{
"desc": false
}
]
},
"pluginVersion": "9.2.10",
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: -30s)\r\n |> filter(fn: (r) =>\r\n r.host =~ /^${Host:regex}$/ and\r\n r._measurement == \"gateways\" and\r\n r._field =~ /gwdescr|source|monitor|status|gateway_name|interface/\r\n )\r\n |> last()\r\n |> map(fn: (r) => ({_value:r._value, _time:r._time, _field:r._field}))",
"refId": "A"
}
],
"title": "Gateway Summary - $Gateway",
"transformations": [
{
"id": "filterFieldsByName",
"options": {
"include": {
"names": [
"gwdescr",
"monitor",
"source",
"status"
]
}
}
},
{
"id": "concatenate",
"options": {
"frameNameLabel": "frame",
"frameNameMode": "drop"
}
},
{
"id": "organize",
"options": {
"excludeByName": {},
"indexByName": {},
"renameByName": {
"gwdescr": "Gateway Description",
"monitor": "Monitor IP",
"source": "Source IP",
"status": "Status"
}
}
}
],
"type": "table"
},
{
"collapsed": false,
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 41
},
"id": 30,
"panels": [],
"repeat": "WAN",
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"refId": "A"
}
],
"title": "WAN Interface - $WAN",
"type": "row"
},
{
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "center",
"displayMode": "color-text",
"filterable": true,
"inspect": false,
"minWidth": 1
},
"mappings": [
{
"options": {
"0": {
"index": 2,
"text": "DOWN"
},
"1": {
"index": 1,
"text": "UP"
},
"2": {
"index": 0,
"text": "UNKNOWN"
}
},
"type": "value"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "text",
"value": null
},
{
"color": "red",
"value": 0
},
{
"color": "green",
"value": 1
},
{
"color": "orange",
"value": 2
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 24,
"x": 0,
"y": 42
},
"id": 28,
"options": {
"footer": {
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"frameIndex": 7,
"showHeader": true,
"sortBy": []
},
"pluginVersion": "9.2.10",
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: -30s)\r\n |> filter(fn: (r) => \r\n r.host =~ /^${Host:regex}$/ and\r\n r.name =~ /^${WAN:regex}$/ and\r\n r._measurement == \"interface\" and\r\n r._field == \"status\")\r\n |> group()\r\n |> last()\r\n |> keep(columns: [\"friendlyname\", \"ip4_address\", \"name\", \"ip4_subnet\" \"mac_address\", \"_value\"])",
"refId": "A"
}
],
"title": "Interface Summary",
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {},
"indexByName": {
"_value": 5,
"friendlyname": 1,
"ip4_address": 2,
"ip4_subnet": 3,
"mac_address": 4,
"name": 0
},
"renameByName": {
"_value": "Status",
"friendlyname": "Friendly Name",
"ip4_address": "IPV4 Address",
"ip4_subnet": "Subnet",
"mac_address": "Physical Address",
"name": "Interface"
}
}
}
],
"type": "table"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": {
"uid": "${dataSource}"
},
"decimals": 2,
"description": "",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 7,
"w": 6,
"x": 0,
"y": 45
},
"hiddenSeries": false,
"id": 34,
"legend": {
"alignAsTable": true,
"avg": true,
"current": true,
"max": true,
"min": false,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"maxDataPoints": 9000,
"nullPointMode": "null",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "9.2.10",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"datasource": {
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => \r\n r.host =~ /^${Host:regex}$/ and\r\n r.interface =~ /^${WAN:regex}$/ and \r\n r._measurement == \"net\" and\r\n r._field =~ /bytes_recv|bytes_sent/\r\n )\r\n |> aggregateWindow(every: 10s, fn: last)\r\n |> derivative(unit:1s)\r\n |> map(fn: (r) => ({\r\n r with\r\n _value: r._value * 8.0\r\n })\r\n )\r\n |> map(fn: (r) => ({_value:r._value, _time:r._time, _field:r._field}))",
"refId": "A"
}
],
"thresholds": [],
"timeRegions": [],
"title": "WAN Traffic - Bits/sec",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"transformations": [
{
"id": "concatenate",
"options": {
"frameNameLabel": "frame",
"frameNameMode": "drop"
}
},
{
"id": "organize",
"options": {
"excludeByName": {},
"indexByName": {},
"renameByName": {
"Time": "",
"bytes_recv": "Bits Recv",
"bytes_sent": "Bits Sent"
}
}
}
],
"type": "graph",
"xaxis": {
"mode": "time",
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:63",
"decimals": 2,
"format": "bps",
"logBase": 2,
"show": true
},
{
"$$hashKey": "object:64",
"decimals": 2,
"format": "short",
"logBase": 1,
"show": true
}
],
"yaxis": {
"align": false
}
},
{
"datasource": {
"uid": "${dataSource}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"decimals": 2,
"mappings": [
{
"options": {
"match": "null",
"result": {
"index": 0,
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "bps"
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 5,
"x": 6,
"y": 45
},
"id": 36,
"maxDataPoints": 9000,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"text": {},
"textMode": "auto"
},
"pluginVersion": "9.2.10",
"targets": [
{
"datasource": {
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: -30s)\r\n |> filter(fn: (r) => \r\n r.host =~ /^${Host:regex}$/ and\r\n r.interface =~ /^${WAN:regex}$/ and\r\n r._measurement == \"net\" and\r\n r._field =~ /bytes_recv|bytes_sent/\r\n )\r\n |> derivative(unit:1s)\r\n |> map(fn: (r) => ({\r\n r with\r\n _value: r._value * 8.0\r\n })\r\n )\r\n |> aggregateWindow(every: 10s, fn: last)\r\n |> map(fn: (r) => ({_value:r._value, _time:r._time, _field:r._field}))\r\n |> last()",
"refId": "A"
}
],
"title": "WAN Traffic - Bits/sec",
"transformations": [
{
"id": "concatenate",
"options": {
"frameNameLabel": "frame",
"frameNameMode": "drop"
}
},
{
"id": "organize",
"options": {
"excludeByName": {
"Time": true
},
"indexByName": {},
"renameByName": {
"bytes_recv": "Bits Recv",
"bytes_sent": "Bits Sent"
}
}
}
],
"type": "stat"
},
{
"datasource": {
"uid": "${dataSource}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"decimals": 2,
"mappings": [
{
"options": {
"match": "null",
"result": {
"index": 0,
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "bytes"
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 5,
"x": 11,
"y": 45
},
"hideTimeOverride": true,
"id": 40,
"maxDataPoints": 9000,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"sum"
],
"fields": "",
"values": false
},
"text": {},
"textMode": "auto"
},
"pluginVersion": "9.2.10",
"targets": [
{
"datasource": {
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: -30d)\r\n |> filter(fn: (r) => \r\n r.host =~ /^${Host:regex}$/ and\r\n r.interface =~ /^${WAN:regex}$/ and\r\n r._measurement == \"net\" and\r\n r._field =~ /bytes_recv|bytes_sent/\r\n )\r\n |> aggregateWindow(every: 1h, fn: last)\r\n |> difference(nonNegative: true)\r\n |> map(fn: (r) => ({_value:r._value, _time:r._time, _field:r._field}))",
"refId": "A"
}
],
"timeFrom": "now/M",
"title": "WAN - Bandwidth",
"transformations": [
{
"id": "concatenate",
"options": {
"frameNameLabel": "frame",
"frameNameMode": "drop"
}
},
{
"id": "organize",
"options": {
"excludeByName": {},
"indexByName": {},
"renameByName": {
"bytes_recv": "Bytes Recv - This Month",
"bytes_sent": "Bytes Sent - This Month"
}
}
}
],
"type": "stat"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": {
"uid": "${dataSource}"
},
"fieldConfig": {
"defaults": {
"unit": "short"
},
"overrides": []
},
"fill": 0,
"fillGradient": 0,
"gridPos": {
"h": 7,
"w": 8,
"x": 16,
"y": 45
},
"hiddenSeries": false,
"id": 42,
"legend": {
"alignAsTable": true,
"avg": true,
"current": true,
"max": true,
"min": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"maxDataPoints": 9000,
"nullPointMode": "null",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "9.2.10",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"datasource": {
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) =>\r\n r.interface =~ /^${WAN:regex}$/ and \r\n r.host =~ /^${Host:regex}$/ and\r\n r._measurement == \"net\" and\r\n r._field =~ /packets_recv|packets_sent/\r\n )\r\n |> aggregateWindow(every: 10s, fn: last)\r\n |> derivative(unit:1s)\r\n |> map(fn: (r) => ({_value:r._value, _time:r._time, _field:r._field}))",
"refId": "A"
}
],
"thresholds": [],
"timeRegions": [],
"title": "WAN - Throughput",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"transformations": [
{
"id": "concatenate",
"options": {
"frameNameLabel": "frame",
"frameNameMode": "drop"
}
},
{
"id": "organize",
"options": {
"excludeByName": {},
"indexByName": {},
"renameByName": {
"packets_recv": "Packets Recv",
"packets_sent": "Packets Sent"
}
}
}
],
"type": "graph",
"xaxis": {
"mode": "time",
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:191",
"decimals": 2,
"format": "short",
"logBase": 2,
"show": true
},
{
"$$hashKey": "object:192",
"format": "short",
"logBase": 1,
"show": true
}
],
"yaxis": {
"align": false
}
},
{
"collapsed": false,
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 52
},
"id": 48,
"panels": [],
"repeat": "LAN",
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"refId": "A"
}
],
"title": "LAN Interface - $LAN",
"type": "row"
},
{
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "center",
"displayMode": "color-text",
"filterable": true,
"minWidth": 1
},
"mappings": [
{
"options": {
"0": {
"index": 2,
"text": "DOWN"
},
"1": {
"index": 1,
"text": "UP"
},
"2": {
"index": 0,
"text": "UNKNOWN"
}
},
"type": "value"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "text"
},
{
"color": "red",
"value": 0
},
{
"color": "green",
"value": 1
},
{
"color": "orange",
"value": 2
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 24,
"x": 0,
"y": 53
},
"id": 52,
"options": {
"footer": {
"fields": "",
"reducer": [
"sum"
],
"show": false
},
"frameIndex": 7,
"showHeader": true
},
"pluginVersion": "8.3.3",
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: -30s)\r\n |> filter(fn: (r) => \r\n r.host =~ /^${Host:regex}$/ and\r\n r.name =~ /^${LAN:regex}$/ and\r\n r._measurement == \"interface\" and\r\n r._field == \"status\")\r\n |> group()\r\n |> last()\r\n |> keep(columns: [\"friendlyname\", \"ip4_address\", \"name\", \"ip4_subnet\" \"mac_address\", \"_value\"])",
"refId": "A"
}
],
"title": "Interface Summary",
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {},
"indexByName": {
"_value": 5,
"friendlyname": 1,
"ip4_address": 2,
"ip4_subnet": 3,
"mac_address": 4,
"name": 0
},
"renameByName": {
"_value": "Status",
"friendlyname": "Friendly Name",
"ip4_address": "IPV4 Address",
"ip4_subnet": "Subnet",
"mac_address": "Physical Address",
"name": "Interface"
}
}
}
],
"type": "table"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": {
"uid": "${dataSource}"
},
"decimals": 2,
"description": "",
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 7,
"w": 6,
"x": 0,
"y": 56
},
"hiddenSeries": false,
"id": 49,
"legend": {
"alignAsTable": true,
"avg": true,
"current": true,
"max": true,
"min": false,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"maxDataPoints": 9000,
"nullPointMode": "null",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "8.3.3",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"datasource": {
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => \r\n r.host =~ /^${Host:regex}$/ and\r\n r.interface =~ /^${LAN:regex}$/ and \r\n r._measurement == \"net\" and\r\n r._field =~ /bytes_recv|bytes_sent/\r\n )\r\n |> aggregateWindow(every: 10s, fn: last)\r\n |> derivative(unit:1s)\r\n |> map(fn: (r) => ({\r\n r with\r\n _value: r._value * 8.0\r\n })\r\n )\r\n |> map(fn: (r) => ({_value:r._value, _time:r._time, _field:r._field}))",
"refId": "A"
}
],
"thresholds": [],
"timeRegions": [],
"title": "${LAN} Traffic - Bits/sec",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"transformations": [
{
"id": "concatenate",
"options": {
"frameNameLabel": "frame",
"frameNameMode": "drop"
}
},
{
"id": "organize",
"options": {
"excludeByName": {},
"indexByName": {
"Time": 0,
"bytes_recv": 1,
"bytes_sent": 2
},
"renameByName": {
"bytes_recv": "Bits Recv",
"bytes_sent": "Bits Sent"
}
}
}
],
"type": "graph",
"xaxis": {
"mode": "time",
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:63",
"decimals": 2,
"format": "bps",
"logBase": 2,
"show": true
},
{
"$$hashKey": "object:64",
"decimals": 2,
"format": "short",
"logBase": 1,
"show": true
}
],
"yaxis": {
"align": false
}
},
{
"datasource": {
"uid": "${dataSource}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"decimals": 2,
"mappings": [
{
"options": {
"match": "null",
"result": {
"index": 0,
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
}
]
},
"unit": "bps"
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 5,
"x": 6,
"y": 56
},
"id": 51,
"maxDataPoints": 9000,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"text": {},
"textMode": "auto"
},
"pluginVersion": "8.3.3",
"targets": [
{
"datasource": {
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: -1m)\r\n |> filter(fn: (r) => \r\n r.host =~ /^${Host:regex}$/ and\r\n r.interface =~ /^${LAN:regex}$/ and\r\n r._measurement == \"net\" and\r\n r._field =~ /bytes_recv|bytes_sent/\r\n )\r\n |> derivative(unit:1s)\r\n |> map(fn: (r) => ({\r\n r with\r\n _value: r._value * 8.0\r\n })\r\n )\r\n |> aggregateWindow(every: 10s, fn: last)\r\n |> map(fn: (r) => ({_value:r._value, _time:r._time, _field:r._field}))\r\n |> last()",
"refId": "A"
}
],
"title": "${LAN} Traffic - Bits/sec",
"transformations": [
{
"id": "concatenate",
"options": {
"frameNameLabel": "frame",
"frameNameMode": "drop"
}
},
{
"id": "organize",
"options": {
"excludeByName": {
"Time": true
},
"indexByName": {
"Time": 0,
"bytes_recv": 1,
"bytes_sent": 2
},
"renameByName": {
"bytes_recv": "Bits Recv",
"bytes_sent": "Bits Sent"
}
}
}
],
"type": "stat"
},
{
"datasource": {
"uid": "${dataSource}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"decimals": 2,
"mappings": [
{
"options": {
"match": "null",
"result": {
"index": 0,
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
}
]
},
"unit": "bytes"
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 5,
"x": 11,
"y": 56
},
"hideTimeOverride": true,
"id": 50,
"maxDataPoints": 9000,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"sum"
],
"fields": "",
"values": false
},
"text": {},
"textMode": "auto"
},
"pluginVersion": "8.3.3",
"targets": [
{
"datasource": {
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: -30d)\r\n |> filter(fn: (r) => \r\n r.host =~ /^${Host:regex}$/ and\r\n r.interface =~ /^${LAN:regex}$/ and\r\n r._measurement == \"net\" and\r\n r._field =~ /bytes_recv|bytes_sent/\r\n )\r\n |> aggregateWindow(every: 1h, fn: last)\r\n |> difference(nonNegative: true)\r\n |> map(fn: (r) => ({_value:r._value, _time:r._time, _field:r._field}))",
"refId": "A"
}
],
"timeFrom": "now/M",
"title": "${LAN} - Bandwidth",
"transformations": [
{
"id": "concatenate",
"options": {
"frameNameLabel": "frame",
"frameNameMode": "drop"
}
},
{
"id": "organize",
"options": {
"excludeByName": {},
"indexByName": {
"Time": 0,
"bytes_recv": 1,
"bytes_sent": 2
},
"renameByName": {
"bytes_recv": "Bytes Recv - This Month",
"bytes_sent": "Bytes Sent - This Month"
}
}
}
],
"type": "stat"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": {
"uid": "${dataSource}"
},
"decimals": 2,
"fieldConfig": {
"defaults": {
"unit": "short"
},
"overrides": []
},
"fill": 0,
"fillGradient": 0,
"gridPos": {
"h": 7,
"w": 8,
"x": 16,
"y": 56
},
"hiddenSeries": false,
"id": 53,
"legend": {
"alignAsTable": true,
"avg": true,
"current": true,
"hideZero": true,
"max": true,
"min": true,
"show": true,
"total": false,
"values": true
},
"lines": true,
"linewidth": 1,
"maxDataPoints": 9000,
"nullPointMode": "null",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "8.3.3",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"datasource": {
"uid": "${dataSource}"
},
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) =>\r\n r.interface =~ /^${LAN:regex}$/ and \r\n r.host =~ /^${Host:regex}$/ and\r\n r._measurement == \"net\" and\r\n r._field =~ /packets_recv|packets_sent/\r\n )\r\n |> aggregateWindow(every: 10s, fn: last)\r\n |> derivative(unit:1s)\r\n |> map(fn: (r) => ({_value:r._value, _time:r._time, _field:r._field}))",
"refId": "A"
}
],
"thresholds": [],
"timeRegions": [],
"title": "${LAN} - Throughput",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"transformations": [
{
"id": "concatenate",
"options": {
"frameNameLabel": "frame",
"frameNameMode": "drop"
}
},
{
"id": "organize",
"options": {
"excludeByName": {},
"indexByName": {},
"renameByName": {
"packets_recv": "Packets Recv",
"packets_sent": "Packets Sent"
}
}
}
],
"type": "graph",
"xaxis": {
"mode": "time",
"show": true,
"values": []
},
"yaxes": [
{
"$$hashKey": "object:176",
"decimals": 2,
"format": "short",
"logBase": 2,
"show": true
},
{
"$$hashKey": "object:177",
"decimals": 2,
"format": "short",
"label": "",
"logBase": 1,
"show": true
}
],
"yaxis": {
"align": false
}
}
],
"refresh": "10s",
"schemaVersion": 37,
"style": "dark",
"tags": [
"OPNsense",
"telegraf"
],
"templating": {
"list": [
{
"current": {
"selected": false,
"text": "InfluxDB",
"value": "InfluxDB"
},
"hide": 0,
"includeAll": false,
"label": "InfluxDB",
"multi": false,
"name": "dataSource",
"options": [],
"query": "influxdb",
"queryValue": "",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"type": "datasource"
},
{
"current": {
"selected": false,
"text": "Elasticsearch",
"value": "Elasticsearch"
},
"hide": 0,
"includeAll": false,
"label": "ElasticSearch",
"multi": false,
"name": "ESdataSource",
"options": [],
"query": "elasticsearch",
"queryValue": "",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"type": "datasource"
},
{
"current": {
"selected": false,
"text": [
"All"
],
"value": [
"$__all"
]
},
"datasource": {
"uid": "${dataSource}"
},
"definition": "from(bucket: v.defaultBucket)\r\n|> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n|> filter(fn:(r) => r._measurement == \"pf\")\r\n|> keyValues(keyColumns: [\"host\"])\r\n|> group()\r\n|> keep(columns: [\"host\"])\r\n|> distinct(column: \"host\")",
"hide": 0,
"includeAll": true,
"label": "OPNsense",
"multi": true,
"name": "Host",
"options": [],
"query": "from(bucket: v.defaultBucket)\r\n|> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n|> filter(fn:(r) => r._measurement == \"pf\")\r\n|> keyValues(keyColumns: [\"host\"])\r\n|> group()\r\n|> keep(columns: [\"host\"])\r\n|> distinct(column: \"host\")",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"sort": 0,
"type": "query"
},
{
"current": {
"selected": false,
"text": "All",
"value": "$__all"
},
"datasource": {
"uid": "${dataSource}"
},
"definition": "from(bucket: v.defaultBucket)\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn:(r) => r._measurement == \"disk\" and\r\n r.host =~ /^${Host:regex}$/)\r\n |> keyValues(keyColumns: [\"device\"])\r\n |> group()\r\n |> keep(columns: [\"device\"])\r\n |> distinct(column: \"device\")",
"hide": 0,
"includeAll": true,
"multi": false,
"name": "Disk",
"options": [],
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn:(r) => r._measurement == \"disk\" and\r\n r.host =~ /^${Host:regex}$/)\r\n |> keyValues(keyColumns: [\"device\"])\r\n |> group()\r\n |> keep(columns: [\"device\"])\r\n |> distinct(column: \"device\")",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"sort": 0,
"type": "query"
},
{
"current": {
"selected": false,
"text": "All",
"value": "$__all"
},
"datasource": {
"uid": "${dataSource}"
},
"definition": "from(bucket: v.defaultBucket)\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn:(r) => r._measurement == \"temperature\" and\r\n r.host =~ /^${Host:regex}$/)\r\n |> keyValues(keyColumns: [\"sensor\"])\r\n |> group()\r\n |> keep(columns: [\"sensor\"])\r\n |> distinct(column: \"sensor\")",
"hide": 0,
"includeAll": true,
"multi": false,
"name": "Sensor",
"options": [],
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn:(r) => r._measurement == \"temperature\" and\r\n r.host =~ /^${Host:regex}$/)\r\n |> keyValues(keyColumns: [\"sensor\"])\r\n |> group()\r\n |> keep(columns: [\"sensor\"])\r\n |> distinct(column: \"sensor\")",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"sort": 0,
"type": "query"
},
{
"current": {
"selected": false,
"text": [
"All"
],
"value": [
"$__all"
]
},
"datasource": {
"uid": "${dataSource}"
},
"definition": "from(bucket: v.defaultBucket)\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => \r\n r._measurement == \"interface\"\r\n )\r\n |> keyValues(keyColumns: [\"name\"])\r\n |> group()\r\n |> keep(columns: [\"name\"])\r\n |> sort(columns: [\"name\"])\r\n",
"hide": 0,
"includeAll": true,
"label": "",
"multi": true,
"name": "LAN",
"options": [],
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => \r\n r._measurement == \"interface\"\r\n )\r\n |> keyValues(keyColumns: [\"name\"])\r\n |> group()\r\n |> keep(columns: [\"name\"])\r\n |> sort(columns: [\"name\"])\r\n",
"refresh": 1,
"regex": "/^(?!enc0$|igb0$|igb2$|igb3$|ovpnc1$|wg0$)/",
"skipUrlSync": false,
"sort": 0,
"type": "query"
},
{
"current": {
"selected": false,
"text": [
"All"
],
"value": [
"$__all"
]
},
"datasource": {
"uid": "${dataSource}"
},
"definition": "from(bucket: v.defaultBucket)\r\n|> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n|> filter(fn:(r) => r._measurement == \"gateways\" and\r\n r.host =~ /^${Host:regex}$/)\r\n|> keyValues(keyColumns: [\"gateway_name\"])\r\n|> group()\r\n|> keep(columns: [\"gateway_name\"])\r\n|> distinct(column: \"gateway_name\")",
"hide": 0,
"includeAll": true,
"multi": true,
"name": "Gateway",
"options": [],
"query": "from(bucket: v.defaultBucket)\r\n|> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n|> filter(fn:(r) => r._measurement == \"gateways\" and\r\n r.host =~ /^${Host:regex}$/)\r\n|> keyValues(keyColumns: [\"gateway_name\"])\r\n|> group()\r\n|> keep(columns: [\"gateway_name\"])\r\n|> distinct(column: \"gateway_name\")",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"sort": 0,
"type": "query"
},
{
"current": {
"selected": false,
"text": [
"All"
],
"value": [
"$__all"
]
},
"hide": 0,
"includeAll": true,
"multi": true,
"name": "WAN",
"options": [
{
"selected": true,
"text": "All",
"value": "$__all"
},
{
"selected": false,
"text": "igb0",
"value": "igb0"
}
],
"query": "igb0",
"queryValue": "",
"skipUrlSync": false,
"type": "custom"
},
{
"current": {
"selected": false,
"text": [
"All"
],
"value": [
"$__all"
]
},
"datasource": {
"type": "influxdb",
"uid": "${dataSource}"
},
"definition": "from(bucket: v.defaultBucket)\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r._measurement == \"interface\")\r\n |> last()\r\n |> group(columns: [\"tag\"])\r\n |> keep(columns: [\"name\"])",
"hide": 0,
"includeAll": true,
"label": "FW_Interface",
"multi": true,
"name": "iface",
"options": [],
"query": "from(bucket: v.defaultBucket)\r\n |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n |> filter(fn: (r) => r._measurement == \"interface\")\r\n |> last()\r\n |> group(columns: [\"tag\"])\r\n |> keep(columns: [\"name\"])",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"sort": 0,
"type": "query"
},
{
"allValue": "*",
"current": {
"selected": false,
"text": [
"All"
],
"value": [
"$__all"
]
},
"datasource": {
"type": "elasticsearch",
"uid": "${ESdataSource}"
},
"definition": "{\"find\": \"terms\", \"field\": \"dst_port\", \"query\": \"interface:$iface\", \"timestamp\": {\n\"timestamp\" : \"now-$__Interval_ms\"\n}}",
"hide": 0,
"includeAll": true,
"label": "FW_Destination Port",
"multi": true,
"name": "dst_port",
"options": [],
"query": "{\"find\": \"terms\", \"field\": \"dst_port\", \"query\": \"interface:$iface\", \"timestamp\": {\n\"timestamp\" : \"now-$__Interval_ms\"\n}}",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"sort": 0,
"type": "query"
},
{
"allValue": "*",
"current": {
"selected": false,
"text": [
"All"
],
"value": [
"$__all"
]
},
"datasource": {
"type": "elasticsearch",
"uid": "${ESdataSource}"
},
"definition": "{\"find\": \"terms\", \"field\": \"src_ip\", \"query\": \"interface:$iface\", \"timestamp\": {\n\"timestamp\" : \"now-$__Interval_ms\"\n}}",
"hide": 0,
"includeAll": true,
"label": "FW_Source IP",
"multi": true,
"name": "src_ip",
"options": [],
"query": "{\"find\": \"terms\", \"field\": \"src_ip\", \"query\": \"interface:$iface\", \"timestamp\": {\n\"timestamp\" : \"now-$__Interval_ms\"\n}}",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"sort": 0,
"type": "query"
},
{
"allValue": "*",
"current": {
"selected": false,
"text": [
"All"
],
"value": [
"$__all"
]
},
"datasource": {
"type": "elasticsearch",
"uid": "${ESdataSource}"
},
"definition": "{\"find\": \"terms\", \"field\": \"dst_ip\", \"query\": \"interface:$iface\", \"timestamp\": {\n\"timestamp\" : \"now-$__Interval_ms\"\n}}",
"hide": 0,
"includeAll": true,
"label": "FW_Destination IP",
"multi": true,
"name": "dst_ip",
"options": [],
"query": "{\"find\": \"terms\", \"field\": \"dst_ip\", \"query\": \"interface:$iface\", \"timestamp\": {\n\"timestamp\" : \"now-$__Interval_ms\"\n}}",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"sort": 0,
"type": "query"
}
]
},
"time": {
"from": "now-24h",
"to": "now"
},
"timepicker": {
"hidden": false,
"refresh_intervals": [
"10s"
]
},
"timezone": "",
"title": "OPNsense",
"uid": "suTmk8c7k",
"version": 7,
"weekStart": ""
}