#!/bin/bash
logfile=/var/log/haproxy.log;
tempfile=/var/tmp/temp
# define how many of interrupted CC connections are max for script to trigger
# WARNING
HIGH_AMOUNT_OF_CC='300';

# load partners config
source ./partners_list.conf

# nullify previous temp file
>$tempfile
# dump last 10 minutes to $tempfile
awk -vDate=`date -d'now-10 minutes' +[%d/%b/%Y:%H:%M:%S` '$4 > Date {print Date, $0}' $logfile >> /var/tmp/temp


while read line; do

for i in $line; do
newline=$(echo $i | sed "s/,/ /g" | sed "s#=# #g";);
var_name=$(echo $newline |awk '{ print $1 }';);
var_name_ips=$(echo $newline |sed -e 's#$var_name##g');
for f in  $var_name_ips; do

var_name_ip=$(echo  $f | sed -e "s#$var_name##g" -e 's#"##g' -e 's#;##g');

var_name_ip_grep_CC=$(grep "$var_name_ip" $tempfile | grep "CC" |wc -l);
var_name_ip_grep_CD=$(grep "$var_name_ip" $tempfile | grep "CD" |wc -l);
var_name_ip_grep_CR=$(grep "$var_name_ip" $tempfile | grep "CR" |wc -l);


if [ ! -z $var_name_ip ];  then
#echo beep

##var_name_ip_grep=$(grep "$var_name_ip" $tempfile | grep "CD" |wc -l);

# check for CC status msgs
if [ "$var_name_ip_grep_CC" != 0 ]; then
echo "$var_name $var_name_ip CC $var_name_ip_grep_CC";
else
echo "$var_name $var_name_ip CC 0";
fi

# trigger warning if more than $HIGH_AMOUNT_OF_CC reached
if [ "$var_name_ip_grep_CC" -gt $HIGH_AMOUNT_OF_CC ]; then
echo "!!!WARNING!!! $var_name $var_name_ip CC is $var_name_ip_grep_CC";
fi
## var_name_ip_grep=$(grep "$var_name_ip" $tempfile | grep "CD" |wc -l);
# check for CD status msgs
if [ $var_name_ip_grep_CD != 0 ]; then
echo "$var_name $var_name_ip CD $var_name_ip_grep_CD";
else
echo "$var_name $var_name_ip CD 0";

fi

# check for CR status msgs
if [ $var_name_ip_grep_CR != 0 ]; then
echo "$var_name $var_name_ip CR $var_name_ip_grep_CR";
else
echo "$var_name $var_name_ip CR 0";
fi


fi

#echo grep -eI 'CC|CD|CR' $var_name /var/log/haproxy.log

done

done

done < /usr/local/bin/partners_list.conf
cat /dev/null> $tempfile

