diff --git a/README.md b/README.md
index 01452a210..1b7661956 100644
--- a/README.md
+++ b/README.md
@@ -31,15 +31,6 @@
- Due to the move to ECS, the current Playbook plays may not alert correctly at this time.
- The osquery MacOS package does not install correctly.
-
-## Version 1.2.1 Beta 1 ISO Download
-
-[HH1.2.1-6.ISO](https://download.securityonion.net/file/Hybrid-Hunter/HH-1.2.1-6.iso)
-
-MD5: D7E66CA8AAC37E70E2A2F7BB12EB3C23
-SHA1: D91D921896F9ADA600EBA0ADAA548D8630B5341F
-SHA256: D69E327597AB429DCE13C1177BCE6C1FAD934E78A09F73D14778C2CAE616557B
-
### Warnings and Disclaimers
- This BETA release is BLEEDING EDGE and TOTALLY UNSUPPORTED!
@@ -55,33 +46,36 @@ SHA256: D69E327597AB429DCE13C1177BCE6C1FAD934E78A09F73D14778C2CAE616557B
Evaluation Mode:
-- ISO or a Single VM running Ubuntu 16.04 or CentOS 7
+- ISO or a Single VM running Ubuntu 18.04 or CentOS 7
- Minimum 12GB of RAM
- Minimum 4 CPU cores
- Minimum 2 NICs
Distributed:
-- 3 VMs running the ISO or Ubuntu 16.04 or CentOS 7 (You can mix and match)
+- 3 VMs running the ISO or Ubuntu 18.04 or CentOS 7 (You can mix and match)
- Minimum 8GB of RAM per VM
- Minimum 4 CPU cores per VM
- Minimum 2 NICs for forward nodes
-### Prerequisites for Network Based Install
+### Installation
-Install git if using a Centos 7 Minimal install:
+For most users, we recommend installing using [our ISO image](https://github.com/Security-Onion-Solutions/securityonion-saltstack/wiki/ISO).
+
+If instead you would like to try a manual installation (not using our ISO), you can build from CentOS 7 or Ubuntu 18.04.
+
+If using CentOS 7 Minimal, you will need to install git:
```sudo yum -y install git```
-### Installation
-
-Once you resolve those requirements or are using Ubuntu 16.04 do the following:
+Once you have git, then do the following:
```
git clone https://github.com/Security-Onion-Solutions/securityonion-saltstack
cd securityonion-saltstack
sudo bash so-setup-network
```
+
Follow the prompts and reboot if asked to do so.
Then proceed to the [Hybrid Hunter Quick Start Guide](https://github.com/Security-Onion-Solutions/securityonion-saltstack/wiki/Hybrid-Hunter-Quick-Start-Guide).
diff --git a/VERSION b/VERSION
index 6085e9465..23aa83906 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.2.1
+1.2.2
diff --git a/pillar/masters/example.sls b/pillar/masters/example.sls
deleted file mode 100644
index 28c9ed139..000000000
--- a/pillar/masters/example.sls
+++ /dev/null
@@ -1,10 +0,0 @@
-# Example Pillar file for a master
-master:
- esaccessip: 127.0.0.1
- esheap: CHANGEME
- esclustername: {{ grains.host }}
- freq: 0
- domainstats: 0
- lsheap: 1500m
- lsaccessip: 127.0.0.1
- elastalert: 1
\ No newline at end of file
diff --git a/pillar/nodes/example.sls b/pillar/nodes/example.sls
deleted file mode 100644
index 5516e7052..000000000
--- a/pillar/nodes/example.sls
+++ /dev/null
@@ -1,5 +0,0 @@
-# Example Pillar file for a sensor
-node:
- ls_heapsize: CHANGEME
- es_heapsize: CHANGEME
- node_type: CHANGEME
diff --git a/pillar/top.sls b/pillar/top.sls
index b956d0772..cc6863e22 100644
--- a/pillar/top.sls
+++ b/pillar/top.sls
@@ -1,4 +1,11 @@
base:
+ '*':
+ - patch.needs_restarting
+
+ '*_eval or *_helix or *_heavynode or *_sensor':
+ - match: compound
+ - zeek
+
'*_mastersearch or *_heavynode':
- match: compound
- logstash
@@ -66,7 +73,3 @@ base:
- logstash
- logstash.search
- minions.{{ grains.id }}
-
- '*':
- - patch.needs_restarting
- - docker.config
diff --git a/pillar/zeek/init.sls b/pillar/zeek/init.sls
new file mode 100644
index 000000000..10b92bb03
--- /dev/null
+++ b/pillar/zeek/init.sls
@@ -0,0 +1,55 @@
+zeek:
+ zeekctl:
+ MailTo: root@localhost
+ MailConnectionSummary: 1
+ MinDiskSpace: 5
+ MailHostUpDown: 1
+ LogRotationInterval: 3600
+ LogExpireInterval: 0
+ StatsLogEnable: 1
+ StatsLogExpireInterval: 0
+ StatusCmdShowAll: 0
+ CrashExpireInterval: 0
+ SitePolicyScripts: local.zeek
+ LogDir: /nsm/zeek/logs
+ SpoolDir: /nsm/zeek/spool
+ CfgDir: /opt/zeek/etc
+ CompressLogs: 1
+ local:
+ '@load':
+ - misc/loaded-scripts
+ - tuning/defaults
+ - misc/capture-loss
+ - misc/stats
+ - frameworks/software/vulnerable
+ - frameworks/software/version-changes
+ - protocols/ftp/software
+ - protocols/smtp/software
+ - protocols/ssh/software
+ - protocols/http/software
+ - protocols/dns/detect-external-names
+ - protocols/ftp/detect
+ - protocols/conn/known-hosts
+ - protocols/conn/known-services
+ - protocols/ssl/known-certs
+ - protocols/ssl/validate-certs
+ - protocols/ssl/log-hostcerts-only
+ - protocols/ssh/geo-data
+ - protocols/ssh/detect-bruteforcing
+ - protocols/ssh/interesting-hostnames
+ - protocols/http/detect-sqli
+ - frameworks/files/hash-all-files
+ - frameworks/files/detect-MHR
+ - policy/frameworks/notice/extend-email/hostnames
+ - ja3
+ - hassh
+ - intel
+ - cve-2020-0601
+ - securityonion/bpfconf
+ - securityonion/communityid
+ - securityonion/file-extraction
+ '@load-sigs':
+ - frameworks/signatures/detect-windows-shells
+ redef:
+ - LogAscii::use_json = T;
+ - LogAscii::json_timestamps = JSON::TS_ISO8601;
\ No newline at end of file
diff --git a/salt/common/grafana/grafana_dashboards/forward_nodes/sensor.json b/salt/common/grafana/grafana_dashboards/forward_nodes/sensor.json
deleted file mode 100644
index 8e35246eb..000000000
--- a/salt/common/grafana/grafana_dashboards/forward_nodes/sensor.json
+++ /dev/null
@@ -1,3937 +0,0 @@
-{
- "annotations": {
- "list": [
- {
- "builtIn": 1,
- "datasource": "-- Grafana --",
- "enable": true,
- "hide": true,
- "iconColor": "rgba(0, 211, 255, 1)",
- "name": "Annotations & Alerts",
- "type": "dashboard"
- }
- ]
- },
- "description": "This Dashboard provides a general overview of Sensors",
- "editable": true,
- "gnetId": 2381,
- "graphTooltip": 0,
- "id": 9,
- "iteration": 1543542047346,
- "links": [],
- "panels": [
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": true,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(245, 54, 54, 0.9)"
- ],
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "format": "percent",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": true,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 5,
- "w": 4,
- "x": 0,
- "y": 0
- },
- "id": 2,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": true,
- "lineColor": "rgb(31, 120, 193)",
- "show": true
- },
- "tableColumn": "",
- "targets": [
- {
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "cpu",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "usage_idle"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- },
- {
- "params": [
- "* -1 + 100"
- ],
- "type": "math"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- },
- {
- "condition": "AND",
- "key": "cpu",
- "operator": "=",
- "value": "cpu-total"
- }
- ]
- }
- ],
- "thresholds": "60,80,90",
- "title": "{{ SERVERNAME }} - CPU",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": true,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(245, 54, 54, 0.9)"
- ],
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "format": "bytes",
- "gauge": {
- "maxValue": "{{ ROOTFS }}",
- "minValue": 0,
- "show": true,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 5,
- "w": 4,
- "x": 4,
- "y": 0
- },
- "id": 12,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "tableColumn": "",
- "targets": [
- {
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "disk",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "used"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- },
- {
- "condition": "AND",
- "key": "path",
- "operator": "=",
- "value": "/"
- }
- ]
- }
- ],
- "thresholds": "{{ ROOTFS * '.80'|float }},{{ ROOTFS * '.90'|float }}",
- "title": "{{ SERVERNAME }} - Disk Used(/)",
- "transparent": false,
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": true,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(245, 54, 54, 0.9)"
- ],
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "format": "bytes",
- "gauge": {
- "maxValue": "{{ NSMFS }}",
- "minValue": 0,
- "show": true,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 5,
- "w": 4,
- "x": 8,
- "y": 0
- },
- "id": 31,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": false
- },
- "tableColumn": "",
- "targets": [
- {
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "disk",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "used"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- },
- {
- "condition": "AND",
- "key": "path",
- "operator": "=",
- "value": "/nsm"
- }
- ]
- }
- ],
- "thresholds": "{{ NSMFS * '.80'|float }},{{ NSMFS * '.90'|float }}",
- "title": "{{ SERVERNAME }} - Disk Used(/nsm)",
- "transparent": false,
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": true,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(245, 54, 54, 0.9)"
- ],
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "format": "percent",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": true,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 5,
- "w": 4,
- "x": 12,
- "y": 0
- },
- "id": 20,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": true
- },
- "tableColumn": "",
- "targets": [
- {
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "brodrop",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "drop"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- },
- {
- "params": [
- "* 100"
- ],
- "type": "math"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- }
- ]
- }
- ],
- "thresholds": "5,10",
- "title": "{{ SERVERNAME }} -Zeek Packet Loss",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": true,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(245, 54, 54, 0.9)"
- ],
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "format": "percent",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": true,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 5,
- "w": 4,
- "x": 16,
- "y": 0
- },
- "id": 21,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": true
- },
- "tableColumn": "",
- "targets": [
- {
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "suridrop",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "drop"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- },
- {
- "params": [
- "* 100"
- ],
- "type": "math"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- }
- ]
- }
- ],
- "thresholds": "5,10",
- "title": "{{ SERVERNAME }} - Suricata Packet Loss",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": true,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(245, 54, 54, 0.9)"
- ],
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "format": "percent",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": true,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 5,
- "w": 4,
- "x": 20,
- "y": 0
- },
- "id": 19,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": true
- },
- "tableColumn": "",
- "targets": [
- {
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "stenodrop",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "drop"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- }
- ]
- }
- ],
- "thresholds": "5,10",
- "title": "{{ SERVERNAME }} - PCAP Packet Loss",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "current"
- },
- {
- "aliasColors": {
- "Interrupt": "#70DBED",
- "Nice": "#629E51",
- "SoftIRQ": "#EA6460",
- "System": "#BF1B00",
- "User": "#1F78C1",
- "Wait": "#F2C96D",
- "cpu.mean": "#629E51"
- },
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "fill": 4,
- "grid": {},
- "gridPos": {
- "h": 6,
- "w": 8,
- "x": 0,
- "y": 5
- },
- "id": 4,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": true,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "System",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "cpu",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "usage_system"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- },
- {
- "condition": "AND",
- "key": "cpu",
- "operator": "=",
- "value": "cpu-total"
- }
- ]
- },
- {
- "alias": "User",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "cpu",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "B",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "usage_user"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- },
- {
- "condition": "AND",
- "key": "cpu",
- "operator": "=",
- "value": "cpu-total"
- }
- ]
- },
- {
- "alias": "Nice",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "cpu",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "C",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "usage_nice"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- },
- {
- "condition": "AND",
- "key": "cpu",
- "operator": "=",
- "value": "cpu-total"
- }
- ]
- },
- {
- "alias": "Interrupt",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "cpu",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "D",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "usage_irq"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- },
- {
- "condition": "AND",
- "key": "cpu",
- "operator": "=",
- "value": "cpu-total"
- }
- ]
- },
- {
- "alias": "Wait",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "cpu",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "E",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "usage_iowait"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- },
- {
- "condition": "AND",
- "key": "cpu",
- "operator": "=",
- "value": "cpu-total"
- }
- ]
- },
- {
- "alias": "SoftIRQ",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "cpu",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "F",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "usage_softirq"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- },
- {
- "condition": "AND",
- "key": "cpu",
- "operator": "=",
- "value": "cpu-total"
- }
- ]
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "{{ SERVERNAME }} - CPU Usage",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "percent",
- "label": "Percent(%)",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": true,
- "colors": [
- "rgba(245, 54, 54, 0.9)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(50, 172, 45, 0.97)"
- ],
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "format": "s",
- "gauge": {
- "maxValue": 1209600,
- "minValue": 0,
- "show": true,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 5,
- "w": 4,
- "x": 8,
- "y": 5
- },
- "id": 22,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": true
- },
- "tableColumn": "",
- "targets": [
- {
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "pcapage",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "seconds"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- }
- ]
- }
- ],
- "thresholds": "259200,432000",
- "title": "{{ SERVERNAME }} - PCAP Retention",
- "type": "singlestat",
- "valueFontSize": "70%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "current",
- "decimals": 1
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(245, 54, 54, 0.9)"
- ],
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "format": "percent",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 5,
- "w": 4,
- "x": 12,
- "y": 5
- },
- "id": 26,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": true,
- "lineColor": "rgb(31, 120, 193)",
- "show": true
- },
- "tableColumn": "",
- "targets": [
- {
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "docker_container_cpu",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "usage_percent"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- },
- {
- "params": [
- " / {{ CPUS }}"
- ],
- "type": "math"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- },
- {
- "condition": "AND",
- "key": "container_name",
- "operator": "=",
- "value": "so-zeek"
- }
- ]
- }
- ],
- "thresholds": "",
- "title": "{{ SERVERNAME }} - Zeek CPU Usage",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(245, 54, 54, 0.9)"
- ],
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "format": "percent",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 5,
- "w": 4,
- "x": 16,
- "y": 5
- },
- "id": 27,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": true,
- "lineColor": "rgb(31, 120, 193)",
- "show": true
- },
- "tableColumn": "",
- "targets": [
- {
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "docker_container_cpu",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "usage_percent"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- },
- {
- "params": [
- " / {{ CPUS }}"
- ],
- "type": "math"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- },
- {
- "condition": "AND",
- "key": "container_name",
- "operator": "=",
- "value": "so-suricata"
- }
- ]
- }
- ],
- "thresholds": "",
- "title": "{{ SERVERNAME }} - Suri CPU Usage",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(245, 54, 54, 0.9)"
- ],
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "format": "percent",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 5,
- "w": 4,
- "x": 20,
- "y": 5
- },
- "id": 28,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": true,
- "lineColor": "rgb(31, 120, 193)",
- "show": true
- },
- "tableColumn": "",
- "targets": [
- {
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "docker_container_cpu",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "usage_percent"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- },
- {
- "params": [
- " / {{ CPUS }}"
- ],
- "type": "math"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- },
- {
- "condition": "AND",
- "key": "container_name",
- "operator": "=",
- "value": "so-steno"
- }
- ]
- }
- ],
- "thresholds": "",
- "title": "{{ SERVERNAME }} - Steno CPU Usage",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "rgba(245, 54, 54, 0.9)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(50, 172, 45, 0.97)"
- ],
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "format": "bits",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 5,
- "w": 4,
- "x": 8,
- "y": 10
- },
- "id": 3,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": false,
- "lineColor": "rgb(31, 120, 193)",
- "show": true
- },
- "tableColumn": "",
- "targets": [
- {
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "mem",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "active"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- }
- ]
- }
- ],
- "thresholds": "",
- "title": "{{ SERVERNAME }} - Memory(Used)",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(245, 54, 54, 0.9)"
- ],
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "format": "decbytes",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 5,
- "w": 4,
- "x": 12,
- "y": 10
- },
- "id": 23,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": true,
- "lineColor": "rgb(31, 120, 193)",
- "show": true
- },
- "tableColumn": "",
- "targets": [
- {
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "docker_container_mem",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "usage"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- },
- {
- "condition": "AND",
- "key": "container_name",
- "operator": "=",
- "value": "so-zeek"
- }
- ]
- }
- ],
- "thresholds": "",
- "title": "{{ SERVERNAME }} - Zeek Memory Usage",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(245, 54, 54, 0.9)"
- ],
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "format": "decbytes",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 5,
- "w": 4,
- "x": 16,
- "y": 10
- },
- "id": 24,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": true,
- "lineColor": "rgb(31, 120, 193)",
- "show": true
- },
- "tableColumn": "",
- "targets": [
- {
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "docker_container_mem",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "usage"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- },
- {
- "condition": "AND",
- "key": "container_name",
- "operator": "=",
- "value": "so-suricata"
- }
- ]
- }
- ],
- "thresholds": "",
- "title": "{{ SERVERNAME }} - Suri Memory Usage",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "current"
- },
- {
- "cacheTimeout": null,
- "colorBackground": false,
- "colorValue": false,
- "colors": [
- "rgba(50, 172, 45, 0.97)",
- "rgba(237, 129, 40, 0.89)",
- "rgba(245, 54, 54, 0.9)"
- ],
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "format": "decbytes",
- "gauge": {
- "maxValue": 100,
- "minValue": 0,
- "show": false,
- "thresholdLabels": false,
- "thresholdMarkers": true
- },
- "gridPos": {
- "h": 5,
- "w": 4,
- "x": 20,
- "y": 10
- },
- "id": 25,
- "interval": null,
- "links": [],
- "mappingType": 1,
- "mappingTypes": [
- {
- "name": "value to text",
- "value": 1
- },
- {
- "name": "range to text",
- "value": 2
- }
- ],
- "maxDataPoints": 100,
- "nullPointMode": "connected",
- "nullText": null,
- "postfix": "",
- "postfixFontSize": "50%",
- "prefix": "",
- "prefixFontSize": "50%",
- "rangeMaps": [
- {
- "from": "null",
- "text": "N/A",
- "to": "null"
- }
- ],
- "sparkline": {
- "fillColor": "rgba(31, 118, 189, 0.18)",
- "full": true,
- "lineColor": "rgb(31, 120, 193)",
- "show": true
- },
- "tableColumn": "",
- "targets": [
- {
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "docker_container_mem",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "usage"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- },
- {
- "condition": "AND",
- "key": "container_name",
- "operator": "=",
- "value": "so-steno"
- }
- ]
- }
- ],
- "thresholds": "",
- "title": "{{ SERVERNAME }} - Steno Memory Usage",
- "type": "singlestat",
- "valueFontSize": "80%",
- "valueMaps": [
- {
- "op": "=",
- "text": "N/A",
- "value": "null"
- }
- ],
- "valueName": "current"
- },
- {
- "aliasColors": {
- "Buffered": "#6ED0E0",
- "Cached": "#F9934E",
- "Free": "#629E51",
- "Used": "#58140C"
- },
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "InfluxDB",
- "decimals": null,
- "editable": true,
- "error": false,
- "fill": 6,
- "grid": {},
- "gridPos": {
- "h": 10,
- "w": 8,
- "x": 0,
- "y": 11
- },
- "id": 5,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": true,
- "hideEmpty": false,
- "hideZero": false,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 0,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": true,
- "steppedLine": false,
- "targets": [
- {
- "alias": "Used",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "mem",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "used"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- }
- ]
- },
- {
- "alias": "Buffered",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "mem",
- "policy": "default",
- "refId": "B",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "buffered"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- }
- ]
- },
- {
- "alias": "Cached",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "mem",
- "policy": "default",
- "refId": "C",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "cached"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- }
- ]
- },
- {
- "alias": "Free",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "mem",
- "policy": "default",
- "refId": "D",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "free"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- }
- ]
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "{{ SERVERNAME }} - Memory",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "individual"
- },
- "transparent": false,
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "bytes",
- "label": "Bytes",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {
- "InBound": "#629E51",
- "OutBound": "#5195CE",
- "net.derivative": "#1F78C1"
- },
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "gridPos": {
- "h": 7,
- "w": 8,
- "x": 8,
- "y": 15
- },
- "id": 18,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": true,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "InBound",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "net",
- "orderByTime": "ASC",
- "policy": "default",
- "query": "SELECT 8 * derivative(mean(\"bytes_recv\"),1s) FROM \"net\" WHERE \"host\" = 'JumpHost' AND \"interface\" = 'eth0' AND $timeFilter GROUP BY time($interval) fill(null)",
- "rawQuery": false,
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "bytes_recv"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- },
- {
- "params": [
- "1s"
- ],
- "type": "derivative"
- },
- {
- "params": [
- "*8"
- ],
- "type": "math"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- },
- {
- "condition": "AND",
- "key": "interface",
- "operator": "=",
- "value": "{{ MONINT }}"
- }
- ]
- },
- {
- "alias": "OutBound",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "net",
- "orderByTime": "ASC",
- "policy": "default",
- "query": "SELECT 8 * derivative(mean(\"bytes_sent\"),1s) FROM \"net\" WHERE \"host\" = 'JumpHost' AND \"interface\" = 'eth0' AND $timeFilter GROUP BY time($interval) fill(null)",
- "rawQuery": false,
- "refId": "B",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "bytes_sent"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- },
- {
- "params": [
- "1s"
- ],
- "type": "derivative"
- },
- {
- "params": [
- "*8"
- ],
- "type": "math"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- },
- {
- "condition": "AND",
- "key": "interface",
- "operator": "=",
- "value": "{{ MONINT }}"
- }
- ]
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "{{ SERVERNAME }} - Monitor Traffic",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "bps",
- "label": "Bits/Sec",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "gridPos": {
- "h": 6,
- "w": 8,
- "x": 16,
- "y": 15
- },
- "id": 13,
- "legend": {
- "avg": false,
- "current": true,
- "max": false,
- "min": false,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "Read",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "diskio",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "read_bytes"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- },
- {
- "params": [],
- "type": "difference"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- }
- ]
- },
- {
- "alias": "Write",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "diskio",
- "orderByTime": "ASC",
- "policy": "default",
- "refId": "B",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "write_bytes"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- },
- {
- "params": [],
- "type": "difference"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- }
- ]
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "{{ SERVERNAME }} - Disk I/O",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "bytes",
- "label": "",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {
- "1 Minute Average": "#EAB839",
- "15 Minute Average": "#BF1B00",
- "5 Minute Average": "#E0752D"
- },
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "gridPos": {
- "h": 8,
- "w": 8,
- "x": 0,
- "y": 21
- },
- "id": 6,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": true,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "1 Minute Average",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "system",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "load1"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- }
- ]
- },
- {
- "alias": "5 Minute Average",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "system",
- "policy": "default",
- "refId": "B",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "load5"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- }
- ]
- },
- {
- "alias": "15 Minute Average",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "system",
- "policy": "default",
- "refId": "C",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "load15"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- }
- ]
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "{{ SERVERNAME }} - Load Average",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {
- "Blocked": "#BF1B00",
- "Running": "#7EB26D"
- },
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "fill": 7,
- "grid": {},
- "gridPos": {
- "h": 8,
- "w": 8,
- "x": 16,
- "y": 21
- },
- "id": 14,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": true,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 0,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": true,
- "steppedLine": false,
- "targets": [
- {
- "alias": "Blocked",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "hide": false,
- "measurement": "processes",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "blocked"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- }
- ]
- },
- {
- "alias": "Running",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "processes",
- "policy": "default",
- "refId": "B",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "running"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- }
- ]
- },
- {
- "alias": "Sleep",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "processes",
- "policy": "default",
- "refId": "C",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "sleeping"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- }
- ]
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "{{ SERVERNAME }} - Processes",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {
- "InBound": "#629E51",
- "OutBound": "#5195CE",
- "net.derivative": "#1F78C1"
- },
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "gridPos": {
- "h": 7,
- "w": 8,
- "x": 8,
- "y": 22
- },
- "id": 10,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": true,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "InBound",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "net",
- "orderByTime": "ASC",
- "policy": "default",
- "query": "SELECT 8 * derivative(mean(\"bytes_recv\"),1s) FROM \"net\" WHERE \"host\" = 'JumpHost' AND \"interface\" = 'eth0' AND $timeFilter GROUP BY time($interval) fill(null)",
- "rawQuery": false,
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "bytes_recv"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- },
- {
- "params": [
- "1s"
- ],
- "type": "derivative"
- },
- {
- "params": [
- "*8"
- ],
- "type": "math"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- },
- {
- "condition": "AND",
- "key": "interface",
- "operator": "=",
- "value": "{{ MANINT }}"
- }
- ]
- },
- {
- "alias": "OutBound",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "net",
- "orderByTime": "ASC",
- "policy": "default",
- "query": "SELECT 8 * derivative(mean(\"bytes_sent\"),1s) FROM \"net\" WHERE \"host\" = 'JumpHost' AND \"interface\" = 'eth0' AND $timeFilter GROUP BY time($interval) fill(null)",
- "rawQuery": false,
- "refId": "B",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "bytes_sent"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- },
- {
- "params": [
- "1s"
- ],
- "type": "derivative"
- },
- {
- "params": [
- "*8"
- ],
- "type": "math"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- },
- {
- "condition": "AND",
- "key": "interface",
- "operator": "=",
- "value": "{{ MANINT }}"
- }
- ]
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "{{ SERVERNAME }} - Management Traffic",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "bps",
- "label": "Bits/Sec",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {},
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "gridPos": {
- "h": 7,
- "w": 8,
- "x": 0,
- "y": 29
- },
- "id": 15,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": true,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "Threads",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "processes",
- "policy": "default",
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "total_threads"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- }
- ]
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "{{ SERVERNAME }} - Total Threads",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- },
- {
- "aliasColors": {
- "InBound": "#629E51",
- "OutBound": "#5195CE",
- "net.derivative": "#1F78C1"
- },
- "bars": false,
- "dashLength": 10,
- "dashes": false,
- "datasource": "InfluxDB",
- "editable": true,
- "error": false,
- "fill": 1,
- "grid": {},
- "gridPos": {
- "h": 7,
- "w": 8,
- "x": 8,
- "y": 29
- },
- "id": 29,
- "legend": {
- "alignAsTable": true,
- "avg": true,
- "current": true,
- "max": true,
- "min": true,
- "show": true,
- "total": false,
- "values": true
- },
- "lines": true,
- "linewidth": 2,
- "links": [],
- "nullPointMode": "connected",
- "percentage": false,
- "pointradius": 5,
- "points": false,
- "renderer": "flot",
- "seriesOverrides": [],
- "spaceLength": 10,
- "stack": false,
- "steppedLine": false,
- "targets": [
- {
- "alias": "InBound",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "docker_container_net",
- "orderByTime": "ASC",
- "policy": "default",
- "query": "SELECT 8 * derivative(mean(\"bytes_recv\"),1s) FROM \"net\" WHERE \"host\" = 'JumpHost' AND \"interface\" = 'eth0' AND $timeFilter GROUP BY time($interval) fill(null)",
- "rawQuery": false,
- "refId": "A",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "rx_bytes"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- },
- {
- "params": [
- "1s"
- ],
- "type": "derivative"
- },
- {
- "params": [
- "*8"
- ],
- "type": "math"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- },
- {
- "condition": "AND",
- "key": "container_name",
- "operator": "=",
- "value": "so-filebeat"
- }
- ]
- },
- {
- "alias": "OutBound",
- "dsType": "influxdb",
- "groupBy": [
- {
- "params": [
- "$Interval"
- ],
- "type": "time"
- },
- {
- "params": [
- "null"
- ],
- "type": "fill"
- }
- ],
- "measurement": "docker_container_net",
- "orderByTime": "ASC",
- "policy": "default",
- "query": "SELECT 8 * derivative(mean(\"bytes_sent\"),1s) FROM \"net\" WHERE \"host\" = 'JumpHost' AND \"interface\" = 'eth0' AND $timeFilter GROUP BY time($interval) fill(null)",
- "rawQuery": false,
- "refId": "B",
- "resultFormat": "time_series",
- "select": [
- [
- {
- "params": [
- "tx_bytes"
- ],
- "type": "field"
- },
- {
- "params": [],
- "type": "mean"
- },
- {
- "params": [
- "1s"
- ],
- "type": "derivative"
- },
- {
- "params": [
- "*8"
- ],
- "type": "math"
- }
- ]
- ],
- "tags": [
- {
- "key": "host",
- "operator": "=",
- "value": "{{ SERVERNAME }}"
- },
- {
- "condition": "AND",
- "key": "container_name",
- "operator": "=",
- "value": "so-filebeat"
- }
- ]
- }
- ],
- "thresholds": [],
- "timeFrom": null,
- "timeRegions": [],
- "timeShift": null,
- "title": "{{ SERVERNAME }} - Filebeat Traffic",
- "tooltip": {
- "msResolution": true,
- "shared": true,
- "sort": 0,
- "value_type": "cumulative"
- },
- "type": "graph",
- "xaxis": {
- "buckets": null,
- "mode": "time",
- "name": null,
- "show": true,
- "values": []
- },
- "yaxes": [
- {
- "format": "bps",
- "label": "Bits/Sec",
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- },
- {
- "format": "short",
- "label": null,
- "logBase": 1,
- "max": null,
- "min": null,
- "show": true
- }
- ],
- "yaxis": {
- "align": false,
- "alignLevel": null
- }
- }
- ],
- "refresh": false,
- "schemaVersion": 16,
- "style": "dark",
- "tags": [],
- "templating": {
- "list": [
- {
- "auto": true,
- "auto_count": 30,
- "auto_min": "10s",
- "current": {
- "text": "10s",
- "value": "10s"
- },
- "hide": 0,
- "label": null,
- "name": "Interval",
- "options": [
- {
- "selected": false,
- "text": "auto",
- "value": "$__auto_interval_Interval"
- },
- {
- "selected": true,
- "text": "10s",
- "value": "10s"
- },
- {
- "selected": false,
- "text": "1m",
- "value": "1m"
- },
- {
- "selected": false,
- "text": "10m",
- "value": "10m"
- },
- {
- "selected": false,
- "text": "30m",
- "value": "30m"
- },
- {
- "selected": false,
- "text": "1h",
- "value": "1h"
- },
- {
- "selected": false,
- "text": "6h",
- "value": "6h"
- },
- {
- "selected": false,
- "text": "12h",
- "value": "12h"
- },
- {
- "selected": false,
- "text": "1d",
- "value": "1d"
- },
- {
- "selected": false,
- "text": "7d",
- "value": "7d"
- },
- {
- "selected": false,
- "text": "14d",
- "value": "14d"
- },
- {
- "selected": false,
- "text": "30d",
- "value": "30d"
- }
- ],
- "query": "10s, 1m,10m,30m,1h,6h,12h,1d,7d,14d,30d",
- "refresh": 2,
- "skipUrlSync": false,
- "type": "interval"
- }
- ]
- },
- "time": {
- "from": "now-30m",
- "to": "now"
- },
- "timepicker": {
- "refresh_intervals": [
- "5s",
- "10s",
- "30s",
- "1m",
- "5m",
- "15m",
- "30m",
- "1h",
- "2h",
- "1d"
- ],
- "time_options": [
- "5m",
- "15m",
- "1h",
- "6h",
- "12h",
- "24h",
- "2d",
- "7d",
- "30d"
- ]
- },
- "timezone": "browser",
- "title": "Forward Node - {{ SERVERNAME }} Overview",
- "uid": "{{ UID }}",
- "version": 12
-}
diff --git a/salt/common/init.sls b/salt/common/init.sls
index df3e1bcc3..e9f5c2dd8 100644
--- a/salt/common/init.sls
+++ b/salt/common/init.sls
@@ -1,8 +1,3 @@
-{% set VERSION = salt['pillar.get']('static:soversion', 'HH1.2.1') %}
-{% set MASTER = salt['grains.get']('master') %}
-{% set GRAFANA = salt['pillar.get']('master:grafana', '0') %}
-{% set FLEETMASTER = salt['pillar.get']('static:fleet_master', False) %}
-{% set FLEETNODE = salt['pillar.get']('static:fleet_node', False) %}
# Add socore Group
socoregroup:
group.present:
@@ -18,34 +13,15 @@ socore:
- createhome: True
- shell: /bin/bash
-# Create a state directory
-
-statedir:
- file.directory:
- - name: /opt/so/state
- - user: 939
- - group: 939
- - makedirs: True
-
-salttmp:
- file.directory:
- - name: /opt/so/tmp
- - user: 939
- - group: 939
- - makedirs: True
# Install packages needed for the sensor
-
sensorpkgs:
pkg.installed:
- skip_suggestions: False
- pkgs:
- - docker-ce
- wget
- jq
{% if grains['os'] != 'CentOS' %}
- - python-docker
- - python-m2crypto
- apache2-utils
{% else %}
- net-tools
@@ -64,7 +40,6 @@ alwaysupdated:
- skip_suggestions: True
# Set time to UTC
-
Etc/UTC:
timezone.system
@@ -76,340 +51,4 @@ utilsyncscripts:
- group: 0
- file_mode: 755
- template: jinja
- - source: salt://common/tools/sbin
-
-# Make sure Docker is running!
-docker:
- service.running:
- - enable: True
-
-# Drop the correct nginx config based on role
-
-nginxconfdir:
- file.directory:
- - name: /opt/so/conf/nginx
- - user: 939
- - group: 939
- - makedirs: True
-
-nginxconf:
- file.managed:
- - name: /opt/so/conf/nginx/nginx.conf
- - user: 939
- - group: 939
- - template: jinja
- - source: salt://common/nginx/nginx.conf.{{ grains.role }}
-
-nginxlogdir:
- file.directory:
- - name: /opt/so/log/nginx/
- - user: 939
- - group: 939
- - makedirs: True
-
-nginxtmp:
- file.directory:
- - name: /opt/so/tmp/nginx/tmp
- - user: 939
- - group: 939
- - makedirs: True
-
-so-core:
- docker_container.running:
- - image: {{ MASTER }}:5000/soshybridhunter/so-core:{{ VERSION }}
- - hostname: so-core
- - user: socore
- - binds:
- - /opt/so:/opt/so:rw
- - /opt/so/conf/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- - /opt/so/log/nginx/:/var/log/nginx:rw
- - /opt/so/tmp/nginx/:/var/lib/nginx:rw
- - /opt/so/tmp/nginx/:/run:rw
- - /etc/pki/masterssl.crt:/etc/pki/nginx/server.crt:ro
- - /etc/pki/masterssl.key:/etc/pki/nginx/server.key:ro
- - /opt/so/conf/fleet/packages:/opt/socore/html/packages
- - cap_add: NET_BIND_SERVICE
- - port_bindings:
- - 80:80
- - 443:443
- {%- if FLEETMASTER or FLEETNODE %}
- - 8090:8090
- {%- endif %}
- - watch:
- - file: /opt/so/conf/nginx/nginx.conf
-
-# Add Telegraf to monitor all the things.
-tgraflogdir:
- file.directory:
- - name: /opt/so/log/telegraf
- - makedirs: True
-
-tgrafetcdir:
- file.directory:
- - name: /opt/so/conf/telegraf/etc
- - makedirs: True
-
-tgrafetsdir:
- file.directory:
- - name: /opt/so/conf/telegraf/scripts
- - makedirs: True
-
-tgrafsyncscripts:
- file.recurse:
- - name: /opt/so/conf/telegraf/scripts
- - user: 939
- - group: 939
- - file_mode: 755
- - template: jinja
- - source: salt://common/telegraf/scripts
-
-tgrafconf:
- file.managed:
- - name: /opt/so/conf/telegraf/etc/telegraf.conf
- - user: 939
- - group: 939
- - template: jinja
- - source: salt://common/telegraf/etc/telegraf.conf
-
-so-telegraf:
- docker_container.running:
- - image: {{ MASTER }}:5000/soshybridhunter/so-telegraf:{{ VERSION }}
- - environment:
- - HOST_PROC=/host/proc
- - HOST_ETC=/host/etc
- - HOST_SYS=/host/sys
- - HOST_MOUNT_PREFIX=/host
- - network_mode: host
- - port_bindings:
- - 127.0.0.1:8094:8094
- - binds:
- - /opt/so/log/telegraf:/var/log/telegraf:rw
- - /opt/so/conf/telegraf/etc/telegraf.conf:/etc/telegraf/telegraf.conf:ro
- - /var/run/utmp:/var/run/utmp:ro
- - /var/run/docker.sock:/var/run/docker.sock:ro
- - /:/host/root:ro
- - /sys:/host/sys:ro
- - /proc:/host/proc:ro
- - /nsm:/host/nsm:ro
- - /etc:/host/etc:ro
- {% if grains['role'] == 'so-master' or grains['role'] == 'so-eval' or grains['role'] == 'so-mastersearch' %}
- - /etc/pki/ca.crt:/etc/telegraf/ca.crt:ro
- {% else %}
- - /etc/ssl/certs/intca.crt:/etc/telegraf/ca.crt:ro
- {% endif %}
- - /etc/pki/influxdb.crt:/etc/telegraf/telegraf.crt:ro
- - /etc/pki/influxdb.key:/etc/telegraf/telegraf.key:ro
- - /opt/so/conf/telegraf/scripts:/scripts:ro
- - /opt/so/log/stenographer:/var/log/stenographer:ro
- - /opt/so/log/suricata:/var/log/suricata:ro
- - watch:
- - /opt/so/conf/telegraf/etc/telegraf.conf
- - /opt/so/conf/telegraf/scripts
-
-# If its a master or eval lets install the back end for now
-{% if grains['role'] in ['so-master', 'so-mastersearch', 'so-eval'] and GRAFANA == 1 %}
-
-# Influx DB
-influxconfdir:
- file.directory:
- - name: /opt/so/conf/influxdb/etc
- - makedirs: True
-
-influxdbdir:
- file.directory:
- - name: /nsm/influxdb
- - makedirs: True
-
-influxdbconf:
- file.managed:
- - name: /opt/so/conf/influxdb/etc/influxdb.conf
- - user: 939
- - group: 939
- - template: jinja
- - source: salt://common/influxdb/etc/influxdb.conf
-
-so-influxdb:
- docker_container.running:
- - image: {{ MASTER }}:5000/soshybridhunter/so-influxdb:{{ VERSION }}
- - hostname: influxdb
- - environment:
- - INFLUXDB_HTTP_LOG_ENABLED=false
- - binds:
- - /opt/so/conf/influxdb/etc/influxdb.conf:/etc/influxdb/influxdb.conf:ro
- - /nsm/influxdb:/var/lib/influxdb:rw
- - /etc/pki/influxdb.crt:/etc/ssl/influxdb.crt:ro
- - /etc/pki/influxdb.key:/etc/ssl/influxdb.key:ro
- - port_bindings:
- - 0.0.0.0:8086:8086
- - watch:
- - file: /opt/so/conf/influxdb/etc/influxdb.conf
-
-# Grafana all the things
-grafanadir:
- file.directory:
- - name: /nsm/grafana
- - user: 939
- - group: 939
- - makedirs: True
-
-grafanaconfdir:
- file.directory:
- - name: /opt/so/conf/grafana/etc
- - user: 939
- - group: 939
- - makedirs: True
-
-grafanadashdir:
- file.directory:
- - name: /opt/so/conf/grafana/grafana_dashboards
- - user: 939
- - group: 939
- - makedirs: True
-
-grafanadashmdir:
- file.directory:
- - name: /opt/so/conf/grafana/grafana_dashboards/master
- - user: 939
- - group: 939
- - makedirs: True
-
-grafanadashevaldir:
- file.directory:
- - name: /opt/so/conf/grafana/grafana_dashboards/eval
- - user: 939
- - group: 939
- - makedirs: True
-
-grafanadashfndir:
- file.directory:
- - name: /opt/so/conf/grafana/grafana_dashboards/sensor_nodes
- - user: 939
- - group: 939
- - makedirs: True
-
-grafanadashsndir:
- file.directory:
- - name: /opt/so/conf/grafana/grafana_dashboards/search_nodes
- - user: 939
- - group: 939
- - makedirs: True
-
-grafanaconf:
- file.recurse:
- - name: /opt/so/conf/grafana/etc
- - user: 939
- - group: 939
- - template: jinja
- - source: salt://common/grafana/etc
-
-{% if salt['pillar.get']('mastertab', False) %}
-{% for SN, SNDATA in salt['pillar.get']('mastertab', {}).items() %}
-{% set NODETYPE = SN.split('_')|last %}
-{% set SN = SN | regex_replace('_' ~ NODETYPE, '') %}
-dashboard-master:
- file.managed:
- - name: /opt/so/conf/grafana/grafana_dashboards/master/{{ SN }}-Master.json
- - user: 939
- - group: 939
- - template: jinja
- - source: salt://common/grafana/grafana_dashboards/master/master.json
- - defaults:
- SERVERNAME: {{ SN }}
- MANINT: {{ SNDATA.manint }}
- MONINT: {{ SNDATA.manint }}
- CPUS: {{ SNDATA.totalcpus }}
- UID: {{ SNDATA.guid }}
- ROOTFS: {{ SNDATA.rootfs }}
- NSMFS: {{ SNDATA.nsmfs }}
-
-{% endfor %}
-{% endif %}
-
-{% if salt['pillar.get']('sensorstab', False) %}
-{% for SN, SNDATA in salt['pillar.get']('sensorstab', {}).items() %}
-{% set NODETYPE = SN.split('_')|last %}
-{% set SN = SN | regex_replace('_' ~ NODETYPE, '') %}
-dashboard-{{ SN }}:
- file.managed:
- - name: /opt/so/conf/grafana/grafana_dashboards/sensor_nodes/{{ SN }}-Sensor.json
- - user: 939
- - group: 939
- - template: jinja
- - source: salt://common/grafana/grafana_dashboards/sensor_nodes/sensor.json
- - defaults:
- SERVERNAME: {{ SN }}
- MONINT: {{ SNDATA.monint }}
- MANINT: {{ SNDATA.manint }}
- CPUS: {{ SNDATA.totalcpus }}
- UID: {{ SNDATA.guid }}
- ROOTFS: {{ SNDATA.rootfs }}
- NSMFS: {{ SNDATA.nsmfs }}
-
-{% endfor %}
-{% endif %}
-
-{% if salt['pillar.get']('nodestab', False) %}
-{% for SN, SNDATA in salt['pillar.get']('nodestab', {}).items() %}
-{% set NODETYPE = SN.split('_')|last %}
-{% set SN = SN | regex_replace('_' ~ NODETYPE, '') %}
-dashboardsearch-{{ SN }}:
- file.managed:
- - name: /opt/so/conf/grafana/grafana_dashboards/search_nodes/{{ SN }}-Node.json
- - user: 939
- - group: 939
- - template: jinja
- - source: salt://common/grafana/grafana_dashboards/search_nodes/searchnode.json
- - defaults:
- SERVERNAME: {{ SN }}
- MANINT: {{ SNDATA.manint }}
- MONINT: {{ SNDATA.manint }}
- CPUS: {{ SNDATA.totalcpus }}
- UID: {{ SNDATA.guid }}
- ROOTFS: {{ SNDATA.rootfs }}
- NSMFS: {{ SNDATA.nsmfs }}
-
-{% endfor %}
-{% endif %}
-
-{% if salt['pillar.get']('evaltab', False) %}
-{% for SN, SNDATA in salt['pillar.get']('evaltab', {}).items() %}
-{% set NODETYPE = SN.split('_')|last %}
-{% set SN = SN | regex_replace('_' ~ NODETYPE, '') %}
-dashboard-{{ SN }}:
- file.managed:
- - name: /opt/so/conf/grafana/grafana_dashboards/eval/{{ SN }}-Node.json
- - user: 939
- - group: 939
- - template: jinja
- - source: salt://common/grafana/grafana_dashboards/eval/eval.json
- - defaults:
- SERVERNAME: {{ SN }}
- MANINT: {{ SNDATA.manint }}
- MONINT: {{ SNDATA.monint }}
- CPUS: {{ SNDATA.totalcpus }}
- UID: {{ SNDATA.guid }}
- ROOTFS: {{ SNDATA.rootfs }}
- NSMFS: {{ SNDATA.nsmfs }}
-
-{% endfor %}
-{% endif %}
-
-so-grafana:
- docker_container.running:
- - image: {{ MASTER }}:5000/soshybridhunter/so-grafana:{{ VERSION }}
- - hostname: grafana
- - user: socore
- - binds:
- - /nsm/grafana:/var/lib/grafana:rw
- - /opt/so/conf/grafana/etc/grafana.ini:/etc/grafana/grafana.ini:ro
- - /opt/so/conf/grafana/etc/datasources:/etc/grafana/provisioning/datasources:rw
- - /opt/so/conf/grafana/etc/dashboards:/etc/grafana/provisioning/dashboards:rw
- - /opt/so/conf/grafana/grafana_dashboards:/etc/grafana/grafana_dashboards:rw
- - environment:
- - GF_SECURITY_ADMIN_PASSWORD=augusta
- - port_bindings:
- - 0.0.0.0:3000:3000
- - watch:
- - file: /opt/so/conf/grafana/*
-
-{% endif %}
+ - source: salt://common/tools/sbin
\ No newline at end of file
diff --git a/salt/common/maps/broversion.map.jinja b/salt/common/maps/broversion.map.jinja
new file mode 100644
index 000000000..9a06b52ed
--- /dev/null
+++ b/salt/common/maps/broversion.map.jinja
@@ -0,0 +1,5 @@
+{% set docker = {
+ 'containers': [
+ 'so-zeek'
+ ]
+} %}
\ No newline at end of file
diff --git a/salt/common/maps/domainstats.map.jinja b/salt/common/maps/domainstats.map.jinja
new file mode 100644
index 000000000..221dcde03
--- /dev/null
+++ b/salt/common/maps/domainstats.map.jinja
@@ -0,0 +1,5 @@
+{% set docker = {
+ 'containers': [
+ 'so-domainstats'
+ ]
+} %}
\ No newline at end of file
diff --git a/salt/common/maps/eval.map.jinja b/salt/common/maps/eval.map.jinja
new file mode 100644
index 000000000..56f2116b9
--- /dev/null
+++ b/salt/common/maps/eval.map.jinja
@@ -0,0 +1,18 @@
+{% set docker = {
+ 'containers': [
+ 'so-nginx',
+ 'so-telegraf',
+ 'so-dockerregistry',
+ 'so-soc',
+ 'so-kratos',
+ 'so-idstools',
+ 'so-elasticsearch',
+ 'so-kibana',
+ 'so-steno',
+ 'so-suricata',
+ 'so-zeek',
+ 'so-curator',
+ 'so-elastalert',
+ 'so-soctopus'
+ ]
+} %}
\ No newline at end of file
diff --git a/salt/common/maps/fleet.map.jinja b/salt/common/maps/fleet.map.jinja
new file mode 100644
index 000000000..c55223125
--- /dev/null
+++ b/salt/common/maps/fleet.map.jinja
@@ -0,0 +1,10 @@
+{% set docker = {
+ 'containers': [
+ 'so-mysql',
+ 'so-fleet',
+ 'so-redis',
+ 'so-filebeat',
+ 'so-nginx',
+ 'so-telegraf'
+ ]
+} %}
\ No newline at end of file
diff --git a/salt/common/maps/fleet_master.map.jinja b/salt/common/maps/fleet_master.map.jinja
new file mode 100644
index 000000000..91850846c
--- /dev/null
+++ b/salt/common/maps/fleet_master.map.jinja
@@ -0,0 +1,7 @@
+{% set docker = {
+ 'containers': [
+ 'so-mysql',
+ 'so-fleet',
+ 'so-redis'
+ ]
+} %}
\ No newline at end of file
diff --git a/salt/common/maps/freq.map.jinja b/salt/common/maps/freq.map.jinja
new file mode 100644
index 000000000..d3f692484
--- /dev/null
+++ b/salt/common/maps/freq.map.jinja
@@ -0,0 +1,5 @@
+{% set docker = {
+ 'containers': [
+ 'so-freqserver'
+ ]
+} %}
\ No newline at end of file
diff --git a/salt/common/maps/grafana.map.jinja b/salt/common/maps/grafana.map.jinja
new file mode 100644
index 000000000..1118a50fe
--- /dev/null
+++ b/salt/common/maps/grafana.map.jinja
@@ -0,0 +1,6 @@
+{% set docker = {
+ 'containers': [
+ 'so-influxdb',
+ 'so-grafana'
+ ]
+} %}
\ No newline at end of file
diff --git a/salt/common/maps/heavynode.map.jinja b/salt/common/maps/heavynode.map.jinja
new file mode 100644
index 000000000..2b8257a6a
--- /dev/null
+++ b/salt/common/maps/heavynode.map.jinja
@@ -0,0 +1,14 @@
+{% set docker = {
+ 'containers': [
+ 'so-nginx',
+ 'so-telegraf',
+ 'so-redis',
+ 'so-logstash',
+ 'so-elasticsearch',
+ 'so-curator',
+ 'so-steno',
+ 'so-suricata',
+ 'so-wazuh',
+ 'so-filebeat
+ ]
+} %}
\ No newline at end of file
diff --git a/salt/common/maps/helixsensor.map.jinja b/salt/common/maps/helixsensor.map.jinja
new file mode 100644
index 000000000..84866de3a
--- /dev/null
+++ b/salt/common/maps/helixsensor.map.jinja
@@ -0,0 +1,12 @@
+{% set docker = {
+ 'containers': [
+ 'so-nginx',
+ 'so-telegraf',
+ 'so-idstools',
+ 'so-steno',
+ 'so-zeek',
+ 'so-redis',
+ 'so-logstash',
+ 'so-filebeat
+ ]
+} %}
\ No newline at end of file
diff --git a/salt/common/maps/hotnode.map.jinja b/salt/common/maps/hotnode.map.jinja
new file mode 100644
index 000000000..bc9d58360
--- /dev/null
+++ b/salt/common/maps/hotnode.map.jinja
@@ -0,0 +1,9 @@
+{% set docker = {
+ 'containers': [
+ 'so-nginx',
+ 'so-telegraf',
+ 'so-logstash',
+ 'so-elasticsearch',
+ 'so-curator',
+ ]
+} %}
\ No newline at end of file
diff --git a/salt/common/maps/master.map.jinja b/salt/common/maps/master.map.jinja
new file mode 100644
index 000000000..84918c39f
--- /dev/null
+++ b/salt/common/maps/master.map.jinja
@@ -0,0 +1,18 @@
+{% set docker = {
+ 'containers': [
+ 'so-dockerregistry',
+ 'so-nginx',
+ 'so-telegraf',
+ 'so-soc',
+ 'so-kratos',
+ 'so-acng',
+ 'so-idstools',
+ 'so-redis',
+ 'so-elasticsearch',
+ 'so-logstash',
+ 'so-kibana',
+ 'so-elastalert',
+ 'so-filebeat',
+ 'so-soctopus'
+ ]
+} %}
\ No newline at end of file
diff --git a/salt/common/maps/mastersearch.map.jinja b/salt/common/maps/mastersearch.map.jinja
new file mode 100644
index 000000000..9c2e6eff7
--- /dev/null
+++ b/salt/common/maps/mastersearch.map.jinja
@@ -0,0 +1,18 @@
+{% set docker = {
+ 'containers': [
+ 'so-nginx',
+ 'so-telegraf',
+ 'so-soc',
+ 'so-kratos',
+ 'so-acng',
+ 'so-idstools',
+ 'so-redis',
+ 'so-logstash',
+ 'so-elasticsearch',
+ 'so-curator',
+ 'so-kibana',
+ 'so-elastalert',
+ 'so-filebeat',
+ 'so-soctopus'
+ ]
+} %}
\ No newline at end of file
diff --git a/salt/common/maps/playbook.map.jinja b/salt/common/maps/playbook.map.jinja
new file mode 100644
index 000000000..064262119
--- /dev/null
+++ b/salt/common/maps/playbook.map.jinja
@@ -0,0 +1,6 @@
+{% set docker = {
+ 'containers': [
+ 'so-playbook',
+ 'so-navigator'
+ ]
+} %}
\ No newline at end of file
diff --git a/salt/common/maps/searchnode.map.jinja b/salt/common/maps/searchnode.map.jinja
new file mode 100644
index 000000000..b46652742
--- /dev/null
+++ b/salt/common/maps/searchnode.map.jinja
@@ -0,0 +1,10 @@
+{% set docker = {
+ 'containers': [
+ 'so-nginx',
+ 'so-telegraf',
+ 'so-logstash',
+ 'so-elasticsearch',
+ 'so-curator',
+ 'so-filebeat'
+ ]
+} %}
\ No newline at end of file
diff --git a/salt/common/maps/sensor.map.jinja b/salt/common/maps/sensor.map.jinja
new file mode 100644
index 000000000..e77352692
--- /dev/null
+++ b/salt/common/maps/sensor.map.jinja
@@ -0,0 +1,9 @@
+{% set docker = {
+ 'containers': [
+ 'so-nginx',
+ 'so-telegraf',
+ 'so-steno',
+ 'so-suricata',
+ 'so-filebeat'
+ ]
+} %}
\ No newline at end of file
diff --git a/salt/common/maps/so-status.map.jinja b/salt/common/maps/so-status.map.jinja
new file mode 100644
index 000000000..39672410c
--- /dev/null
+++ b/salt/common/maps/so-status.map.jinja
@@ -0,0 +1,61 @@
+{% set role = grains.id.split('_') | last %}
+{% from 'common/maps/'~ role ~'.map.jinja' import docker with context %}
+
+# Check if the service is enabled and append it's required containers
+# to the list predefined by the role / minion id affix
+{% macro append_containers(pillar_name, k, compare )%}
+ {% if salt['pillar.get'](pillar_name~':'~k, {}) != compare %}
+ {% from 'common/maps/'~k~'.map.jinja' import docker as d with context %}
+ {% for li in d['containers'] %}
+ {{ docker['containers'].append(li) }}
+ {% endfor %}
+ {% endif %}
+{% endmacro %}
+
+{% set docker = salt['grains.filter_by']({
+ '*_'~role: {
+ 'containers': docker['containers']
+ }
+},grain='id', merge=salt['pillar.get']('docker')) %}
+
+{% if role == 'eval' %}
+ {{ append_containers('master', 'grafana', 0) }}
+ {{ append_containers('static', 'fleet_master', 0) }}
+ {{ append_containers('master', 'wazuh', 0) }}
+ {{ append_containers('master', 'thehive', 0) }}
+ {{ append_containers('master', 'playbook', 0) }}
+ {{ append_containers('master', 'freq', 0) }}
+ {{ append_containers('master', 'domainstats', 0) }}
+{% endif %}
+
+{% if role == 'heavynode' %}
+ {{ append_containers('static', 'broversion', 'SURICATA') }}
+{% endif %}
+
+{% if role == 'mastersearch' %}
+ {{ append_containers('master', 'grafana', 0) }}
+ {{ append_containers('static', 'fleet_master', 0) }}
+ {{ append_containers('master', 'wazuh', 0) }}
+ {{ append_containers('master', 'thehive', 0) }}
+ {{ append_containers('master', 'playbook', 0) }}
+ {{ append_containers('master', 'freq', 0) }}
+ {{ append_containers('master', 'domainstats', 0) }}
+{% endif %}
+
+{% if role == 'master' %}
+ {{ append_containers('master', 'grafana', 0) }}
+ {{ append_containers('static', 'fleet_master', 0) }}
+ {{ append_containers('master', 'wazuh', 0) }}
+ {{ append_containers('master', 'thehive', 0) }}
+ {{ append_containers('master', 'playbook', 0) }}
+ {{ append_containers('master', 'freq', 0) }}
+ {{ append_containers('master', 'domainstats', 0) }}
+{% endif %}
+
+{% if role == 'searchnode' %}
+ {{ append_containers('master', 'wazuh', 0) }}
+{% endif %}
+
+{% if role == 'sensor' %}
+ {{ append_containers('static', 'broversion', 'SURICATA') }}
+{% endif %}
\ No newline at end of file
diff --git a/salt/common/maps/thehive.map.jinja b/salt/common/maps/thehive.map.jinja
new file mode 100644
index 000000000..e4ca7d2a2
--- /dev/null
+++ b/salt/common/maps/thehive.map.jinja
@@ -0,0 +1,7 @@
+{% set docker = {
+ 'containers': [
+ 'so-thehive',
+ 'so-thehive-es',
+ 'so-cortex'
+ ]
+} %}
\ No newline at end of file
diff --git a/salt/common/maps/warmnode.map.jinja b/salt/common/maps/warmnode.map.jinja
new file mode 100644
index 000000000..08cf2dbb8
--- /dev/null
+++ b/salt/common/maps/warmnode.map.jinja
@@ -0,0 +1,7 @@
+{% set docker = {
+ 'containers': [
+ 'so-nginx',
+ 'so-telegraf',
+ 'so-elasticsearch'
+ ]
+} %}
\ No newline at end of file
diff --git a/salt/common/maps/wazuh.map.jinja b/salt/common/maps/wazuh.map.jinja
new file mode 100644
index 000000000..5217a79ee
--- /dev/null
+++ b/salt/common/maps/wazuh.map.jinja
@@ -0,0 +1,5 @@
+{% set docker = {
+ 'containers': [
+ 'so-wazuh'
+ ]
+} %}
\ No newline at end of file
diff --git a/salt/common/tools/sbin/so-elastic-download b/salt/common/tools/sbin/so-elastic-download
index 9e2c56719..216f51410 100755
--- a/salt/common/tools/sbin/so-elastic-download
+++ b/salt/common/tools/sbin/so-elastic-download
@@ -2,7 +2,7 @@
MASTER=MASTER
VERSION="HH1.1.4"
TRUSTED_CONTAINERS=( \
-"so-core:$VERSION" \
+"so-nginx:$VERSION" \
"so-thehive-cortex:$VERSION" \
"so-curator:$VERSION" \
"so-domainstats:$VERSION" \
diff --git a/salt/common/tools/sbin/so-status b/salt/common/tools/sbin/so-status
index a9f5d501a..29c029623 100755
--- a/salt/common/tools/sbin/so-status
+++ b/salt/common/tools/sbin/so-status
@@ -14,35 +14,8 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see