Logstash同步Oracle數據到ElasticSearch

最近在項目上應用到了ElasticSearch和Logstash,在此主要記錄了Logstash-input-jdbc同步Oracle數據庫到ElasticSearch的主要步驟,本文是對環境進行簡單的配置,如需在實際環境中運行還須要進一步調整。sql

  • 首先要配置服務器環境
    • 安裝Java
    • 安裝ElasticSearch(我用的版本是2.4.0)
    • 安裝head插件(用於在瀏覽器查看狀態和數據,非必須)
    • 安裝Logstash
    • 安裝logstash-input-jdbc:在ElasticSearch安裝目錄下運行命令:bin/plugin install logstash-input-jdbc,成功會有提示。
    • 安裝 elasticsearch-jdbc-2.3.4.1:運行命令:wget http://xbib.org/repository/org/xbib/elasticsearch/importer/elasticsearch-jdbc/2.3.4.1/elasticsearch-jdbc-2.3.4.1-dist.zip
  • 配置同步數據
    • 將oracle安裝目錄下的ojdbc6.jar拷貝到elasticsearch-jdbc-2.3.4.1的lib目錄下(此包是同步oracle數據庫的驅動程序)
    • 配置同步文件:在logstash/bin目錄下新建jdbc_oracle.conf文件,配置內容以下:
      • input{
      stdin{
       
      }
      jdbc{
      jdbc_connection_string => "jdbc:oracle:thin:@//192.168.1.16:1521/db"
      jdbc_user => "systemadmin"
      jdbc_password => "systemadmin"
      jdbc_driver_library => "/home/oracle/elasticsearch-jdbc-2.3.4.1/lib/ojdbc6.jar"
      jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
      record_last_run => "true"
      use_column_value => "false"
      tracking_column => "id"
      last_run_metadata_path => "/home/oracle/es/info"
      clean_run => "false"
       
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      statement_filepath =>"/home/oracle/es/jdbc_oracle.sql"
      schedule => "* * * * *"
      type => "tstype"
      }
      }
       
      output{
      elasticsearch{
      hosts => "localhost:9200"
      index => "tsuser"
      document_id => "%{id}"
      }
      }
    • 建立sql腳本對應配置腳本中的statement_filepath:jdbc_oracle.sql,腳本中寫sql語句便可,本例中寫的是:select * from users
    • 在logstash/bin下啓動程序: ./logstash -f jdbc_oracle.conf
    • 使用head查看數據已經同步成功。
相關文章
相關標籤/搜索