本发明实施例涉及数据收集,尤其涉及一种日志收集系统。
背景技术:
1、通常情况下,应用程序(application,app)、网页(web)、小程序以及后端服务等在运行时,会产生大量的日志,而日志中往往隐藏了很多具有分析价值的信息,这就使得日志分析前进行的日志收集工作至关重要。
2、但是,目前业内应用的日志收集系统基于传统服务器架构搭建,无法适应于云原生架构,这导致在云原生架构下运行该日志收集系统时,存在日志收集效率不高和成功率无法保证、以及硬件成本较高的问题,亟待解决。
技术实现思路
1、本发明实施例提供了一种日志收集系统,解决了于云原生架构下收集日志时存在的日志收集效率不高和成功率无法保证、以及硬件成本较高的问题。
2、根据本发明的一方面,提供了一种日志收集系统,可包括:日志收集组件和日志写入组件;其中,
3、日志写入组件嵌入在日志收集组件内,以将日志收集组件和日志写入组件于云原生架构下部署在同一容器的同一进程上;
4、日志收集组件,用于在接收到日志报送端发出的日志报送请求的情况下,从日志报送请求中获取目标日志,并通过调用日志写入组件,将目标日志写入日志消息队列中。
5、可选的,日志收集组件内运行有目标执行环境,目标执行环境是用于执行目标脚本语言的环境,日志写入组件是基于目标脚本语言编写的日志客户端;其中,
6、日志收集组件,具体用于在接收到日志报送端发出的日志报送请求的情况下,从日志报送请求中获取目标日志,并在目标执行环境下通过调用日志客户端,将目标日志写入日志消息队列中。
7、在此基础上,一可选的,目标脚本语言是lua,目标执行环境是lua jit,日志收集组件是将lua jit添加到nginx中得到的openresty。
8、在此基础上,可选的,日志报送请求包括可被nginx接收到的超文本传输协议请求。
9、另一可选的,日志客户端嵌入在日志收集组件内,通过将日志客户端置于日志收集组件内与目标脚本语言对应的脚本库中实现。
10、可选的,日志消息队列是kafka消息队列,日志写入组件是kafka驱动;
11、日志收集组件,具体用于在接收到日志报送端发出的日志报送请求的情况下,从日志报送请求中获取日志消息,并通过调用kafka驱动,将与日志消息对应的kafka消息体写入kafka消息队列中,以将kafka消息体所表征的目标日志写入kafka消息队列中。
12、可选的,上述日志收集系统,还可包括:扩容组件;其中,
13、扩容组件,用于响应于进程扩容指令,对部署有日志收集组件的进程进行资源扩容。
14、可选的,上述日志收集系统,还可包括:健康监控组件;其中,健康监控组件部署在容器之外的进程上;
15、健康监控组件,用于对容器内部署有日志收集组件的进程的健康状态进行监控。
16、在此基础上,可选的,上述日志收集系统,还包括:容器扩缩组件;其中,
17、健康监控组件,还用于在经监控确定部署有日志收集组件的进程无响应或退出的情况下,将容器启用指令发送给容器扩缩组件;
18、容器扩缩组件,用于响应于容器启用指令,启用新的容器,以在新启用的容器内部署日志收集组件。
19、可选的,上述日志收集系统,还包括:资源使用率监控组件以及容器扩缩组件;其中,资源使用率监控组件部署在容器之外的进程上;
20、资源使用率监控组件,可用于对容器的资源使用率进行监控,并在监控到的资源使用率满足预设扩缩条件的情况下,生成容器扩缩指令,并将容器扩缩指令发送给容器扩缩组件;
21、容器扩缩组件,用于响应于容器扩缩指令,进行容器扩缩。
22、本发明实施例所阐述的日志收集系统,可包括:日志收集组件和日志写入组件;其中,日志写入组件嵌入在日志收集组件内,以将日志收集组件和日志写入组件于云原生架构下部署在同一容器的同一进程上;通过日志收集组件,在接收到日志报送端发出的日志报送请求的情况下,可从日志报送请求中获取目标日志,并通过调用日志写入组件,将目标日志写入日志消息队列中。上述日志收集系统,通过将日志写入组件嵌入到日志收集组件以将二者部署到同一容器的同一进程上,并且不再将目标日志写入磁盘中,由此在云原生架构下,可基于较低的硬件成本,实现目标日志的高效并且成功收集。
23、应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或是重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
1.一种日志收集系统,其特征在于,包括:日志收集组件和日志写入组件;其中,所述日志写入组件嵌入在所述日志收集组件内,以将所述日志收集组件和所述日志写入组件于云原生架构下部署在同一容器的同一进程上;
2.根据权利要求1所述的系统,其特征在于,所述日志收集组件内运行有目标执行环境,所述目标执行环境是用于执行目标脚本语言的环境,所述日志写入组件是基于所述目标脚本语言编写的日志客户端;其中,
3.根据权利要求2所述的系统,其特征在于,所述目标脚本语言是lua,所述目标执行环境是lua jit,所述日志收集组件是将所述lua jit添加到nginx中得到的openresty。
4.根据权利要求3所述的系统,其特征在于,所述日志报送请求包括可被所述nginx接收到的超文本传输协议请求。
5.根据权利要求2所述的系统,其特征在于,所述日志客户端嵌入在所述日志收集组件内,通过将所述日志客户端置于所述日志收集组件内与所述目标脚本语言对应的脚本库中实现。
6.根据权利要求1所述的系统,其特征在于,所述日志消息队列是kafka消息队列,所述日志写入组件是kafka驱动;
7.根据权利要求1所述的系统,其特征在于,还包括:扩容组件;其中,
8.根据权利要求1所述的系统,其特征在于,还包括:健康监控组件;其中,所述健康监控组件部署在所述容器之外的进程上;
9.根据权利要求8所述的系统,其特征在于,还包括:容器扩缩组件;其中,
10.根据权利要求1所述的系统,其特征在于,还包括:资源使用率监控组件和容器扩缩组件;其中,所述资源使用率监控组件部署在所述容器之外的进程上;