通过Shell和Redis来实现集群业务中日志的实时收集分析
在统计项目中,最难实施的就是日志数据的收集。日志分布在全国各个机房,而且数据量比较大,像rsync+inotify这种方式显然不能满足快速日志同步的要求。 当然大家也可以用fluentd和flume采集日志数据,除了这个我们也可以自己写一套简单的。
我写的这个日志分析系统 流程是:
在客户端收集数据,然后通过redis pub方式把数据发给服务端
服务器端是redis的sub 他会把数据统一存放在一个文件,或者当前就过滤出来
客户端收集日志的更新数据
- #!/bin/bash
- DATE=`date +%s`
- LOGFILE=$1
- if [ ! -f $1 ];then
- echo "LOG file did not give or it's not a file"
- fi
- sleep_time="2"
- count_init=`wc -l ${LOGFILE}|awk '{print $1}'`
- while true
- do
- DATE_NEW=`date +%s`
- # DATE=$(date +%s)
- count_new=`wc -l ${LOGFILE}|awk '{print $1}'`
- add_count=$((${count_new} - ${count_init}))
- count_init=${count_new}
- if [ ! -n "${add_count}" ]
- then
- add_count=0
- fi
- QPS=$((${add_count}/${sleep_time}))
- info=`tail -n ${add_count} ${LOGFILE}`
- echo $info
- # 我们可以把info这个值传出去
- echo " Then QPS at `date -d "1970-01-01 UTC ${DATE_NEW} seconds" +"%Y-%m-%d %H:%M:%S"` is "${QPS}
- # echo " DATE_NEW: " $DATE_NEW " DATE_PLUS :" $DATE_PLUS
- sleep $sleep_time
- done
把实时的日志也打印出来
相关推荐
聚合室 2020-11-16
零 2020-09-18
afanti 2020-09-16
Lzs 2020-10-23
Justhavefun 2020-10-22
jacktangj 2020-10-14
ChaITSimpleLove 2020-10-06
Andrea0 2020-09-18
周游列国之仕子 2020-09-15
88234852 2020-09-15
YClimb 2020-09-15
风雨断肠人 2020-09-04
卖口粥湛蓝的天空 2020-09-15
stulen 2020-09-15
pythonxuexi 2020-09-06
abfdada 2020-08-26
梦的天空 2020-08-25