我对ES还是很陌生,并且想开始索引打印在同一台计算机上各个组件之间以及跨多台计算机的多个日志文件,这些文件位于每台计算机上的eventviewer条目之上。
有时在启用扩展跟踪的情况下,可能会有大量的写操作,我想保持索引尽可能快和轻巧。
搜索日志是单个用户完成的非常罕见的操作 一次,只要花费大约5秒钟,我就可以接受。
我的初步想法是,如果可能的话,将只为驻留在本地计算机本身上的每个(机器,组件,日期)tupple分配一个索引和碎片。 希望这样可以将所有节点的协调性降至最低,并且在查询时,只需从所有节点中汇总所有结果即可。
我的问题是这是否有可能(我计划使用logstash以便将数据推送到ES),或者这甚至可以满足我的需求吗?
谢谢, 莱昂
答案 0 :(得分:0)
您无法在开始对数据进行索引之前进行优化,或者至少对数据量有一个现实的认识。
但是对于这一部分:
如果可以的话,我最初的想法是只分配一个 每个(机器,组件,日期)组合的索引和碎片, 驻留在本地计算机上
您将创建太多索引。 ES没有魔幻数字,但是当Lucene分片的大小介于4到20 Go数据之间时(如果不使用父/子或嵌套结构),其大小通常是正确的。在4Go以下,您一无所有地消耗了CPU周期,并且给群集增加了无用的负担。
因此,请尝试估计您每天/每个组件将产生多少日志。也许考虑一下月度指数或每日多分量。