docker中logstash安裝


下載logstash鏡像

 

docker pull logstash

 

創建logstash目錄

 

mkdir /usr/local/logstash

 

logstash目錄下建立Dockerfile文件,內容如下:

 

FROM logstash
CMD ["-f","/usr/local/logstash/mysql.conf"]

 

FROM logstash:意思是鏡像構建在logstash基礎之上

 

CMD [“-f”,”/usr/local/logstash/mysql.conf”]:代表在docker run運行鏡像,容器內部啟動過程中,添加參數 -f /usr/local/logstash/mysql.conf

 

構建新的logstash鏡像

 

docker build -t logstash_new

 

構建后查詢logstash_new鏡像是否構建成功

 

以目錄掛載形式啟動新的logstash鏡像

 

docker run -d --name logstash -v /usr/local/logstash:/usr/lcoal/logstash logstash_new

 

把之前在windowmysql.confmysql驅動文件上傳到宿主機的/usr/local/logstash目錄下面

 

修改mysql.conf內容:

 

input {
  jdbc {
      # mysql jdbc connection string to our backup databse
      jdbc_connection_string => "jdbc:mysql://xxxxxx.134:3306/xxxxx?characterEncoding=UTF8"
      # the user we wish to excute our statement as
      jdbc_user => "root"
      jdbc_password => "123456"
      # the path to our downloaded jdbc driver  
      jdbc_driver_library => "/usr/local/logstash/mysql-connector-java-5.1.46.jar"
      # the name of the driver class for mysql
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      #以下對應着要執行的sql的絕對路徑。
      #statement_filepath => ""
      statement => "select id,title,content from tb_article"
      #定時字段 各字段含義(由左至右)分、時、天、月、年,全部為*默認含義為每分鍾都更新(測試結果,不同的話請留言指出)
      schedule => "* * * * *"
  }
}

output {
  elasticsearch {
      #ESIP地址與端口
      hosts => "xxxxxx:9200" 
      #ES索引名稱(自己定義的)
      index => "tensquare"
      #自增ID編號
      document_id => "%{id}"
      document_type => "article"
  }
  stdout {
      #以JSON格式輸出
      codec => json_lines
  }
}

 

重啟logstash容器

 

docker restart logstash

 

查看logstash容器日志,看是否1分鍾同步一次數據到elasticsearch

 

docker logs -f --tail=30 logstash

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM