Files
securityonion/salt/elasticsearch/tools/sbin_jinja/so-elasticsearch-cluster-space-used
2023-05-30 17:28:59 +00:00

39 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
#
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
# https://securityonion.net/license; you may not use this file except in compliance with the
# Elastic License 2.0.
. /usr/sbin/so-common
{% from 'vars/globals.map.jinja' import GLOBALS %}
TOTAL_USED_SPACE=0
# Iterate through the output of _cat/allocation for each node in the cluster to determine the total used space
{% if GLOBALS.role == 'so-manager' %}
# Get total disk space - disk.total
for i in $(/usr/sbin/so-elasticsearch-query _cat/allocation | grep -v {{ GLOBALS.manager }} | awk '{print $3}'); do
{% else %}
# Get disk space taken up by indices - disk.indices
for i in $(/usr/sbin/so-elasticsearch-query _cat/allocation | awk '{print $2}'); do
{% endif %}
size=$(echo $i | grep -oE '[0-9].*' | awk '{print int($1+0.5)}')
unit=$(echo $i | grep -oE '[A-Za-z]+')
if [ $unit = "tb" ]; then
size=$(( size * 1000 * 1000 * 1000 * 1000<F12> ))
elif [ $unit = "gb" ]; then
size=$(( size * 1000 * 1000 * 1000 ))
elif [ $unit = "mb" ]; then
size=$(( size * 1000 * 1000 ))
elif [ $unit = "kb" ]; then
size=$(( size * 1000 ))
elif [ $unit = "b" ]; then
size=size
fi
TOTAL_USED_SPACE=$(( TOTAL_USED_SPACE + size ))
done
# Calculate the percentage of used space based on our previously defined value
echo "$TOTAL_USED_SPACE"