根据维基百科,弹性搜索是一种搜索引擎。这意味着它不是一个数据库,并且不存储它正在编制索引的数据(但大概确实存储了它的索引)
大概有 2 种方法可以将数据导入 Es。日志传送或直接通过 api。
假设我的应用程序想要编写一个老式的日志文件条目:
Logger.error(now() + “在模块中发生了一些不好的事情” + module + “;” + message”
这可以写入文件或使用 rest api 将数据直接放入 es 中。
如果是通过rest api完成的,es是否存储了整个日志消息,在这种情况下,您不需要浪费磁盘将日志写入文件以进行合规等。 或者它是否仅索引数据,因此您需要保留一个单独的副本? 如果删除或移动原始日志文件,es怎么知道,Deos存储的内容还有用吗?
如果写入日志文件,那么使用 log stash 或类似的“将日志数据放入 es”是否存储整个日志文件以及任何索引?
es 如何解析或索引任意日志文件?它将日志行视为单个字符串,还是要求日志具有特定格式,例如 cvs 或 Jason?
有谁知道具有此关键信息的资源?
Elasticsearch 确实存储了您正在编制索引的数据。
当您将数据摄取到 elasticsearch 中时,这些数据会存储在一个或多个索引中,然后可以对其进行搜索。为了能够使用 elasticsearch 搜索某些内容,您需要将数据存储在 elasticsearch 中,例如它不能搜索外部文件。
在您的示例中,如果您有一个发送日志的应用程序执行elasticsearch,它将存储您发送的整个消息,并且在elasticsearch 中之后您不再需要原始日志。
如果您需要在不同字段中解析您的文档,您可以在将日志作为 json 文档发送到 elasticsearch 之前执行此操作,使用 logstash 执行此操作或使用 elasticsearch 中的摄取管道。
了解更多关于它是如何工作的一个很好的起点是官方文档
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句