概述
- 下载es 安装 省略… 我这里安装的是7.5.0
一 安装logstash
下载安装(后面可以改成不同的版本)
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.5.0.zip
下载完之后 解压
unzip logstash-7.5.0.zip
进入 bin 目录下面执行
./logstash -e ""
等会出现seccessfullt 输入hello
看到这个就成功了
二、安装logstash-input-jdbc插件
-
如果没有安装 gem 的话 安装gem
sudo yum install gem
-
替换源 原来淘宝的gem源已经停止维护,现在由ruby-china提供镜像服务
gem source -a https://gems.ruby-china.com
安装完以后,输入以下命令查看是否替换成功
gem sources -l
如果看到的不止一个源 那你需要删掉一个
sudo vim ~/.gemrc
手动删除 https://rubygems.org/
如果结果是这样 那就可以了*** CURRENT SOURCES *** https://gems.ruby-china.com
-
修改Gemfile的数据源地址。步骤:
whereis logstash # 查看logstash安装的位置, sudo vi Gemfile # 修改 source 的值 为: "https://gems.ruby-china.com" sudo vi Gemfile.jruby-1.9.lock # 找到 remote 修改它的值为: https://gems.ruby-china.com ps:如果版本高的话 可能不是Gemfile.jruby-1.9.lock 而是 直接Gemfile.lock 都一样直接编辑就行
-
安装logstash-input-jdbc (这里提供一种方法的安装)
直接根据plugin安装 在bin 下面
plugin install logstash-input-jdbc
这里后面可以改对应的版本
cd logstash-7.5.0 wget https://github.com/logstash-plugins/logstash-input-jdbc/archive/v1.0.0.zip unzip v1.0.0.zip cd logstash-input-jdbc-1.0.0/
需要更新里面的文件内容
vim logstash-input-jdbc.gemspec
改为
s.files = `git ls-files`.split($) 改为: s.files = [".gitignore", "CHANGELOG.md", "Gemfile", "LICENSE", "NOTICE.TXT", "README.md", "Rakefile", "lib/logstash/inputs/jdbc.rb", "lib/logstash/plugin_mixins/jdbc.rb", "logstash-input-jdbc.gemspec", "spec/inputs/jdbc_spec.rb"]
bulid一下
gem build logstash-input-jdbc.gemspec
这里运行这个文件 看了几个版本的 命令是
这是低版本的 有plugin
sudo bin/plugin install logstash-input-jdbc
高版本的移除这个命令可以用别的 看bin 目录下面有哪个bat 试试
sudo bin/plugin install logstash-input-jdbc.gemspec
如果提示
这里不要用root 用户 用普通的用户 将权限给 这个用户就行了
三、同步es 数据库
-
下载mysql-connector-java 驱动
``` wget wget https://dev.mysql.com/get/archives/mysql-connector-java-5.1/mysql-connector-java-5.1.46.tar.gz tar -zxvf mysql-connector-java-5.1.46.tar.gz ```
- 新建配置目录:sync-config
编辑 文件 /usr/local/logstash/sync-config/cicadaes.conf
input { stdin {} jdbc { jdbc_connection_string => "jdbc:mysql://***********?characterEncoding=utf8" jdbc_user => "****" jdbc_password => "*******!" jdbc_driver_library => "/JM/logstash-7.5.0/sqlJar/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46.jar" jdbc_driver_class => "com.mysql.jc.jdbc.Driver" jdbc_paging_enabled => "true" jdbc_page_size => "50000" jdbc_default_timezone => "Asia/Shanghai" statement_filepath => "/JM/logstash-7.5.0/sync-config/location_sql.sql" schedule => "* * * * *" type => "location" lowercase_column_names => false record_last_run => true use_column_value => true tracking_column => "updateTime" tracking_column_type => "timestamp" last_run_metadata_path => "/JM/logstash-7.5.0/sync-config/user_last_time" clean_run => false } } filter { json { source => "message" remove_field => ["message"] } } output { if [type] == "location" { elasticsearch { hosts => ["127.0.0.1:9200"] index => "fengyu" document_type => "location" } } }
- 新建配置目录:sync-config
-
SQL文件
select id,order_number orderNumber, car_number carNumber, lng, lat, address, speed, direction, province, city, country, location_time locationTime, driver_code driverCode, driver_name driverName, driver_phone driverPhone from jm_order_location WHERE update_time > : sql_last_value;
-
配置参数说明
input 说明statement_filepath:读取SQL语句位置 schedule :这里配置每分钟执行一次 type :类型,写入ES的标识 lowercase_column_names :字段是否转小写 record_last_run :记录上次执行时间 use_column_value :使用列的值 tracking_column :根据写入ES的updateTime字段区分增量数据 tracking_column_type :区分的字段类型
output 说明
hosts :ES服务地址 index :Index名称,类比理解数据库名称 document_type :Type名称,类比理解表名称
-
启动
/usr/local/logstash/bin/logstash -f /usr/local/logstash/sync-config/cicadaes.conf
四 问题说明
- 解析不到jar包
LogStash::PluginLoadingError com.mysql.cj.jdbc.Driver not loaded. Are you sure you've included the correct jdbc driver in :jdbc_driver_library?
这是问题可能是 需要将 jar 包 放在 logstash-core/lib/jars/下面
- 连接不上数据库
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
-
最后
以上就是开朗糖豆为你收集整理的安装 logstash 和 logstash-input-jdbc 实现数据同步到 es(高版本)的全部内容,希望文章能够帮你解决安装 logstash 和 logstash-input-jdbc 实现数据同步到 es(高版本)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复