From 8746f558348237d06b8a72629004d6f189de498b Mon Sep 17 00:00:00 2001 From: Jason Ertel Date: Wed, 15 Feb 2023 08:03:22 -0500 Subject: [PATCH] influx upgrade --- salt/common/tools/sbin/so-influxdb-manage | 20 ++++++++++++++++++++ salt/soc/defaults.map.jinja | 6 ++++++ 2 files changed, 26 insertions(+) diff --git a/salt/common/tools/sbin/so-influxdb-manage b/salt/common/tools/sbin/so-influxdb-manage index 96b0c01f9..907e0342c 100644 --- a/salt/common/tools/sbin/so-influxdb-manage +++ b/salt/common/tools/sbin/so-influxdb-manage @@ -11,6 +11,8 @@ usage() { echo "Usage: $0 [args]" echo "" echo "Supported Operations:" + echo " dashboardpath Returns the URL path for a dashboard, requires: " + echo " export Exports all templates to stdout" echo " setup Loads all templates and creates all required buckets" echo " userlist Lists users" echo " useradd Adds a new user, requires: " @@ -260,6 +262,24 @@ case "$OP" in check_response "$response" ;; + export) + log "Exporting all organization templates" + request templates/export -X POST -d "{\"orgIDs\":[{\"orgID\":\"$oid\"}]}" -H "Content-Type: application/json" + ;; + + dashboardpath) + [ $# -ne 1 ] && usage + name=$1 + response=$(request dashboards?limit=100&orgID=$oid) + check_response "$response" + dbid=$(echo "$response" | jq -r ".dashboards[] | select(.name == \"$name\").id") + if [[ -z "$dbid" ]]; then + log "Dashboard not found" + exit 1 + fi + echo -n "/influxdb/orgs/$oid/dashboards/$dbid" + ;; + *) usage ;; diff --git a/salt/soc/defaults.map.jinja b/salt/soc/defaults.map.jinja index 912b16f46..17253b7fb 100644 --- a/salt/soc/defaults.map.jinja +++ b/salt/soc/defaults.map.jinja @@ -2,6 +2,7 @@ {% from 'vars/globals.map.jinja' import GLOBALS %} {% from 'docker/docker.map.jinja' import DOCKER -%} {%- set INFLUXDB_TOKEN = salt['pillar.get']('secrets:influx_token') %} +{%- set METRICS_LINK = salt['cmd.run']('so-influxdb-manage dashboardpath "Security Onion Performance"') %} {% for module, application_url in GLOBALS.application_urls.items() %} {% do SOCDEFAULTS.soc.server.modules[module].update({'hostUrl': application_url}) %} @@ -18,6 +19,11 @@ {% do SOCDEFAULTS.soc.server.modules.influxdb.update({'hostUrl': 'https://' ~ GLOBALS.influxdb_host ~ ':8086'}) %} {% do SOCDEFAULTS.soc.server.modules.influxdb.update({'token': INFLUXDB_TOKEN}) %} +{% for tool in SOCDEFAULTS.soc.server.client.tools %} +{% if tool.name == "toolInfluxDb" %} +{% do tool.update({'link': METRICS_LINK}) %} +{% endif %} +{% endfor %} {% do SOCDEFAULTS.soc.server.modules.statickeyauth.update({'anonymousCidr': DOCKER.sorange, 'apiKey': pillar.sensoroni.sensoronikey}) %}