4

前言

年初的时候进入了游戏行业,一直在做游戏逻辑相关的开发,现在回过头来搞游戏分析相关的东西,我们现在的需求主要是用户流失相关的分析。玩家哪些功能比较常用,某个功能玩家的使用频率的分析,对这些进行建模,以前我们常用ELK做一些日志的存储之类的功能,现在拿ELK作分析不知道会怎么样

准备工作

  1. ELK搭建

  2. 数据导入

  3. 数据建模

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生成相应的图表

  1. 首先使用 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)。

  2. 然后通过Visualize 功能进行图标聚合
    这块需要对你目标的数据进行过滤筛选,然后聚合,需要根据相应的模型进行整理。

  3. 如下图:

图片描述
玩家行为分析:
图片描述


nohup
160 声望9 粉丝