当前位置:   article > 正文

logstash+elasticsearch做一个简单的数据统计_logstash sum如何进行数据统计

logstash sum如何进行数据统计

业务背景:小程序推广,不同渠道给到不同的二维码,记录每个渠道的推广数据,主要指标有访问量 拉新数(新用户注册)

思路 1.前端设置埋点记录用户行为
2.后端格式化埋点数据
3.logstash二次格式化数据 取出有用的字段 扔到elasticsearch
4.elasticsearch做聚合查询

之前想着访问量不太 埋点数据直接入库 但是增删改查实在写烦了 而且这种需要+1+1+1的操作还要加锁保证数据的一致性 实在麻烦

安装logstash+elasticsearch就不赘述了 百度都有
首先针对埋点数据格式化 由log4j就可以完成了 json格式输出 方便后续处理

log4j.logger.com.yaoxun.system.service.impl.PointServiceImpl=INFO,POINT
log4j.appender.POINT=org.apache.log4j.RollingFileAppender
log4j.appender.POINT.DatePattern='.'yyyy-MM-dd
log4j.appender.POINT.File=D://logs/point.log
log4j.appender.POINT.layout=org.apache.log4j.PatternLayout
log4j.appender.POINT.layout.ConversionPattern={"time":"%d{yyyy-MM-dd HH:mm:ss,SSS}","logType":"%p","logInfo":%m}%n
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

大概是这种格式
{“time”:“2021-12-16 17:56:59,776”,“logType”:“INFO”,“logInfo”:"{“sourceId”:“12132”,“type”:“login”}"}

logstash的config文件夹新增文件point.conf
二次处理log4j日志 取出需要的字段 存入elasticsearch

input {		
	file {  
		path => "/home/tomcat/test8081/apache-tomcat-8.5.57/logs/point*.log"  
		type => "sit_point"
		codec => "json"
	}  
}

filter { 
	json
	   {
		  source => "message"
		  add_field => { "javalog" => "%{logInfo}" }
	   }
	json {
			source => "javalog"
			remove_field => [ "logInfo","javalog","logType" ]
		}
}
 
output {
		elasticsearch {
			hosts => ["localhost:9200"]
			index => "%{type}-%{+YYYY.MM.dd}"
		}
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

bin目录下执行
./logstash -f /usr/local/src/logstash-7.0.0/config/point.conf

在elasticsearch大概是这样
在这里插入图片描述
数据插入后就可以聚合查询了
curl -XPUT ‘http://localhost:9200/sit_point-2021.12.16/_mapping’ -d ’
{
“properties”: {
“logInfo.type”: {
“type”: “text”,
“fielddata”: true
}
}
}’
curl -H “Content-Type:application/json” -XPOST ‘http://localhost:9200/sit_point-2021.12.16/_search?pretty’ -d ’
{
“aggs”: {
“products_per_tag”: {
“terms”: {
“field”: “logInfo.type”
}
}
},
“size”: 0
}’

最终结果
{
“took” : 1,
“timed_out” : false,
“_shards” : {
“total” : 1,
“successful” : 1,
“skipped” : 0,
“failed” : 0
},
“hits” : {
“total” : {
“value” : 4,
“relation” : “eq”
},
“max_score” : null,
“hits” : [ ]
},
“aggregations” : {
“products_per_tag” : {
“doc_count_error_upper_bound” : 0,
“sum_other_doc_count” : 0,
“buckets” : [
{
“key” : “login”,
“doc_count” : 3
},
{
“key” : “regist”,
“doc_count” : 1
}
]
}
}
}
可以看到 有3次浏览行为 一次注册行为 搞定!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/994911
推荐阅读
相关标签
  

闽ICP备14008679号