身安不如心安,屋宽不如心宽 。

kibana多个索引聚合计算

Kibana | 作者 uuuu | 发布于2019年07月19日 | 阅读数:5130

两个索引,一个记录了一些行为数据,就是starttime到endtime在哪个MAC地址的机器上做了什么行为。但这个行为日志中没有机器的总数量。
第二个索引记录了每个日期的机器总数,是从数据库导入到ES里的。
我想实现通过第一个索引得出每天开机的机器数(对MAC地址做unique count),除以第二个索引中对应日期的机器总数,得出当天的开机率,然后做个折线图。
但不知道怎么做,有什么办法吗?
已邀请:

cyberdak

赞同来自:

可以尝试下给两个索引加上一样的别名,然后当成在一个index里面聚合查询

uuuu

赞同来自:

多谢cyberdak。
我现在是不知道怎么查询。
第一个类似这样:
{behaviour:"aaaa",starttime:"2019-01-01 11:11:11",endtime:"2019-01-01 12:12:12",mac:"111111111111",group:"AAAAAAAAAA"},
{behaviour:"bbbb",starttime:"2019-01-01 13:13:13",endtime:"2019-01-01 13:13:13",mac:"222222222222222",group:"AAAAAAAAAA"},
第二个是这样:
{group:"AAAAAAAAAA", date:"2019-01-01",deviceNum:100}
 
假如这就是全部数据,对第一个按照group、starttime分组并对MAC unique count得到AAAAAAAAAA对应的2019-01-01的开机数量是2,然后第二个中AAAAAAAAAA在2019-01-01的总数是100,这样就能得到AAAAAAAAAA在2019-01-01的开机率是2%。
 
我现在不知道上述步骤怎么在kibana中表达出来。请问这个能实现吗?
两个索引可以做成一个,这个都能做,但是这个计算怎么表达我不太明白。

要回复问题请先登录注册