1
1
mirror of https://gitlab.archlinux.org/archlinux/infrastructure.git synced 2025-01-18 08:06:16 +01:00
infrastructure/roles/prometheus_exporters/files/fail2ban-textcollector.sh
Jelle van der Waa 7b648d6bc5
Add fail2ban exporter
The fail2ban exporter exports the amount of bans per jail.
2021-07-12 21:24:58 +02:00

34 lines
719 B
Bash

#!/bin/bash
set -o errexit
set -o nounset
if (( $# != 1 )); then
echo "Missing textcollector directory argument"
exit 1
fi
TEXTFILE_COLLECTOR_DIR=${1}
PROM_FILE=$TEXTFILE_COLLECTOR_DIR/fail2ban.prom
TMP_FILE=$PROM_FILE.$$
[ -e $TMP_FILE ] && rm -f $TMP_FILE
trap "rm -f $TMP_FILE" EXIT
json=$(fail2ban-client banned | tr \' \")
len=$(echo $json | jq '. | length')
echo "# HELP fail2ban_bans" >> $TMP_FILE
echo "# TYPE fail2ban_bans gauge" >> $TMP_FILE
for ((i = 0; i < $len; i++ ));
do
jail=$(echo $json | jq -r ".[${i}] | keys | .[0]")
bans=$(echo $json | jq -r ".[${i}] | to_entries | .[0].value | length")
echo "fail2ban_bans{jail=\"${jail}\"} $bans" >> $TMP_FILE
done
mv -f $TMP_FILE $PROM_FILE