elasticsearch 如何从logstash筛选器中的文件添加字段,elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration" /> elasticsearch 如何从logstash筛选器中的文件添加字段,elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration" />

elasticsearch 如何从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 {

我有一个带有许多过滤器的日志存储管道,它使用netflow模块接收netflow数据

我想在输出结果中添加一个字段。字段的名称为:“站点”

站点将是文件中存在的数值。如何从文件中创建字段

例如:

文件:

/tmp/site.id

site.id包含:

12345678

您可以在日志存储配置中利用。首先,在运行Docker/Logstash之前导出变量:

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}"

    }
}