【问题标题】:logstash : creating multiple indices using one logstash conf filelogstash : 使用一个 logstash conf 文件创建多个索引
【发布时间】:2021-01-26 07:43:34
【问题描述】:

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

我的 logstash 文件用于在 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 {}
 }

【问题讨论】:

    标签: json postgresql elasticsearch nosql logstash


    【解决方案1】:

    在输入中使用标签并在输出中使用条件来过滤这些标签。

    你的管道应该是这样的:

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

    【讨论】:

      猜你喜欢
      • 2017-11-02
      • 2015-11-15
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多