elasticsearch 如何从logstash筛选器中的文件添加字段
我有一个带有许多过滤器的日志存储管道,它使用netflow模块接收netflow数据 我想在输出结果中添加一个字段。字段的名称为:“站点” 站点将是文件中存在的数值。如何从文件中创建字段 例如: 文件: /tmp/site.id site.id包含: 12345678您可以在日志存储配置中利用。首先,在运行Docker/Logstash之前导出变量:
elasticsearch 如何从logstash筛选器中的文件添加字段,
elasticsearch,logstash,logstash-configuration,
elasticsearch,Logstash,Logstash Configuration,我有一个带有许多过滤器的日志存储管道,它使用netflow模块接收netflow数据 我想在输出结果中添加一个字段。字段的名称为:“站点” 站点将是文件中存在的数值。如何从文件中创建字段 例如: 文件: /tmp/site.id site.id包含: 12345678您可以在日志存储配置中利用。首先,在运行Docker/Logstash之前导出变量: export SITE_ID=$(</tmp/site.id) 然后在Logstash配置中,您可以像这样引用变量: mutate {
export SITE_ID=$(</tmp/site.id)
然后在Logstash配置中,您可以像这样引用变量:
mutate {
id => "site"
add_field => {
"[flow][policy_violation]" => "false"
"[flow][threat]" => "false"
"[flow][site_id]" => "${SITE_ID}"
}
}
那么
flow.site\u id
对于同一主机上的所有事件都是常量?还有,你是如何开始Logstash的?是的。flow.site_id一旦设置,将始终保持不变。我希望从文件中读取它的原因是因为安装了prod。我用docker开始logstash。我不介意有一个env变量,可以读取它来填充这个字段。谢谢。我可以用这个。但是,我也想知道如何使用ruby脚本。我尝试过类似的方法,但是我遇到了RubyException,使用ruby过滤器,您将一次又一次地重新打开并读取每个事件的文件。。。你确定你想让所有这些IO都发生吗?嗯,这样做实际上没有任何意义。特别是因为文件内容从未更改。:)
docker run ... --env SITE_ID
mutate {
id => "site"
add_field => {
"[flow][policy_violation]" => "false"
"[flow][threat]" => "false"
"[flow][site_id]" => "${SITE_ID}"
}
}