最新Windows/Linux下安装logstash,同步mysql数据至mongdb

按照我这个步骤,同步不起你捶我    

                     

                                         Windows安装

1:官网直接下载ZIP:

Download Logstash Free | Get Started Now | Elastic

 下载后直接解压

2:下载mysql的驱动 mysql-connector-java.jar

官网下载:MySQL :: Download Connector/J

 

 3:下载logstash-output-mongodb3.1.5插件

官网最新版本是3.1.6,不管怎么弄都连不上mongdb,百度谷歌了很久都是让降版本到3.1.5 ,后续再看怎么弄3.1.6的吧

 https://github.com/logstash-plugins/logstash-output-mongodb

打开后一定要切换版本至3.1.5,然后下载zip包

 解压到logstash目录下

 修改logstash里的 Gemfile文件

最后一行加上gem "logstash-output-mongodb", :path => "logstash-output-mongodb-master" 

用管理员打开CMD

 切换到logstash 的bin目录 运行:logstash-plugin install --no-verify

 下载完成后查看安装版本:logstash-plugin list --verbose

 两个需要插件就安装完成了。

                                            配置

1:logstash的bin目录下新建文件夹logstash_jdbc_mongo

文件夹下新建jdbc_mongo.conf文件和jdbc_mongo.sql文件

最开始下载的mysql-connector-java.jar 放入logstash_jdbc_mongo文件夹

jdbc_mongo.conf文件

input {
  stdin {
  }
  jdbc {
  # 源Mysql数据库地址
  jdbc_connection_string => "jdbc:mysql://192.XX.XX.XX:5696/cms?zeroDateTimeBehavior=convertToNull"
  #源Mysql的用户名和密码
  jdbc_user => "XXXX"
  jdbc_password => "XXX"
 
   #true代表记录最后存储的关联列值
  record_last_run => "true"
  use_column_value => "true"
  tracking_column => "id"
  #只支持这两种  ["numeric"(数字), "timestamp"(日期)]
  tracking_column_type => "numeric"
   #存储位置(这个地方不要写文件夹路径,会跑出Permission denied错误信息)
  last_run_metadata_path => "/logstash-7.15.2-windows-x86_64/logstash-7.15.2/bin/logstash_jdbc_mongo/mongo_info/mongo_info.txt"
  clean_run => "false"
 
   #jdbc路径地址
  jdbc_driver_library => "D:\logstash-7.15.2-windows-x86_64\logstash-7.15.2\bin\logstash_jdbc_mongo\mysql-connector-java.jar"
  # the name of the driver class for mysql
  jdbc_driver_class => "com.mysql.jdbc.Driver"
  jdbc_paging_enabled => "true"
  jdbc_page_size => "500"
 #以下对应着要执行的sql的绝对路径。
  statement_filepath => "logstash_jdbc_mongo/jdbc_mongo.sql"
 #定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
schedule => "* * * * *"
  }
}
 
 
#输出mongodb的配置
output {
  stdout { codec => rubydebug }
  mongodb {
#对应mongodb的输出集合
  collection => "a"
#对应mongodb的输出数据库名称,有密码用这个: "mongodb://用户名:密码@地址:27017/要认证的数据库"
  database => "tyott"
  uri => "mongodb://xx.xx.31.192:8292"
  }
}

直接复制后,需要把中文注释全删除了,不然有字符编码问题,还需要另存为UTF-8编码

如下:

input {
  stdin {
  }
  jdbc {
  jdbc_connection_string => "jdbc:mysql://XX.XX.31.191:XX/cms?zeroDateTimeBehavior=convertToNull"
  jdbc_user => "XX"
  jdbc_password => "XX"
  record_last_run => "true"
  use_column_value => "true"
  tracking_column => "id"
  tracking_column_type => "numeric"
  last_run_metadata_path => "/logsta/logstash-7.15.2/bin/logstash_jdbc_mongo/mongo_info/mongo_info.txt"
  clean_run => "false"
  jdbc_driver_library => "D:/logsta/logstash-7.15.2/bin/logstash_jdbc_mongo/mysql-connector-java-8.0.27.jar"
  jdbc_driver_class => "com.mysql.jdbc.Driver"
  jdbc_paging_enabled => "true"
  jdbc_page_size => "500"
  statement_filepath => "logstash_jdbc_mongo/jdbc_mongo.sql"
  schedule => "* * * * *"
  }
}
output {
  stdout { codec => rubydebug }
  mongodb {
  collection => "abc"
  database => "tyott"
  uri => "mongodb://XX.168.XX.XX:8292"
  }
}

jdbc_mongo.sql

select
*
from content_test
where content_test.id>1

                                             启动

1:测试启动:logstash 的bin目录下创建:logstash.conf 文件

 内容:

input {
    stdin{
    }

 
output {
    stdout{
    }
}

切换到logstash 的bin目录 运行:logstash -f logstash.conf

http://localhost:9600/

这样就是启动成功了 ,只是目前没有执行任何东西。

                                   同步数据至mongdb

 再次cmd切换到logstash的bin目录运行:

logstash -f logstash_jdbc_mongo/jdbc_mongo.conf  

执行后需要等一分钟,因为上面配置的是每分钟同步数据

能看见已经同步数据了,并且mongdb里面已经写入数据了

简单的同步就完成了

                                                   Linux安装

linux安装步骤整体和windows是一样的

 只是在查看和安装命令前面加上 ./ 如:

windows:logstash-plugin install --no-verify

Linux:./logstash-plugin install --no-verify

如果服务器不能访问外网,可以直接把windows的整个logstash目录复制过去。只需要修改jdbc_mongo.conf里面的配置和服务器的一样。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值