ITPub博客

首页 > IT基础架构 > > Linux环境下Docker ELK搭建以及logstash conf mysql同步配置

Linux环境下Docker ELK搭建以及logstash conf mysql同步配置

作者:格伯纳 时间:2020-05-22 14:57:31 0 删除 编辑

如题,要解决题目中的问题,之前在博客中我写了如何在windows环境下配置ELK,以及同步mysql数据库的问题,但在生产环境中一般都是linux, 所以又要折腾一番了... 步骤如下:

deviantony/docker-elk​github.com图标
  • 首先我找到了这个star数最多的docker-elk配置,然后clone一下这个仓库,上传到linux服务器上,我是用winscp直接拖过去的,最后按照步骤启动,docker-compose up,这个文档里已经写的很清楚了,我就不再赘述了(当然要实现安装docker和docker compose)
  • 然后要下载mysql-connector-java-5.1.45-bin.jar, 下载其它版本的也可以,将它复制到linux服务器的docker-elk/logstash/文件夹下面,然后开始修改logstash的Dockerfile文件,
# https://github.com/elastic/logstash-docker
FROM docker.elastic.co/logstash/logstash-oss:6.2.4

# Add your logstash plugins setup here
# Example: RUN logstash-plugin install logstash-filter-json
RUN logstash-plugin install logstash-input-jdbc
RUN logstash-plugin install logstash-output-elasticsearch
ADD mysql-connector-java-5.1.45-bin.jar /usr/share/logstash/mysql-connector-java-5.1.45-bin.jar

解释一下这几个命令在干什么,首先前面是安装了两个插件,最后是将java jar包复制到了镜像文件系统

docker run :创建一个新的容器并运行一个命令

docker add : ADD指令不仅能够将构建命令所在的主机本地的文件或目录,而且能够将远程URL所对应的文件或目录,作为资源复制到镜像文件系统。

然后用docker-compose build进行下载编译,中间可能会出错,要翻墙,可能翻墙了都会出错,要多试几次,网络原因造成的,我就试了好多次,就是玄学。。。

  • 最后更改docker-elk/logstash/pipeline/下的longstash.conf文件,我是新建了数据库来测试数据是否有同步,我把配置贴出来,但不是真实配置,明白原理就好,大家看一下吧:
input {  
    stdin {  
    }  
    jdbc {  
      jdbc_connection_string => "jdbc:mysql://localhost/test"  
      jdbc_user => "root"  
      jdbc_password => "password"  
      jdbc_driver_library => "/usr/share/logstash/mysql-connector-java-5.1.45-bin.jar"  
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      codec => plain {charset => "UTF-8"}
      record_last_run => true
      jdbc_paging_enabled => "true"  
      jdbc_page_size => "1000"  
      statement => "select * from test"   
      schedule => "* * * * *"  
      type => "jdbc"  
    }  
}  
  
  
filter {  
    json {  
        source => "message"  
        remove_field => ["message"]  
    }  
}  
  
  
output {  
    elasticsearch {  
        hosts => ["localhost:9200"]  
        index => "press"  
        document_id => "%{object_id}"
        document_type => "document"
    }  
    stdout {   
        codec => json_lines  
    }  
}  

最后docker-compose up启动,可以成功看到logstash的日志就成功了。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31509949/viewspace-3127167/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
管理员

注册时间:2018-03-30

  • 博文量
    2383
  • 访问量
    984338