当前位置: 首页 > 面试题库 >

logstash + elasticsearch:重新加载相同的数据

薛宜
2023-03-14
问题内容

设法获得logstash(1.3.1)以将数据发送到elasticsearch(0.9.5)。

我的logstash conf文件设置是

input {
  file {
    path => ["D:/apache-tomcat-7.0.5/logs/*.*"]
   }

}
 output {
  stdout { } 
    elasticsearch_http {
    host => "localhost"
    port => 9200
   }
 }

数据存储在ES中的索引logstash-2013.12.xx下

但是,如果我重新启动logstash,请说第二天-将相同的数据重新加载到新索引中。即使我再次重新启动,索引中的文档计数也会加倍。

好像logstash重新读取数据,ES也在复制文档。

有没有一种方法可以不重新装入logstash或在ES中不重复或两者都不做。


问题答案:

我也遇到了Logstash 1.3.3的问题。Logstash Jira上的相关错误报告是LOGSTASH-429 File Input-
Windows上的.sincedb文件已损坏
。Boyd
Meier还创建了一个补丁。

该补丁也已经被拉入Jordan Sissel的ruby-filewatch git存储库中,以便包含在以后的版本中,但是它尚未发布。

问题来自Logstash,使用文件inode在Windows上始终返回0。博伊德·迈耶(Boyd
Meier)使用文件ID获取文件的标识符,以绕过该问题。从卷中删除文件之前,此文件ID保持不变。

如果您愿意进行一些修补,则可以从Jordan Jordan Sissel的ruby-filewatch
git存储库中修补更改。对于我刚刚打过补丁的1.3.3,并且正在针对测试日志文件进行测试的步骤如下:

  1. 从Github下载ruby-filewatch zip文件:Jordan Sissel的ruby-filewatch git存储库
  2. 将下载的zip文件解压缩到新目录
  3. 我必须对Ruby-filewatch \ lib \ filwatch \ tail.rb文件进行更改->第10行,其内容要求为“ JRubyFileExtension.jar”。我必须更改为要求使用“ java / JRubyFileExtension.jar”,否则我将收到一个错误,它在尝试读取文件时无法找到jar文件。作为参考,使整行显示为:require "java/JRubyFileExtension.jar" if defined? JRUBY_VERSION
  4. 在7-Zip中打开logstash-1.3.3-flatjar.jar文件
  5. 将java目录从ruby-filewatch拖放到7-Zip的根文件夹中
  6. 将所有文件从ruby-filewatch \ lib \ filewatch文件夹拖放到7-Zip中的filewatch文件夹中,覆盖所有现有文件

现在,当您对多个日志文件运行它时,您应该发现sincedb包含多个条目,并且这些条目的显示类似于1717916447-2604966-851968 0
2428312038。如果您在查找sincedb文件时遇到麻烦并且未设置sincedb_path在您的配置文件中,可以在运行jar的用户的主目录中找到它。如果您是您的用户,则可以使用Windows键+运行->%USERPROFILE%->确定轻松访问它。

与往常一样,打补丁时要小心,并在部署到生产系统之前进行全面测试。



 类似资料:
  • 试图在Spring中学习MVC的基础知识(我只使用Spring构建RESTAPI),但我很难理解如何将新数据返回到同一个视图,似乎我有很多重复的代码,HTML页面完全依赖于th:if语句。。。 发出POST请求,然后用新的/更新的数据加载同一ModelAndView的最佳方式是什么?代码如下: 控制器: 欢迎html:

  • 我整晚都在做这个,快把我逼疯了。它应该很简单,但它不起作用。这适用于Oracle,但不适用于MySQL,我创建了类似的数据库。使用-f选项提供给logstash的配置。 } 输出{stdout{codec= } 一旦我运行了logstash,它就不会将数据加载到弹性搜索索引中。当我执行以下操作时,我甚至看不到名为visitDb的索引。 curl'localhost:9200/_cat/索引?v'

  • 问题内容: 我的.routing.ts文件中有这个 我的文件检查id参数并相应地加载数据。在路由器的早期版本中,如果我从/ page / 4转到/ page / 25,则该页面将“重新加载”并且组件将更新。 现在,当我尝试导航到/ page / X时,其中X是id,它只会第一次加载,然后url会更改,但是组件不会再次“重新加载”。 是否需要传递某些内容以强制重新加载组件并调用ngOnInit事件?

  • 问题内容: 用例说明 我们有一个关系数据库,其中包含有关我们日常运营的数据。目的是允许用户使用全文本搜索引擎来搜索重要数据。数据经过规范化,因此不是进行全文查询的最佳形式,因此,其想法是对数据的一部分进行规范化,然后将其实时复制到Elasticsearch,这使我们能够创建快速而准确的搜索应用程序。 我们已经有了一个启用数据库操作(插入,更新,删除)事件搜索的系统。这些事件仅包含已更改的列和主键(

  • 问题内容: 目标:实施标准的“设置” GUI窗口。类别位于 ListView左侧,而相应选项位于Pane右侧。 (请忽略具有重复类别的明显错误;仍在处理) 在此处输入图片说明 我有一个用于整体“设置”窗口的主窗口,其中包含 ListView带有所有类别的设置。窗口的右侧 具有AnchorPane, 当从列表中选择一个类别时,用于为每个类别加载单独的FXML文件。 当用户选择类别时,我需要他们能够编

  • 我有一个用于总体设置窗口的主窗口,其中包含一个和所有设置类别。窗口的右侧有一个,用于在从列表中选择每个类别时为每个类别加载单独的FXML文件。 当一个用户选择一个类别,我需要他们能够编辑右边的设置,切换到另一个类别,并作出更多的改变。然而,如果他们回到第一类,那里所做的改变会持续下去。 我的明显问题是,每次用户更改类别时,都会重新加载FXML文件和控制器,将其中的所有控件重置为它们的默认值。 研究