logstash+jdbcデータ同期+head展示問題

1872 ワード

問題にぶつかる
  • head UIは1つのデータしか表示されず、インデックスはフィルタできません.理由:document_id=>"%{user_id}"のuser_idリファレンスチュートリアル未変更-解決:自分のプライマリ・キーからオブジェクトの%{自分のテーブルのプライマリ・キー}-後続:複数のテーブルの同期であればどうしますか?
  • 同期時sql_last_valueはずっと0で、logstashを表示します.jdbc_last_runも確かに0-理由:use_column_value=>falseはデフォルトですが、チュートリアルを参照してtrueに設定されています.解決:use_をマスクします.column_value=> true
  • 同期ファイルの例:

  • input{
             jdbc {
                # jdbc_driver_library => "mysql-connector-java-5.1.44-bin.jar"
        	#   
                 jdbc_driver_library => "/usr/local/soft/logstash-input-jdbc-master/lib/mysqljdbc-5.1.18.jar"
                 jdbc_driver_class => "com.mysql.jdbc.Driver"
                 jdbc_connection_string => "jdbc:mysql://172.16.0.178:3308/mtp_dev"
                 jdbc_user => "mtp_dev"
                 jdbc_password => "mtp_dev"
                 jdbc_paging_enabled => "true"
                 jdbc_page_size => "1000"
                 jdbc_default_timezone =>"Asia/Shanghai"
                 schedule => "* * * * *"
                 statement => "SELECT * FROM user_sys_user where latest_time > :sql_last_value"
        	# record_last_run => true
                # use_column_value=> false
                 tracking_column => "latest_time"
                 last_run_metadata_path => "./logstash_jdbc_last_run"
                 clean_run => "false"
               } 
        } 
        output{
              elasticsearch {
                 hosts => "172.16.0.94:9200"
                 user => "elastic"
                 password => "changme"
                 index => "sys_user"
                 document_id => "%{user_id}"
              }
              stdout {
                 codec => json_lines
             }
         }