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

使logstash将不同的输入添加到不同的索引

薛墨一
2023-03-14
问题内容

我设置了logstash以使用嵌入式elastisearch。
我可以记录事件。 我的logstashconf看起来是这样的:https://gist.github.com/khebbie/42d72d212cf3727a03a0


现在,我想添加另一个udp输入,并在另一个索引中对该输入进行索引。

有可能吗?我这样做是为了使报告更加容易,因此我可以在一个索引中包含系统日志事件,而在另一个索引中包含业务日志事件。


问题答案:

if在输出部分中使用条件,例如,基于消息类型或对选择索引有意义的任何消息字段。

input {
  udp {
    ...
    type => "foo"
  }
  file {
    ...
    type => "bar"
  }
}

output {
  if [type] == "foo" {
    elasticsearch {
      ...
      index => "foo-index"
    }
  } else {
    elasticsearch {
      ...
      index => "bar-index"
    }
  }
}

或者,如果消息类型可以直接进入索引名称,则可以有一个输出声明:

elasticsearch {
  ...
  index => "%{type}-index"
}


 类似资料:
  • 以下是我目前的尝试: 我一直在思考如何动态地向列(mpg、cyl、disp)添加(1,2,3)。提前谢了。

  • 我需要我的logstash conf文件向一个kafka主题发送一条消息,以指示已处理的文档已发送到ElasticSearch。我已经准备好了logstash文件来构造发送到ElasticSearch的数据,但是我需要通过同一个logstash文件向kafka主题发布“是”或“否”消息。

  • 只是所有的估计日期都不一样… 我的问题是,我似乎无法针对特定的实例。我只能选择整个方法(固定费率),我检查了我的方法实例ID,因为它们是唯一的: 但只有当我把作为php开关方法的一个例子时,它才起作用。2,3,4,5,7不工作。 这是我的代码: 代码显然会对我所有的运输方法产生所有相同的估计。 谢谢! 我在用这个: 大小写'flat_rate':$标签。='Lieferzeit: 2-3标签平';

  • 我试图构建一个通过扫描仪构建的整数ArrayList。用户必须输入5到10个整数才能使ArrayList有效,但在运行程序时,实际输入数将是未知的。 如何构建程序,使其只在用户输入5、6、7、8、9或10个整数时运行?

  • 想象一下下面的scanario:我有一个程序,它要求输入一个整数,然后是一个String输入。 根据aobe代码,我没有机会输入姓名。因此,通常我会声明2个扫描仪对象,如下所示: 我的问题是:有必要声明多个扫描仪对象来接受不同类型的输入吗??我这样做是正确的吗? 我已经考虑这个问题很多年了。(SO中的几个问题提到了多扫描仪,但他们的问题只使用了一个扫描仪对象,所以我今天问这个问题。)

  • 我有一个棘手的问题要解决。我使用系统。方法调用之前和之后的currentTimeMillis(),因为我必须测量这两条语句之间经过的时间。 我担心的是每次运行程序都会得到不同的结果。 我明白了(这很完美): 几秒钟后,我再次运行程序,我得到(这是错误的): 我说这个输出是错误的,因为每辆车的等待时间不应该少于100毫秒。 什么实际影响基于currentTimeMillis函数的时间计算? 为什么我