logstash:使用一个logstash conf文件创建多个索引

5n0oy7gb  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(1)|浏览(483)

我使用logstash作为postgres数据库和elasticsearch之间的管道。我的postgres数据库中有两个表(表用户和表项目)。如果我尝试在单独的logstash文件中单独输入每个表,它可以正常工作,但是我只想使用一个logstash文件在elasticsearch中创建2个索引,并在索引中输入每个postgres表数据。
在elasticsearch中索引我的项目表的日志存储文件(工作正常并创建索引):

input {
  jdbc {
    jdbc_connection_string => "jdbc:postgresql://localhost:5432/postgres"
        jdbc_user => "postgres"     
        jdbc_password => "firas"
        jdbc_driver_library => "C:\logstash-7.5.2\drivers\postgresql-42.2.10.jre6.jar"        
        jdbc_validate_connection => true               
        jdbc_driver_class => "org.postgresql.Driver"
        statement => "select * from public.project "

    }
   }

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => ["project"]
  }
  stdout {}
 }
icnyk63a

icnyk63a1#

在输入中使用标记,在输出中使用条件以按这些标记过滤。
你的管道应该是这样的:

input {
    jdbc {
  ***connnection configuration for the user table***
    tags => ["user"]
    }
    jdbc {
  ***connnection configuration for the project table***
    tags => ["project"]
    }
}
output {
    if "user" in [tags] {
        elasticsearch {
            hosts => "localhost:9200"
            index => "user"
        }
    }
    if "project" in [tags] {
        elasticsearch {
            hosts => "localhost:9200"
            index => "project"
        }
    }
}

相关问题