朱林,日志及数据分析专家,《Elasticsearch技术解析与实战》作者,对安全技术、数据分析有较深的研究,拥有15年数据分析及安全产品开发经验。
引言
在很多安全分析类产品建设的过程中都会涉及到关联分析,比如日志分析、soc、态势感知、风控等产品。之前的文章中阐述过五种最常见的关联分析模型,在文中也介绍了:要想达到很好的关联分析效果,前提是对采集过来的日志进行标准化解析。解析的维度越多、内容越准确,对关联分析的支撑性就越强。下面就来介绍一下日志解析的一些常用内容。
一、概述
很多公司在自己的产品介绍中描述产品有多少种日志解析规则等等,当然,这种内置的解析规则对这类产品发挥了很重要的作用。但这种方式也存在一些问题:
首先,经过时间的推移就会发现,每年市场上都会产生不少的新的安全设备和型号,导致厂家很难实现全部预制好的解析规则;
其次,很多设备会经常升级,升级后会导致日志种类的增加和调整;
最后,很多设备的日志种类非常之多,如果全部内置到系统中,几乎是不可能完成的任务。所以大多数的产品,只内置了部分的日志解析规则。比如思科ASA防火墙日志从官网看就有好几百种日志格式,如果内置都解析,是很大的工作量,何况有时候也没有必要全部解析。
线程池知识回顾
开始这篇文章之前还是简单介绍一嘴线程池,之前写的《新手也能看懂的线程池学习总结》这篇文章介绍的很详细了。
为什么要使用线程池?
“池化技术相比大家已经屡见不鲜了,线程池、数据库连接池、Http 连接池等等都是对这个思想的应用。池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。
线程池提供了一种限制和管理资源(包括执行一个任务)。每个线程池还维护一些基本统计信息,例如已完成任务的数量。
这里借用《Java 并发编程的艺术》提到的来说一下使用线程池的好处:
-
降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
-
提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。
-
提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。
线程池在实际项目的使用场景
线程池一般用于执行多个不相关联的耗时任务,没有多线程的情况下,任务顺序执行,使用了线程池的话可让多个不相关联的任务同时执行。
假设我们要执行三个不相关的耗时任务,Guide 画图给大家展示了使用线程池前后的区别。
注意:下面三个任务可能做的是同一件事情,也可能是不一样的事情。

(编辑:南通站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|