Never miss an old file
[myops.git] / web / collect / server / summarize_logs.sh
1 #!/bin/bash
2
3 if [ -z "$1" ] ; then
4     ns="raw"
5 else
6     ns="$1"
7 fi
8 if [ -z "$2" ] ; then
9         DATE=$( date --date "1 hour ago" +%Y-%m-%dT%H )
10 else
11         DATE="$2"
12 fi
13 PREFIX=/var/www/html/uploadlogs/$ns/old
14
15 # get keys
16 key_list="bootcd_version
17 fs_status
18 iptables_status
19 kernel_version
20 netflow
21 netflow_live
22 nm_running
23 nodemanager_running
24 plc_config
25 real_bootcd_kernel_version
26 real_bootcd_version
27 "
28
29 #DATE=$1
30
31 # get count of unique values from keys
32 echo $START Hours ago == $DATE
33 c=`ls $PREFIX/$DATE/*--upload | wc -l`
34 if [[ $c -gt 2 ]] ; then
35     for key in $key_list ; do 
36         echo $key
37         c=`grep -E -h "^$key " $PREFIX/$DATE/*--upload | wc -l`
38                 if [[ $c -gt 2 ]] ; then
39                         grep -E -h "^$key " $PREFIX/$DATE/*--upload | \
40                                 awk '{if ( NF == 2 ) { print $0, "unknown" } else { print $0 } }' | \
41                                 awk '{if ( $3 == "Linux" ) { print $1, $2, $5 } else { print $0 } }'  | \
42                                 sed -e 's/^.* : //g' -e 's/ /_/g' -e 's/.*running_:/no/' -e 's/.*status_:/none/g' | \
43                                 awk -F. '{ if ( $2 == "" ) { print $1 } else if ( $3 == "" ) { printf("%s.%s\n", $1, $2) } else { printf("%s.%s.%s\n", $1, $2, $3)} }' | \
44                                 sed -e 's/Multiple_IO_errors.*/error/' \
45                                         -e 's/\/home\/pl_monitor.*/error/' \
46                                         -e 's/Unable_to_find.*/error/'  \
47                                         -e 's/.*cannot_touch.*/error/'  \
48                                         -e 's/No_kernel_at_.*/error/' | \
49                                 sort | uniq -c | \
50                                 sed -e 's/\./_/g' -e 's/\//_/g' | awk 'BEGIN{total=0} { total += $1 ; print $0 } END { print total, "total"}' | \
51                                 while read value value_name ; do 
52                                         #echo -e "\tmyops.$key.$value_name $value $DATE" 
53                                         #echo -e "\t"/root/load-graphite.py --target "myops.$key.$value_name" --date $DATE  --value $value
54                                         /usr/share/myops/web/collect/server/load-graphite.py --target "myops.$ns.$key.$value_name" --date $DATE  --value $value
55                                         sleep .2
56                                 done
57                 fi
58     done
59 fi
60