logstash - logstash 多管道决策器
问题描述
以下是我的用例,基于运行时的一些业务逻辑,我需要将从日志文件生成的事件发布到不同的弹性搜索端点。输入插件(文件名)将相同,但输出插件(弹性端点)可能会改变。我无法在每个日志行中提供运行时生成的这些数据。例如,thread1 和thread2 都在向app.log 生成日志。我想将日志从线程 1 推送到弹性端点 1,并将日志从线程 2 推送到弹性端点 2。在这种情况下,两者的输入( app.log )是相同的。这是可以实现的吗?
解决方案
是的,只需if
在输出中使用条件。
您将需要一个要过滤的字段,例如一个名为的字段,该字段thread
将具有线程的值,thread1
或者thread2
,那么您需要这样的东西:
output {
if [thread] == "thread1" {
elasticsearch to endpoint1
}
if [thread] == "thread2" {
elasticsearch to endpoint2
}
}
推荐阅读
- javascript - 仅在提示答案正确后才显示 H1 Javascript
- docker - Golang 的 Delve 找不到位于父文件夹中的包
- php - 使用准备好的语句清理插入
- r - 如何加快代码执行双重求和
- mysql - 如何计算一个表中所有唯一 ID 总和与另一表中所有唯一 ID 总和在特定时期的每一天的百分比?
- android - 为什么 Firebase childEventListener 不能与一个引用一起工作而与另一个引用一起工作?
- ios - 从 pdf 数据中提取单个页面(或页面范围)而不加载整个 pdf(有时会占用太多 RAM)
- ios - Firebase 数据库 Permission denied 使用 swift 4.2 面临的错误
- containers - Service Fabric Container API 未在端点上加载
- bash - expr 和 if 在 bash