一种web日志的收集分析系统技术方案

技术编号:20224483 阅读:22 留言:0更新日期:2019-01-28 22:31
本发明专利技术公开了本发明专利技术的一种web日志的收集分析系统,可将web应用的日志收集起来,该系统运行在Linux,利用Nginx的日志转发功能,将web应用的日志发送至Linux的rsyslog,再通过转发模块将日志转发至kafka存储,分析模块直接读取kafka的日志,加以分析。运行过程中,每个模块都可独立运行,转发模块及分析模块还可启动多进程同时rsyslog+kafka的高速读写,极大地保证了日志的转储效率,除此之外,模块独立运行还使该系统后续可添加更多的分析模块,以挖掘日志的深层价值。

A Web Log Collection and Analysis System

The invention discloses a web log collection and analysis system of the invention, which can collect the logs of web applications. The system runs in Linux and sends the logs of web applications to rsyslog of Linux by using Nginx's log forwarding function. The logs are forwarded to Kafka storage by forwarding module, and the analysis module reads the logs of Kafka directly for analysis. In the process of running, each module can run independently. Forwarding module and analysis module can also start multi-process and rsyslog+kafka can read and write at high speed, which greatly guarantees the efficiency of log dump. In addition, the independent operation of module also enables the system to add more analysis modules to excavate the deep value of the log.

【技术实现步骤摘要】
一种web日志的收集分析系统
本专利技术涉及网络安全
,尤其涉及一种web日志的收集分析系统。
技术介绍
任何一个生产系统在运行过程中都会产生大量的日志,日志往往隐藏了很多有价值的信息。在没有分析方法之前,这些日志存储一段时间后就会被清理。随着技术的发展和分析能力的提高,日志的价值被重新重视起来。web日志的作用主要体现在通过对这些web日志的深度挖掘,对站点用户访问Web服务器过程中产生的日志数据进行分析处理,从而发现Web用户的访问模式和兴趣爱好等,这些信息对站点建设潜在有用的可理解的未知信息和知识,用于分析站点的被访问情况,辅助站点管理和决策支持等。而在分析这些日志之前,则需要将分散在各个生产系统中的日志收集起来。
技术实现思路
为了有效利用网络流量,为针对用户访问行为后续分析奠定基础,开发了一种web访问日志的收集分析系统,该系统可将web应用的日志收集起来,该系统运行在Linux,利用Nginx的日志转发功能,将web应用的日志发送至Linux的rsyslog,再通过转发模块将日志转发至kafka存储,分析模块直接读取kafka的日志,加以分析。运行过程中,每个模块都可独立运行,转发模块及分析模块还可启动多进程同时rsyslog+kafka的高速读写,极大地保证了日志的转储效率。除此之外,模块独立运行还使该系统后续可添加更多的分析模块,以挖掘日志的深层价值。本专利技术通过以下技术方案来实现上述目的:一种web日志的收集分析系统,包括:日志生成模块,所述日志生成模块由nginx完成,nginx服务端处理用户请求,记录访问日志,通过lua实现nginx日志转发至syslog服务器;日志转发模块,所述日志转发模块由python实现;日志存储模块,所述日志存储模块由zookeeper和kafka实现组成,Zookeeper是一个高性能分布式应用协调服务,kafka对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者成为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)成为broker,无论是kafka集群,还是producer和consumer都依赖于zookeeper来保证系统可用性集群保存一些meta信息;日志分析模块,所述日志分析模块可随本系统使用者持续扩展开发、添加功能。作为进一步优化,所述日志转发模块本质即为kafka的生产者,通过多种对比,选用confulent-kafka作为连接Kafka的库,极大地提高了写入kafka的效率。作为进一步优化,所述日志分析模块的本质即为kafka消费者,可持续扩展的基础源于kafka的消费者可有多个,且可有多个消费者组,同一组内的消费者无法读取kafka同一topic下的同一条日志,但可以同时消费同一topic下的不同日志,提高消费速率。作为进一步优化,所述日志分析模块由python分析程序+redis或其他数据库组成。作为进一步优化,所述日志分析模块利用confulent-kafka连接kafka,读取日志,根据日志时间戳,提取时间,进行计数,然后将结果定时入库redis或其他数据库。作为进一步优化,前述任一模块均运行在docker容器中,且转发模块及日志分析模块均可启动多个容器,同时分布式的架构使得本系统还可使用dockerswarm部署在多台服务器上。本专利技术的有益效果在于:本专利技术的一种web日志的收集分析系统,可将web应用的日志收集起来,该系统运行在Linux,利用Nginx的日志转发功能,将web应用的日志发送至Linux的rsyslog,再通过转发模块将日志转发至kafka存储,分析模块直接读取kafka的日志,加以分析。运行过程中,每个模块都可独立运行,转发模块及分析模块还可启动多进程同时rsyslog+kafka的高速读写,极大地保证了日志的转储效率。除此之外,模块独立运行还使该系统后续可添加更多的分析模块,以挖掘日志的深层价值。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要实用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术提供的一种web日志的收集分析系统的结构示意图。图2为本专利技术提供的一种web日志的收集分析系统的构架示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将对本专利技术的技术方案进行详细的描述。显然,所描述的实施例仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本专利技术所保护的范围。如图1-2所示,本专利技术的一种web日志的收集分析系统,包括:日志生成模块由nginx完成,nginx服务端处理用户请求,记录访问日志,通过lua实现nginx日志转发至syslog服务器;日志转发模块由python实现,该模块本质即为kafka的生产者,通过多种对比,选用confulent-kafka作为连接Kafka的库,极大地提高了写入kafka的效率;日志存储模块由zookeeper和kafka实现组成,Zookeeper是一个高性能分布式应用协调服务,kafka对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者成为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)成为broker。无论是kafka集群,还是producer和consumer都依赖于zookeeper来保证系统可用性集群保存一些meta信息;日志分析模块可随本系统使用者持续扩展开发、添加功能,日志分析模块的本质即为kafka消费者,可持续扩展的基础源于kafka的消费者可有多个,且可有多个消费者组。同一组内的消费者无法读取kafka同一topic下的同一条日志,但可以同时消费同一topic下的不同日志,提高消费速率。因此,对于一个分析程序来说,可启动多个客户端同时消费(即一个消费组内多个消费者),单并不会重复消费,对于多个分析程序来说(即多个消费组),可设置为不同消费者组,保证不同功能的消费程序同时读取到相同日志,同时进行不同维度的分析;日志分析模块由python分析程序+redis或其他数据库组成。以每小时访问次数统计功能为例,利用confulent-kafka连接kafka,读取日志,根据日志时间戳,提取时间,进行计数,然后将结果定时入库redis或其他数据库。为了减小程序对操作系统的影响,且方便系统移植、部署、模块添加及扩展、本系统各模块均运行在docker容器中,且转发模块及日志分析模块均可启动多个容器,提高转发效率及分析效率,同时分布式的架构使得本系统还可使用dockerswarm部署在多台服务器上。以上所述,仅为本专利技术的具体实施方式,但本专利技术的保护范围并不局限于此,任何熟悉本
的技术人员在本专利技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本专利技术的保护范围之内。因此,本专利技术的保护范围应以所述权利要求的保护范围为准。另外需要说明的是,在上述具体实本文档来自技高网
...

【技术保护点】
1.一种web日志的收集分析系统,其特征在于,包括:日志生成模块,所述日志生成模块由nginx完成,nginx服务端处理用户请求,记录访问日志,通过lua实现nginx日志转发至syslog服务器;日志转发模块,所述日志转发模块由python实现;日志存储模块,所述日志存储模块由zookeeper和kafka实现组成,Zookeeper是一个高性能分布式应用协调服务,kafka对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者成为Consumer,此外kafka集群有多个kafka实例组成,每个实例成为broker,无论是kafka集群,还是producer和consumer都依赖于zookeeper来保证系统可用性集群保存一些meta信息;日志分析模块,所述日志分析模块可随本系统使用者持续扩展开发、添加功能。

【技术特征摘要】
1.一种web日志的收集分析系统,其特征在于,包括:日志生成模块,所述日志生成模块由nginx完成,nginx服务端处理用户请求,记录访问日志,通过lua实现nginx日志转发至syslog服务器;日志转发模块,所述日志转发模块由python实现;日志存储模块,所述日志存储模块由zookeeper和kafka实现组成,Zookeeper是一个高性能分布式应用协调服务,kafka对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者成为Consumer,此外kafka集群有多个kafka实例组成,每个实例成为broker,无论是kafka集群,还是producer和consumer都依赖于zookeeper来保证系统可用性集群保存一些meta信息;日志分析模块,所述日志分析模块可随本系统使用者持续扩展开发、添加功能。2.根据权利要求1所述的一种web日志的收集分析系统,其特征在于,所述日志转发模块本质即为kafka的生产者,通过多种对比,选用confulent-kafka作为连接Kafka...

【专利技术属性】
技术研发人员:夏康丽
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1