0

私は2つの設定ファイルがデータベースの別のテーブルを指しているが、elasticsearchでは2つのテーブルがマージされているので、tableaとtablebアイテムはすべてコピーされ、tableaとtablebアイテムはすべてコピータイプb。ログテーブルのマージテーブルがなぜですか?

しかし、私はtableaをtypea、tablebをtypebにするように設定しました。

ここに私の設定FILEAが

input { 

    jdbc { 
     jdbc_driver_library => "/usr/share/logstash/mysql-connector-java-5.1.42-bin.jar" 
     jdbc_driver_class => "com.mysql.jdbc.Driver" 
     jdbc_connection_string => "jdbc:mysql://db:3306/nombase" 
     jdbc_user => "root" 
     jdbc_password => "root" 
     schedule => "* * * * *" 
     statement => "SELECT * FROM `tablecandelete`" 
    } 

} 


## Add your filters/logstash plugins configuration here 


output { 

    stdout { codec => json_lines } 

    if [deleted] == 1 { 
     elasticsearch { 
      hosts => "elasticsearch:9200" 
      index => "nombase" 
      document_type => "tablecandelete" 

      ## TO PREVENT DUPLICATE ITEMS 
      document_id => "tablecandelete-%{id}" 
      action => "delete" 
     } 
    } else { 
     elasticsearch { 
      hosts => "elasticsearch:9200" 
      index => "nombase" 
      document_type => "tablecandelete" 

      ## TO PREVENT DUPLICATE ITEMS 
      document_id => "tablecandelete-%{id}" 
     } 
    } 

} 

だ。ここに私の設定FILEBは

input { 

    jdbc { 
     jdbc_driver_library => "/usr/share/logstash/mysql-connector-java-5.1.42-bin.jar" 
     jdbc_driver_class => "com.mysql.jdbc.Driver" 
     jdbc_connection_string => "jdbc:mysql://db:3306/nombase" 
     jdbc_user => "root" 
     jdbc_password => "root" 
     schedule => "* * * * *" 
     statement => "SELECT * FROM `nomtable`" 
    } 

} 


## Add your filters/logstash plugins configuration here 


output { 

    stdout { codec => json_lines } 

    elasticsearch { 
     hosts => "elasticsearch:9200" 
     index => "nombase" 
     document_type => "nomtable" 

     ## TO PREVENT DUPLICATE ITEMS 
     document_id => "nomtable-%{id}" 
    } 

} 

だ誰のアイデアを持っていますか?

答えて

1

2つの異なる設定ファイルがありますが、logstashはそれらを独立して扱いません。すべての入力を1つのファイルに、すべての出力を別のファイルに入れることができます。

物事を分離するために、あなたの入力の各々にtype => something_uniqueを追加して、このような

if [type] == 'something_unique' { 
    // config here 
} 
+0

何かで設定ファイルの残りのコードを囲む必要がありますか? '出力{ \t STDOUT {コーデック=> json_lines} \t \t [タイプ] == "nomtable"{ \t \t elasticsearch { \t \t \tホスト=> "elasticsearch:9200" IF \t \t \t index => "nombase" \t \t \t document_type => "nomtable" \t \t \t の\t \t \t ##防ぐために重複するアイテム \t \t \t DOCUMENT_ID => - それはそれを "nomtable%{ID}" \t \t} \t} \t } ' –

+0

は、男ありがとうございました、1 –

関連する問題