Skip to content
Snippets Groups Projects
Commit d59273b3 authored by Théo - Le Filament's avatar Théo - Le Filament
Browse files

feat(fail2ban): add total count of IP addresses banned

parent 09018dbd
Branches
No related tags found
No related merge requests found
...@@ -64,6 +64,7 @@ fi ...@@ -64,6 +64,7 @@ fi
all_jail_stats=$(sudo /usr/bin/fail2ban-client banned | tr "'" '"' | python3 -c "import collections, json, sys; banned=json.load(sys.stdin); print('\n'.join([f'{name},{len(ips)}' for jails in banned for name, ips in jails.items()]))") all_jail_stats=$(sudo /usr/bin/fail2ban-client banned | tr "'" '"' | python3 -c "import collections, json, sys; banned=json.load(sys.stdin); print('\n'.join([f'{name},{len(ips)}' for jails in banned for name, ips in jails.items()]))")
total_banned_ips=0
# IP address banned count for expected jails. # IP address banned count for expected jails.
for jail in ${jails//,/ }; do for jail in ${jails//,/ }; do
if jail_stats=$(grep "$jail" <(echo "$all_jail_stats")); then if jail_stats=$(grep "$jail" <(echo "$all_jail_stats")); then
...@@ -74,7 +75,8 @@ for jail in ${jails//,/ }; do ...@@ -74,7 +75,8 @@ for jail in ${jails//,/ }; do
status='OK' status='OK'
[[ ${jail_ips} -ge $ips_threshold_warning ]] && status='WARNING' [[ ${jail_ips} -ge $ips_threshold_warning ]] && status='WARNING'
[[ ${jail_ips} -ge $ips_threshold_critical ]] && status='CRITICAL' [[ ${jail_ips} -ge $ips_threshold_critical ]] && status='CRITICAL'
output+="${status}: ${jail} jail hold ${jail_ips} IP address\n" output+="${status}: ${jail} jail hold ${jail_ips} IP addresses\n"
total_banned_ips=$(( $total_banned_ips + $jail_ips ))
perf+="${jail_name}=${jail_ips}${ips_scale} " perf+="${jail_name}=${jail_ips}${ips_scale} "
continue continue
...@@ -83,6 +85,9 @@ for jail in ${jails//,/ }; do ...@@ -83,6 +85,9 @@ for jail in ${jails//,/ }; do
output+="NOK: ${jail} jail is missing\n" output+="NOK: ${jail} jail is missing\n"
done done
output+="INFO: fail2ban ban ${total_banned_ips} IP addresses"
perf+="total=${total_banned_ips}${ips_scale} "
# Nagios OK status. # Nagios OK status.
exit_code=0 exit_code=0
# Nagios WARNING status. # Nagios WARNING status.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment