在做数据分析的时候,要分析一个数据,就是一天内数据的文档量和大小,我在kibana里面根据每天的索引找到了相关信息的统计,但是因为ELK体系的索引采用的是零时区,根据索引来统计数据有8个小时的误差。
如上图这个索引的时间是9月8号,但是这个是零时区的9月8号一整天的数据,我统计的时候要统计东八区也就是北京时间9月8号的数据,文档数量好统计,但是文档大小不好统计。
1、我有修正索引时间的想法,修改为北京时间,但是没有想到相应的解决办法
index => "xxxx-%{+YYYY.MM.dd}"
2、就是直接在es 里面统计文档大小,但是也是没有找到办法(深深地为自己的弱小感到羞愧,唉!╮(╯▽╰)╭)
以上两种思路,大家有什么解决办法吗?求教
如上图这个索引的时间是9月8号,但是这个是零时区的9月8号一整天的数据,我统计的时候要统计东八区也就是北京时间9月8号的数据,文档数量好统计,但是文档大小不好统计。
1、我有修正索引时间的想法,修改为北京时间,但是没有想到相应的解决办法
index => "xxxx-%{+YYYY.MM.dd}"
2、就是直接在es 里面统计文档大小,但是也是没有找到办法(深深地为自己的弱小感到羞愧,唉!╮(╯▽╰)╭)
以上两种思路,大家有什么解决办法吗?求教
4 个回复
wmdsjhjc
赞同来自: Wayne777
白衬衣 - 金桥
赞同来自:
"query":{"bool":{"must":[{"query_string":{"query":"*"}},{"range":{"time":{"gte":1507539069693,"lte":1507539969693,"format":"epoch_millis"}}}],"must_not":[]}}
juneryang
赞同来自:
参考:http://www.cnblogs.com/zhzhang/p/6837989.html
input {
beats {
port => "5043"
}
}
filter {
ruby {
code => "event.set('timestamp', event.get('@timestamp').time.localtime + 8*60*60); event.set('@timestamp', event.get('timestamp'))"
}
mutate {
remove_field => "offset"
remove_field => "@version"
remove_field => "input_type"
remove_field => "beat"
remove_field => "host"
remove_field => "source"
remove_field => "type"
remove_field => "day"
remove_field => "tags"
remove_field => "timestamp"
}
}
output {
stdout {
codec => rubydebug
}
file{
codec => line {format => "%{message}"}
path => "/home/logstash/elk/data/logstash/test.%{+YYYY-MM-dd}"
}
}
这个是我的解决方法,亲测可行。但是前提是没有输出到es(这个应该没有问题),kibana显示更没有做。
ziyou - 一个学习ELK的Java程序员
赞同来自: