通过shell和redis来实现集群业务中日志的实时收集分析

在统计项目中,最难实施的就是日志数据的收集。日志分布在全国各个机房,而且数据量比较大,像rsync+inotify这种方式显然不能满足快速日志同步的要求。 当然大家也可以用fluentd和flume采集日志数据,除了这个我们也可以自己写一套简单的。

我写的这个日志分析系统 流程是:

在客户端收集数据,然后通过redis pub方式把数据发给服务端

2   服务器端是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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索日志
, date
, redis 3.0集群
, 数据
, 日志实时分析
实时日志
redis 集群、redis集群搭建、redis集群方案、redis集群配置、redis3.2 集群搭建,以便于您获取更多的相关知识。

时间: 2024-11-01 22:15:53

通过shell和redis来实现集群业务中日志的实时收集分析的相关文章

ORA-01291: missing logfile Oracle RAC 集群环境下日志文件结构

在Oracle11g RAC环境中,对集群中的日志的定期检查是必不可少的.通过查看集群日志,可以早期定位集群环境中出现的问题, 以便将问题消灭在萌芽状态. 简单介绍一下有关Oracle集群环境中日志的结构,方便快速查找所需的日志文件. 1.Oracle集群日志藏匿之处 Oracle集群涉及的日志主要位于"$ORA_CRS_HOME/log"和"$ORACLE_HOME/log"目录中. SQL> SELECT  capture_name,queue_name,

redis 什么时候集群,什么时候单点

问题描述 redis 什么时候集群,什么时候单点 redis 什么时候集群,什么时候单点?具体的应用场景,能描述一下么 解决方案 1.并发访问量大的时候肯定要集群才能满足需求,如果用户量不大,访问不是特频繁,单点基本可以. 2.考虑到高可用的时候肯定是要使用集群的,因为存在单点故障问题. 3.对数据延时要求高肯定是要使用集群的,单点毕竟存储和计算能力有限. 4.对数据可靠性,稳定性,以及系统整体容灾,数据容错,数据一致性等高性能要求高,集群是肯定的. 解决方案二: 主要是数据量,访问量,然后就是

redis之(十七)自己实现redis的cluster集群环境的搭建

[一]创建不同节点的配置文件和目录.并将配置文件中的port,cluster-enable,daemonize项做修改. --->port:修改成redis实例对应的端口号 --->cluster-config-file:都写"yes"值,说明当前节点支持cluster机群. --->daemonize:都写"yes"值,是否以后台daemon方式运行 ,为了查看输出,不让后台模式运行,修改成"no" --->append

MongoDB 3.2.7 基于keyFile的认证在副本集+集群分片中的使用

    基于副本集的分片集群打建好后,mongodb数据库并没有提供用户安全认证,需要用户手工配置,才能使得数据库只接受特定用户特定方式的连接,增加数据库的安全性与稳定性.本文提供 MongoDB 3.2.7 基于keyFile的认证在副本集+集群分片中的使用方法.     首先,参照博文MongoDB 3.2.7 for rhel6.4 副本集-分片集群部署(http://blog.itpub.net/29357786/viewspace-2128515/)部署MongoDB 3.2.7集群环

(1)quartz集群调度机制调研及源码分析---转载

quartz2.2.1集群调度机制调研及源码分析 原文地址:http://demo.netfoucs.com/gklifg/article/details/27090179 引言quartz集群架构调度器实例化调度过程触发器的获取触发trigger:Job执行过程:总结:附:   引言 quratz是目前最为成熟,使用最广泛的java任务调度框架,功能强大配置灵活.在企业应用中占重要地位.quratz在集群环境中的使用方式是每个企业级系统都要考虑的问题.早在2006年,在ITeye上就有一篇关于

深入探讨在集群环境中使用EhCache缓存系统

EhCache 缓存系统简介 EhCache 是一个纯 Java 的进程内缓存框架,具有快速.精干等特点,是 Hibernate 中默认的 CacheProvider. 下图是 EhCache 在应用程序中的位置: 图 1. EhCache 应用架构图 EhCache 的主要特性有: 快速: 简单: 多种缓存策略: 缓存数据有两级:内存和磁盘,因此无需担心容量问题: 缓存数据会在虚拟机重启的过程中写入磁盘: 可以通过 RMI.可插入 API 等方式进行分布式缓存: 具有缓存和缓存管理器的侦听接口

《Hadoop MapReduce实战手册》一1.8 在分布式集群环境中设置Hadoop

1.8 在分布式集群环境中设置Hadoop Hadoop MapReduce实战手册 Hadoop的部署包括一套HDFS.一个JobTracker和多个TaskTracker.在1.5节中,我们讨论了HDFS的部署.为了设置Hadoop,我们需要配置JobTracker和TaskTracker,然后在HADOOP_ HOME/conf/slaves文件中指定TaskTracker列表.当我们启动JobTracker时,它会启动相应的TaskTracker节点列表.图1-5描述了一套完整的Hado

《Hadoop MapReduce实战手册》一1.9 在分布式集群环境中运行WordCount程序

1.9 在分布式集群环境中运行WordCount程序 Hadoop MapReduce实战手册本节将描述如何在分布式集群中运行作业. 准备工作启动Hadoop集群. 操作步骤现在让我们在分布式的Hadoop环境中运行WordCount示例程序. 把你的Hadoop发行版目录的README.txt文件复制到HDFS文件系统的/data/input1位置,作为我们前一节中编写的WordCountMapReduce示例的输入数据. >bin/hadoopdfs -mkdir /data/ >bin/

Shell脚本快速部署Kubernetes集群系统

  本文紧跟上节所讲的手动部署Kubernetes管理Docker篇所写,本篇主要内容利用Shell脚本完成快速部署Kubernetes集群.上节博文看过的朋友也能感觉到部署过程相对比较简单,那么,出于简化工作流程,推进运维自动化角度来说,于是花了2/3天时间写这个部署Kubernetes脚本.   运维工作中,常常会遇到部署各种各样的服务,建议:常规部署都应该尽量使用脚本完成,一方面提高自身脚本编写能力,另一方面推进运维自动化. 详细部署说明文档:http://lizhenliang.blog