Total Hit Counter

Total visitor till today 4463161 on my site!

Wednesday, November 23, 2011

Script to check traffic on network wise interface




Script to check traffic on network wise interface 

#!/bin/bash
######
#Created by Shankar Patel
#Create date : 21-11-2011
################################################################################

function help {
echo "The plugin will chekc the range of ip network.
Usage:
$0 <ip_network_range>
Please provide ip range as a argument.
examples:
$0 172.19
OK. sto: eth0 [up] | traffic_mit=1mb "
exit 3;
}

if [ "$1" = "" ]; then help ; fi

ipaddrs="$1"
interface=`ip addr | grep -v 'lo:' | grep $ipaddrs | grep 'scope global' |sed 's/ \+/ /g' | awk '{print $5$7$8}' | sed 's/secondary//g' | sed 's/scope//g' | cut -d':' -f1 | uniq`
DATA_DIR=`/usr/bin/dirname $0`
DATA_FILE=$DATA_DIR"/.iftraffic"_$interface"_"$1

input_data() {
NEW_DATA=$CUR_CHK_TIME":"$TOT_IN_MB":"$TOT_OUT_MB
echo $NEW_DATA > $DATA_FILE
chown nagios:nagios $DATA_FILE 2>/dev/null
}
exit_out() {
input_data
CUR_IN_MB=`echo "$TOT_IN_MB-$LAST_IN_MB" | bc`
CUR_OUT_MB=`echo "$TOT_OUT_MB-$LAST_OUT_MB" | bc `
echo "OK. $msg: $interface [up] | traffic_"$msg"_in="$CUR_IN_MB"MB traffic_"$msg"_out=$CUR_OUT_MB"MB
# echo $TOT_IN_MB $(($CUR_IN_MB/$(($CUR_CHK_TIME-$LAST_CHK_TIME))))
# echo $TOT_OUT_MB $(($CUR_OUT_MB/$(($CUR_CHK_TIME-$LAST_CHK_TIME))))
}

ip1=$(echo $ipaddrs | awk -F'.' '{print $1}')
ip2=$(echo $ipaddrs | awk -F'.' '{print $2}')
if [ "$ip1" -eq 172 ]; then
case $ip2 in
17)
msg="blr";;
18)
msg="adi";;
19)
msg="del";;
30)
msg="mum";;
esac
else
echo "UNKNOWN. ip range not found in plugin."
exit 3;
fi

old_data_fetch() {
if [ "`grep ':$' $DATA_FILE 1> /dev/null ;echo $?`" = "0" ] || [ "`grep '::' $DATA_FILE 1> /dev/null ;echo $?`" = "0" ]
then
input_data
fi
LAST_CHK_TIME=`cat $DATA_FILE | sed 's/:/ /g' | awk '{print $1}'`
LAST_IN_MB=`cat $DATA_FILE | sed 's/:/ /g' | awk '{print $2}'`
LAST_OUT_MB=`cat $DATA_FILE | sed 's/:/ /g' | awk '{print $3}'`
}
new_data_fetch() {
netstat -i > /tmp/.net_data
CUR_CHK_TIME=`date +%s`
if [ "$LAST_IN_MB" = "" ] ; then LAST_IN_MB=0 ; fi
if [ "$LAST_OUT_MB" = "" ] ; then LAST_OUT_MB=0 ; fi
MTU_D=`cat /tmp/.net_data | grep "$interface "| awk '{print $2}'`
BITS_D=`cat /tmp/.net_data | grep "$interface "| awk '{print $4}'`
CUR_IN_BIT=$(($MTU_D*$BITS_D))
TOT_IN_KB=$(($CUR_IN_BIT/8192))
TOT_IN_MB=`echo "scale=3 ; $TOT_IN_KB/1024" | bc`
BITS_D=`cat /tmp/.net_data | grep "$interface "| awk '{print $8}'`
CUR_OUT_BIT=$(($MTU_D*$BITS_D))
TOT_OUT_KB=$(($CUR_OUT_BIT/8192))
TOT_OUT_MB=`echo "scale=3 ;$TOT_OUT_KB/1024" | bc`
}
new_data_fetch
if [ ! -f $DATA_FILE ] ; then
input_data
echo "OK. Saving Initial values to File."
exit 0
fi
old_data_fetch
exit_out

Thursday, May 19, 2011

Syslog server installation and configuration

Installation

Required Packages

root@shankar :~#  aptitude install jetty jbossas4 libapache2-mod-jk libjetty-java libjasper-java libapache2-mod-jk openjdk-6-jdk

Installation Process


  • configure the Logalyze:
    root@shankar :~# rename 's/\.sample$//' *.sample
    root@shankar :~# echo -n "\n\nexport JAVA_HOME=/usr/lib/jvm/java-6-openjdk/\n" >> /opt/logalyze/bin/setenv,sh 


  • Start the logalyzer engine
    root@shankar :~# cd /opt/logalyze/bin/
    root@shankar :~# ./setenv.sh
    root@shankar :~# ./startup.sh
    root@shankar :~# cd ../admin/bin/

    root@shankar :~# ./startup.sh 

Web-interface

NOTE: The web ui is works on 8080 port so we need to stop all services running on 8080 port
Open the browser
http://logalyze_server_ip:8080
Default username and password is admin/logalyze

You Syslog server is ready now.
Enjoy With your logs in a diff format in which you want...