Docker搭建并启动Logstash的实现方式

 更新时间:2023年08月23日 10:44:29   作者:çüιẋıασȷıαฅ  
这篇文章主要介绍了Docker搭建并启动Logstash的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

做mysql和elasticsearch的数据同步

  • 使用docker拉取logstash镜像,打包容器启动
  • 进入容器: docker exec -it logstash /bin/bash(logstash在容器中的绝对路径是/usr/share)
  • 修改配置文件
  • 安装同步插件
  • 下载MySQL驱动包
  • 修改通道配置
  • 启动

1.进入logstash文件夹

(此时目录在 usr/share 目录下)

2.进入config文件夹

3.编辑logstash.yml文件

设置ES配置(连接地址等)

要使用logstash,需要下载插件,例如我想要mysql与ES数据做同步,我就必须下载这两个插件:

  • mysql input plugin
  • elasticsearch output plugin

把这两个插件安装成功之后,Logstash的插件都装在这个目录里

usr/share/logstash/vendor/bundle/jruby/2.5.0/gems

4.进入logstash文件夹中的pipeline文件夹

mysql的驱动包也放在了这个目录下。

(因为懒得下载wget,所以我没有通过wget去下载驱动包,是通过宿主机copy到容器中的)

之后进入vi编辑logstash.conf文件

设置input和output参数

input {
  jdbc {
    jdbc_driver_library => "../pipeline/mysql-connector-java-5.1.46.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://localhost:3306/datebasename"
    jdbc_user => "root"
    jdbc_password => "123456"
    schedule => "* * * * *"
    statement => "SELECT * FROM table_name"
    use_column_value => true
    tracking_column_type => "timestamp"
    tracking_column => update_time
    last_run_metadata_path => "syncpoint_c_order"
  }
}
filter {
  json {
    source => "message"
    remove_field => ["message"]
  }
}
output {
  elasticsearch {
    hosts => ["192.168.0.1"]
    user => ""
    password => ""
    index => "index_name"
    document_id => "%{数据库主键}"
  }
  stdout {
    codec => json_lines
  }
}

5.启动logstash 进入logstash容器中

docker exec -it logstash /bash/bin

配置好conf之后:进入bin目录 ./logstash -f pipeline/logstash.conf 启动

启动报错,无法启动logstash

原因是logstash存在缓存区,进入data目录中,通过 ls -alh 查找隐藏文件.lock,rm .lock删除此文件。

重新启动,打印了很多日志:

好好读一读日志之后发现,除了提醒我6.x之后type被废除之外,还有一个最关键的是配置源无法找到。

也就是我的logstash.conf未找到。

原来是因为我进入了bin目录下启动logstash,不通过…/的方式返回上一级目录就无法找到conf文件。

./logstash -f …/pipeline/logstash.conf 继续启动一次

还是有问题,这次又是因为mysql的驱动包没有找到,那一定是mysql的驱动包路径又写错了。那么在conf中找到驱动包配置的路径,配置好了正确的路径之后再启动。

因为配置的是以分钟进行同步,所以他每分钟会执行一遍配置的sql语句

### 后台启动logstash
nohup ./logstash -f ../pipeline/logstash.conf >/dev/null 2>&1 &

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用docker-tc对host容器进行限流的操作方法

    使用docker-tc对host容器进行限流的操作方法

    docker-tc是一个github开源项目,这篇文章主要介绍了使用docker-tc对host容器进行限流,需要的朋友可以参考下
    2024-04-04
  • docker-swarm之使用Docker secret管理敏感数据

    docker-swarm之使用Docker secret管理敏感数据

    就Docker Swarm集群服务而言,secret 是块状数据,例如密码、SSH私钥、SSL证书或其他不应通过网络传输或未加密存储在Dockerfile或应用程序源代码中的数据,我们可以使用Docker secret 集中管理这些数据,所以接下来就带大家了解一下如何使用Docker secret 管理敏感数据
    2023-08-08
  • Docker和虚拟机的区别及说明

    Docker和虚拟机的区别及说明

    Docker与虚拟机(VM)主要差异在于实现方式及效率,Docker通过打包应用及其依赖于容器中,直接与操作系统内核交互,实现跨系统运行,而无需模拟整个操作系统,这使得Docker在体积、启动速度及性能上优于虚拟机,虚拟机通过模拟硬件环境
    2024-11-11
  • docker运行jar包加载外部配置文件方式

    docker运行jar包加载外部配置文件方式

    这篇文章主要介绍了docker运行jar包加载外部配置文件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Docker容器中数据卷volumes的使用

    Docker容器中数据卷volumes的使用

    volume(卷)用来存储docker持久化的数据,其实就是一个主机上的一个目录,由docker统一管理,下面这篇文章主要给大家介绍了关于Docker容器中数据卷volumes使用的相关资料,需要的朋友可以参考下
    2022-04-04
  • 阿里云ECS部署Docker服务的实现步骤

    阿里云ECS部署Docker服务的实现步骤

    本文主要介绍了阿里云ECS部署Docker服务的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • docker官方镜像下载及使用Dockerfile创建镜像的方法

    docker官方镜像下载及使用Dockerfile创建镜像的方法

    这篇文章主要介绍了docker官方镜像下载及使用Dockerfile创建镜像的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02
  • Docker中Dockerfile制作镜像的方法步骤

    Docker中Dockerfile制作镜像的方法步骤

    本文主要介绍了Dockerfile制作镜像的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Docker搭建自己的本地镜像仓库的步骤

    Docker搭建自己的本地镜像仓库的步骤

    今天小编就为大家分享一篇关于Docker搭建自己的本地镜像仓库的步骤,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 对Docker-java项目进行jvm调优-内存方式

    对Docker-java项目进行jvm调优-内存方式

    本文详细介绍了如何进入Docker容器并分析Java进程的内存使用情况,通过使用jps和jstat工具,可以查看java进程列表及内存池容量,讨论了设置JVM参数-Xmx和-Xms相等的重要性,以避免堆内存的频繁调整,此外,还探讨了FullGC触发条件和元空间的配置
    2024-09-09

最新评论