Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch Logstash和ElasticSearch之间丢失的文档_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Logstash - Fatal编程技术网 elasticsearch Logstash和ElasticSearch之间丢失的文档,elasticsearch,logstash,elasticsearch,Logstash" /> elasticsearch Logstash和ElasticSearch之间丢失的文档,elasticsearch,logstash,elasticsearch,Logstash" />

elasticsearch Logstash和ElasticSearch之间丢失的文档

elasticsearch Logstash和ElasticSearch之间丢失的文档,elasticsearch,logstash,elasticsearch,Logstash,我在跑步和基本的麋鹿堆叠。所有三个组件都在vm中运行。 Logstash正在TCP 9140上监听其输入,通过NxLog代理接收大约30个Windows Server 2008s和30个Windows Server 2003事件(EVT),并将其输出到elasticsearch 这已经完美运行了两周。我可以看到ElasticSearch每天都在创建索引,可以浏览文档,创建图表,一切都很好 一个周末后,我意识到在周五晚上9点的某个时候,所有的新活动都停止了。没有网络问题,所有服务器都在发送日志 我

我在跑步和基本的麋鹿堆叠。所有三个组件都在vm中运行。 Logstash正在TCP 9140上监听其输入,通过NxLog代理接收大约30个Windows Server 2008s和30个Windows Server 2003事件(EVT),并将其输出到elasticsearch

这已经完美运行了两周。我可以看到ElasticSearch每天都在创建索引,可以浏览文档,创建图表,一切都很好

一个周末后,我意识到在周五晚上9点的某个时候,所有的新活动都停止了。没有网络问题,所有服务器都在发送日志 我所能看到的只是很多与Watcher(弹性插件)许可证过期相关的错误/警告,但没有什么有趣的。我甚至可以看到与新一天的新索引相关的日志被自动创建

因此,我删除了插件,重新启动弹性和所有的好。 我不认为这是真正的问题,我认为elasticsearch被挂了

我有两个问题:

1) 我应该如何拍摄这些条件。(所有服务都已启动,没有文档被索引)

2) 如果Logstash已启动并接受输入,但Elastic已关闭,那么从windows服务器发送的事件会发生什么情况?从Nxlog的角度来看,这些日志被正确地发送到logstash,因此没有理由重试,这些日志将“永远”丢失

谢谢!
Rodrigo.

如果ES因任何原因(太忙等)关闭或挂起,则logstash将关闭,然后放手,这意味着您将丢失这些事件

有很多方法可以缓解这种情况,但一个好的做法是(在DB或消息队列系统中)仅在成功发送到ES后将其弹出。此类消息传递系统包括(使用列表或通道作为队列),(分布式日志),(分布式消息队列)等

有很多方法可以将这些技术与logstash一起配置,其中一个例子是logstash与Kafka一起使用。在您的情况下,这将意味着Nxlog而不是直接发送到Logstash。那就藏起来

您的里程数会有所不同,但这里的主要思想是,如果无法将日志发送到Elasticsearch,您的日志不会丢失。这将回答你的第二个问题


至于你的第一个,我建议安装其他ES插件,比如和/或官方插件,这些插件都能深入了解Elasticsearch内部目前的情况。您将能够快速检测问题所在并采取行动。

“如果ES因任何原因(太忙,等等)关闭或挂起,logstash将重试几次,然后放弃,这意味着您将丢失这些事件。”--这是真的吗?有一个重试队列,但我的印象是它只用于特定文档的瞬时批量响应错误。对于网络错误,您甚至没有得到批量响应,我相信这会像其他输出一样阻碍管道。当然,我没有试图描述他确切问题的原因,只是事情可能会以这样或那样的方式出错。当然,我永远不会依赖这种重试机制,它只是一个内置功能,但这远远不够。谢谢你提供的所有信息!当我在做最初的研究时,我遇到了几个RELK实例,他们说redis是一种性能提升,速度非常快,但由于它必须在堆栈的前面,nxLog没有redis的输出,所以这是一个不可能的。。。无意中,我在logstash中的一个大rubydebug输出中有一个丢失事件的备份。。。至于惊奇漫画,它不是免费的,是吗?因为没有输出,有机会使用吗?Marvel不是免费的,但是其他两个对初学者来说已经足够了。嗯,所以从nxlog的角度来看,这看起来像是一个日志库,然后将它发送到redis。。。?但是现在我的ELK堆栈入口点应该是python代理,对吗?