最近有需求,需要做一个日志分析系统=>打算用 Elastic Stack ( ELK+B )来实现,但是本人还在学习阶段,只知道 B 用来数据获取,L 用于数据过滤,E 用于搜索+分析,K 用于数据可视化。
一、个人理想计划如下: ( 1 ) nginx 端 或 具体 java 后端进程产生的 log 日志 -> 用 Beats 相关技术监听 nginx 的 HTTP 请求 or 获取 java 日志文件;接着 beats 传递数据到 kafka 消息队列
( 2 )从 kafka 中消费数据,数据给 logstash 进行数据过滤(变成简单格式,比如 IP:HTTP 方法( POST 等):具体方法:{参数列表之类的};接着 logstash 再将过滤后的数据给另一个 kafka 队列
( 3 )从 kafka 消费数据,数据给 ElasticSearch,进行数据分析,然后 Kiana 数据可视化。
总体:nginx/java 进程 日志来源 -> beats -> kafka -> logstash -> kafka -> ElasticSearch -> Kibana
二、问题 ( 1 )我自己想得比较理想,但据说不适合用 ElasticSearch 当作存储,但是居然要分析,不就不得不把数据加载到内存上的 ES 上吗?有什么避免内存占用过大的方法吗?
( 2 )上面只想了 ELK 进行日志分析,但是后续需要根据 ELK 的日志分析来进行 一些产品之类的东西的推荐,也就是涉及推荐系统的搭建,个人想法就是可能可以根据日志的用户行为,构建 图数据库,然后根据图数据库进行用户的产品推荐之类的。不知道这种想法可行不可行。
( 3 )请教一下各位看官,ELK (正在学)、图数据库(了解过,没用过)、推荐算法(这个没了解过),是不是这几个部分就能够实现以下几个事情了?(日志可视化、用户行为分析、用户产品推荐)
ps:本人比较菜,ELK 、图数据库相关概念稍有了解,但是推荐算法纯不知道。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.