如何从 logstash 过滤器中的文件添加字段
How to add a field from a file in logstash filter
我有一个带有许多过滤器的 logstash 管道,它使用 netflow 模块摄取 netflow 数据。
我想在输出结果中添加一个字段。字段名称为:“site”
站点将是文件中存在的数值。如何从文件创建字段?
例如:
mutate {
id => "site"
add_field => {
"[flow][policy_violation]" => "false"
"[flow][threat]" => "false"
"[flow][site_id]" => //=======> read file /tmp/site.id and assign value
}
}
文件:
/tmp/site.id
site.id 包含:
12345678
您可以在 Logstash 配置中利用 environment variable。首先导出运行ningDocker/Logstash:
前的变量
export SITE_ID=$(</tmp/site.id)
然后运行docker加上环境变量:
docker run ... --env SITE_ID
然后在您的 Logstash 配置中,您可以像这样引用变量:
mutate {
id => "site"
add_field => {
"[flow][policy_violation]" => "false"
"[flow][threat]" => "false"
"[flow][site_id]" => "${SITE_ID}"
}
}
我有一个带有许多过滤器的 logstash 管道,它使用 netflow 模块摄取 netflow 数据。
我想在输出结果中添加一个字段。字段名称为:“site”
站点将是文件中存在的数值。如何从文件创建字段?
例如:
mutate {
id => "site"
add_field => {
"[flow][policy_violation]" => "false"
"[flow][threat]" => "false"
"[flow][site_id]" => //=======> read file /tmp/site.id and assign value
}
}
文件:
/tmp/site.id
site.id 包含:
12345678
您可以在 Logstash 配置中利用 environment variable。首先导出运行ningDocker/Logstash:
前的变量export SITE_ID=$(</tmp/site.id)
然后运行docker加上环境变量:
docker run ... --env SITE_ID
然后在您的 Logstash 配置中,您可以像这样引用变量:
mutate {
id => "site"
add_field => {
"[flow][policy_violation]" => "false"
"[flow][threat]" => "false"
"[flow][site_id]" => "${SITE_ID}"
}
}