elasticsearch 是否可以在.conf文件中拆分路径路由?
我正在尝试以更大的可伸缩性来编写这个.conf文件,我的想法是,为了在elasticsearch中有多个索引,分割路径并获得csv名称的最后位置,并将其设置为elasticsearch中的类型和索引
elasticsearch 是否可以在.conf文件中拆分路径路由?,
elasticsearch,logstash,logstash-grok,logstash-configuration,
elasticsearch,Logstash,Logstash Grok,Logstash Configuration,我正在尝试以更大的可伸缩性来编写这个.conf文件,我的想法是,为了在elasticsearch中有多个索引,分割路径并获得csv名称的最后位置,并将其设置为elasticsearch中的类型和索引 import pandas as pd import numpy as np input { file { path => "/home/aitor2/RETO8/BIGDATA/df_suministro_activa.csv" start_posi
import pandas as pd
import numpy as np
input {
file {
path => "/home/aitor2/RETO8/BIGDATA/df_suministro_activa.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
}
file {
path => "/home/aitor2/RETO8/BIGDATA/df_activo_consumo.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
path2 = path.split('/')[-1]
filter {
if [path] == "/home/aitor2/RETO8/BIGDATA/df_suministro_activa.csv"{
mutate { replace => { type => path2 } }
csv {
separator => ","
skip_header => "true"
autodetect_column_names => true
}
ruby {
code => "event.to_hash.each { |k, v|
if k.start_with?('Linea') and v.is_a?(String)
event.set(k, v.to_f)
end
}
"
}
}
else if [path] == "/home/aitor2/RETO8/BIGDATA/df_activo_consumo.csv"{
mutate { replace => { type => "apaches2" } }
csv {
separator => ","
skip_header => "true"
autodetect_column_names => true
}
ruby {
code => "event.to_hash.each { |k, v|
if k.start_with?('Smart') and v.is_a?(String)
event.set(k, v.to_f)
end
}
"
}
}
}
output {
elasticsearch {
hosts => "http://localhost:9200"
index => "%{type}_indexer"
}
stdout {codec => rubydebug}
}
我试着用
path2=path.split('/')[-1]
来做,但我不确定这是否可行。在过滤器部分,将类型的值设置为文件名(df_suministro_activa.csv
或df_activo_consumo.csv
)。为此,我使用了grok
<代码>变异
是另一种可能性
然后可以在输出/if-else/更改其值等中使用类型
input {
file {
path => "/home/aitor2/RETO8/BIGDATA/df_suministro_activa.csv"
...
}
file {
path => "/home/aitor2/RETO8/BIGDATA/df_activo_consumo.csv"
...
}
}
filter {
grok { match { "path" => "UNIXPATH/(?<type>[^/]+)" } }
if [type] == "df_suministro_activa.csv" {
...
}
else if [type] == "df_activo_consumo.csv" {
mutate { replace => { type => "apaches2" } }
...
}
}
output {
elasticsearch {
hosts => "http://localhost:9200"
index => "%{type}_indexer"
}
}
输入{
文件{
path=>“/home/aitor2/RETO8/BIGDATA/df_suministro_activa.csv”
...
}
文件{
path=>“/home/aitor2/RETO8/BIGDATA/df_activo_consumo.csv”
...
}
}
滤器{
grok{match{“path”=>“UNIXPATH/(?[^/]+)”}
如果[type]=“df_suministro_activa.csv”{
...
}
如果[type]=“df\u activo\u consumo.csv”则为else{
变异{replace=>{type=>“apaches2”}
...
}
}
输出{
弹性搜索{
主机=>”http://localhost:9200"
index=>“%{type}\u索引器”
}
}
我不确定路径
字段;您可能希望尝试[log][file][path]
而不是过滤器
块中的路径