前言
年初的时候进入了游戏行业,一直在做游戏逻辑相关的开发,现在回过头来搞游戏分析相关的东西,我们现在的需求主要是用户流失相关的分析。玩家哪些功能比较常用,某个功能玩家的使用频率的分析,对这些进行建模,以前我们常用ELK做一些日志的存储之类的功能,现在拿ELK作分析不知道会怎么样
准备工作
ELK搭建
数据导入
数据建模
ELK搭建
之前写过一篇ELK日志的搭建文章 ELK结合logback搭建日志中心,
这样做其实有点太慢了,为了先验证想法,先使用docker搭建ELK 所用的docker,搭建起来的端口
5000: Logstash TCP input.
9200: Elasticsearch HTTP
9300: Elasticsearch TCP transport
5601: Kibana
数据导入
由于我们并不是日志收集系统,所以logstash的作用其实并不大,而且使用起来也不是灵活,所以我果断把logstash这层直接没用使用,使用的是Elastaicsearch的Restful接口导入数据,这样可以使我们灵活的处理各种自己的数据,只需要把数据转换成json即可
ES 的一大特点,就是全 RESTful 接口处理 JSON 请求。所以,数据写入非常简单:
# curl -XPOST http://127.0.0.1:9200/logstash-2015.06.21/testlog -d '{
"date" : "1434966686000",
"user" : "chenlin7",
"mesg" : "first message into Elasticsearch"
}'
命令返回响应结果为:
{"_index":"logstash-2015.06.21","_type":"testlog","_id":"AU4ew3h2nBE6n0qcyVJK","_version":1,"created":true}
其他具体的CRUD就不介绍了主要-->使用方法
数据建模
使用kibana生成相应的图表
-
首先使用 discover 功能过滤相应的数据
简单的文本搜索,直接输入文本字符串。比如,如果你在搜索网站服务器日志,你可以输入 safari 来搜索各字段中的 safari 单词。
要搜索特定字段中的值,则在值前加上字段名。比如,你可以输入 status:200 来限制搜索结果都是在 status 字段里有 200 内容。
要搜索一个值的范围,你可以用范围查询语法,[START_VALUE TO END_VALUE]。比如,要查找 4xx 的状态码,你可以输入 status:[400 TO 499]。
要指定更复杂的搜索标准,你可以用布尔操作符 AND, OR, 和 NOT。比如,要查找 4xx 的状态码,还是 php 或 html 结尾的数据,你可以输入 status:[400 TO 499] AND (extension:php OR extension:html)。 然后通过Visualize 功能进行图标聚合
这块需要对你目标的数据进行过滤筛选,然后聚合,需要根据相应的模型进行整理。如下图:
玩家行为分析:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。