From ad3b6cf6297cfc8fa99a761c2288f58ae96e6245 Mon Sep 17 00:00:00 2001 From: m0duspwnens Date: Mon, 9 Aug 2021 13:33:21 -0400 Subject: [PATCH 1/4] remove old dashboard dirs - https://github.com/Security-Onion-Solutions/securityonion/issues/4674 --- salt/grafana/init.sls | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/salt/grafana/init.sls b/salt/grafana/init.sls index dbb659217..3c98d6370 100644 --- a/salt/grafana/init.sls +++ b/salt/grafana/init.sls @@ -44,6 +44,12 @@ grafanadashdir: - group: 939 - makedirs: True +{% for type in ['eval','manager','managersearch','search_nodes','sensor_nodes','standalone'] %} +remove_dashboard_dir_{{type}}: + file.absent: + - name: /opt/so/conf/grafana/grafana_dashboards/{{type}} +{% endfor %} + grafana-dashboard-config: file.managed: - name: /opt/so/conf/grafana/etc/dashboards/dashboard.yml From 1415de858c806c5b9924fab98381453751c680de Mon Sep 17 00:00:00 2001 From: m0duspwnens Date: Tue, 10 Aug 2021 10:16:14 -0400 Subject: [PATCH 2/4] delete old dashboard folders via api - https://github.com/Security-Onion-Solutions/securityonion/issues/4674 --- .../sbin/so-grafana-dashboard-folder-delete | 17 +++++++++++++++++ salt/grafana/init.sls | 5 +++++ 2 files changed, 22 insertions(+) create mode 100644 salt/common/tools/sbin/so-grafana-dashboard-folder-delete diff --git a/salt/common/tools/sbin/so-grafana-dashboard-folder-delete b/salt/common/tools/sbin/so-grafana-dashboard-folder-delete new file mode 100644 index 000000000..60a998290 --- /dev/null +++ b/salt/common/tools/sbin/so-grafana-dashboard-folder-delete @@ -0,0 +1,17 @@ +# this script is used to delete the default Grafana dashboard folders that existed prior to Grafana dashboard and Salt management changes in 2.3.70 + +folders=$(curl -X GET http://admin:{{salt['pillar.get'('secrets:grafana_admin')]}}@localhost:3000/api/folders | jq -r '.[] | @base64') +delfolder=("Manager" "Manager Search" "Sensor Nodes" "Search Nodes" "Standalone" "Eval Mode") + +for row in $folders; do + title=$(echo ${row} | base64 --decode | jq -r '.title') + uid=$(echo ${row} | base64 --decode | jq -r '.uid') + + if [[ " ${delfolder[@]} " =~ " ${title} " ]]; then + curl -X DELETE http://admin:{{salt['pillar.get'('secrets:grafana_admin')]}}@localhost:3000/api/folders/$uid + fi +done + +echo "so-grafana-dashboard-folder-delete has been run to delete default Grafana dashboard folders that existed prior to 2.3.70" > /opt/so/state/so-grafana-dashboard-folder-delete-complete + +exit 0 diff --git a/salt/grafana/init.sls b/salt/grafana/init.sls index 3c98d6370..1c1bdfb2e 100644 --- a/salt/grafana/init.sls +++ b/salt/grafana/init.sls @@ -88,6 +88,11 @@ grafana-config-files: - source: salt://grafana/etc/files - makedirs: True +so-grafana-dashboard-folder-delete: + cmd.run: + - name: /usr/sbin/so-grafana-dashboard-folder-delete + - unless: ls /opt/so/state/so-grafana-dashboard-folder-delete-complete + {% for dashboard in DASHBOARDS %} {{dashboard}}-dashboard: file.managed: From 3c1114403ee2b29afe8da8eeb62b09fd3eef4ac2 Mon Sep 17 00:00:00 2001 From: m0duspwnens Date: Tue, 10 Aug 2021 10:25:05 -0400 Subject: [PATCH 3/4] fix the pillar.get --- salt/common/tools/sbin/so-grafana-dashboard-folder-delete | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/salt/common/tools/sbin/so-grafana-dashboard-folder-delete b/salt/common/tools/sbin/so-grafana-dashboard-folder-delete index 60a998290..3d7a2cfd3 100644 --- a/salt/common/tools/sbin/so-grafana-dashboard-folder-delete +++ b/salt/common/tools/sbin/so-grafana-dashboard-folder-delete @@ -1,6 +1,6 @@ # this script is used to delete the default Grafana dashboard folders that existed prior to Grafana dashboard and Salt management changes in 2.3.70 -folders=$(curl -X GET http://admin:{{salt['pillar.get'('secrets:grafana_admin')]}}@localhost:3000/api/folders | jq -r '.[] | @base64') +folders=$(curl -X GET http://admin:{{salt['pillar.get']('secrets:grafana_admin')]}}@localhost:3000/api/folders | jq -r '.[] | @base64') delfolder=("Manager" "Manager Search" "Sensor Nodes" "Search Nodes" "Standalone" "Eval Mode") for row in $folders; do @@ -8,7 +8,7 @@ for row in $folders; do uid=$(echo ${row} | base64 --decode | jq -r '.uid') if [[ " ${delfolder[@]} " =~ " ${title} " ]]; then - curl -X DELETE http://admin:{{salt['pillar.get'('secrets:grafana_admin')]}}@localhost:3000/api/folders/$uid + curl -X DELETE http://admin:{{salt['pillar.get']('secrets:grafana_admin')]}}@localhost:3000/api/folders/$uid fi done From 9e48a5b57b9000f89e74410fcf278e61ea8be3d0 Mon Sep 17 00:00:00 2001 From: m0duspwnens Date: Tue, 10 Aug 2021 10:29:29 -0400 Subject: [PATCH 4/4] fix the pillar.get --- salt/common/tools/sbin/so-grafana-dashboard-folder-delete | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/salt/common/tools/sbin/so-grafana-dashboard-folder-delete b/salt/common/tools/sbin/so-grafana-dashboard-folder-delete index 3d7a2cfd3..f3338de84 100644 --- a/salt/common/tools/sbin/so-grafana-dashboard-folder-delete +++ b/salt/common/tools/sbin/so-grafana-dashboard-folder-delete @@ -1,6 +1,6 @@ # this script is used to delete the default Grafana dashboard folders that existed prior to Grafana dashboard and Salt management changes in 2.3.70 -folders=$(curl -X GET http://admin:{{salt['pillar.get']('secrets:grafana_admin')]}}@localhost:3000/api/folders | jq -r '.[] | @base64') +folders=$(curl -X GET http://admin:{{salt['pillar.get']('secrets:grafana_admin')}}@localhost:3000/api/folders | jq -r '.[] | @base64') delfolder=("Manager" "Manager Search" "Sensor Nodes" "Search Nodes" "Standalone" "Eval Mode") for row in $folders; do @@ -8,7 +8,7 @@ for row in $folders; do uid=$(echo ${row} | base64 --decode | jq -r '.uid') if [[ " ${delfolder[@]} " =~ " ${title} " ]]; then - curl -X DELETE http://admin:{{salt['pillar.get']('secrets:grafana_admin')]}}@localhost:3000/api/folders/$uid + curl -X DELETE http://admin:{{salt['pillar.get']('secrets:grafana_admin')}}@localhost:3000/api/folders/$uid fi done