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