ElasticSearch5+logstash-input-jdbc实现mysql数据同步及躺坑汇总

转载来源 http://www.cnblogs.com/phpshen/p/6098333.html

ElasticSearch安装就不说了上一篇有说!

安装logstash

官方:https://www.elastic.co/guide/en/logstash/current/installing-logstash.html

1.下载公共密钥

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

2.添加yum

vim  /etc/yum.repos.d/logstash.repo

文件中写入

[logstash-5.x]

name=Elastic repository for 5.x packages

baseurl=https://artifacts.elastic.co/packages/5.x/yum

gpgcheck=1

gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

enabled=1

autorefresh=1

type=rpm-md

保存退出

3.使用yum安装

yum install logstash

4.验证是否安装成功

进入 logstash 安装目录

cd /usr/share/logstash

运行

bin/logstash -e 'input { stdin { } } output { stdout {} }'

等待几秒钟 出现  

The stdin plugin is now waiting for input:

然后输入 

hello world

得到类似的结果

2016-11-24T08:01:55.949Z bogon hello world

安装logstash-input-jdbc插件

1.修改ruby仓库镜像

如果没有安装 gem 的话 安装gem 

yum install gem

替换国内的镜像

gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/

验证是否成功

gem sources -l

https://i-blog.csdnimg.cn/blog_migrate/8d2e0f9e26ea847b0976686897fa4526.png

修改Gemfile的数据源地址

whereis logstash # 查看logstash安装的位置, 我的在 /usr/share/logstash目录

cd /usr/share/logstash

vim Gemfile

修改 source 的值 为: "https://gems.ruby-china.org/"

vim  Gemfile.jruby-1.9.lock # 找到 remote 修改它的值为:

https://gems.ruby-china.org/

或者直接替换源这样你不用改你的 Gemfile source

gem install bundler

 

 

$ bundle config mirror.https://rubygems.org https://gems.ruby-china.org/

然后开始安装

bin/logstash-plugin  install logstash-input-jdbc

如果镜像地址没有改错的话应该可以直接安装

或者  进入源码地址的release页面logstash-input-jdbc

2.开始同步 mysql 数据

需要建立 两个文件  一个  .conf后缀的 一个 .sql 后缀

 一个 mysql Java 驱动包   mysql-connector-java-5.1.40-bin.jar

filename.conf 内容:

里面的参数可以参考 logstash-input-jdbc官方参考文档

input {

    stdin {

    }

    jdbc {

    # 数据库地址  端口  数据库名

      jdbc_connection_string => "jdbc:mysql://localhost:3306/shen"

    # 数据库用户名     

    jdbc_user => "root"

    # 数据库密码

      jdbc_password => "rootroot"

    # mysql java驱动地址

      jdbc_driver_library => "/usr/share/logstash/mysql-connector-java-5.1.40-bin.jar"

      jdbc_driver_class => "com.mysql.jdbc.Driver"

      jdbc_paging_enabled => "true"

      jdbc_page_size => "50000"

      # sql 语句文件

      statement_filepath => "filename.sql"

      schedule => "* * * * *"

      type => "jdbc"

    }

}

output {

 stdout {

        codec => json_lines

    }

   elasticsearch {

        hosts  => "localhost:9200"

        index => "contacts"

     document_type => "contact"

        document_id => "%{id}"

    }

}

filename.sql

select * from a

注意: 在你的数据库里 要有一个数据库名字和filename.conf 里的对应就可以了   表明 filename.sql 里的对应就可以了   在表中  有一个id字段是为了和filename.conf  document_id => "%{id}" 这个参数对应 可以执行修改

然后开始执行

bin/logstash -f fielname.conf

如果出现错误 或者没有结果 可以进入 logs 目录中查看日志

https://i-blog.csdnimg.cn/blog_migrate/d5d6e34b1b1632ca46fc631dd029d36d.png

出现类似这样的内容  就可以了

可以通过地址 http://192.168.199.115:9200/contacts/contact/1?pretty=true

查看

https://i-blog.csdnimg.cn/blog_migrate/dacd1f9cb2c7b3e6db27cdbc84b5b3f6.png

url 参数说明  contacts 是对应 filename.conf  index => "contacts"  contact 对应document_type => "contact"   1表示id1 的数据

 

 

logstash-input-jdbc插件安装

 

安装

参考:https://www.cnblogs.com/phpshen/p/6098333.html

 

躺坑汇总

yum报错之DNS问题

解决参照:https://www.landui.com/help/show-2739.html

命令

vi /etc/resolv.conf

添加:

nameserver 8.8.8.8

安装  logstash-input-jdbc报错

 

 

javac环境变量

 

Filename.conf报错

 

静态ip设置

vi /etc/sysconfig/network-scripts/ifcfg-ensxxxxxxx

注意xxxxx每个pc这里不一样建议输入vi /etc/sysconfig/network-scripts/ifcfg-ens

然后tab联想出来

编辑ip设置如下

重启网络

service network restart

elk权限失效导致报错

解决参考

https://blog.csdn.net/u010180815/article/details/79103053

解决核心从新用root给elk赋权

 

图形界面和命令行界面设置

https://blog.csdn.net/qq_23014435/article/details/74347925

 

安装和卸载图形界面

https://www.kafan.cn/edu/86029881.html

 

https://www.cnblogs.com/qichunlin/p/8898170.html

 

虽然说text模式下系统占用资源小,但是有时候确实在图形界面下操作更方便,所以,学会在centos下安装图形界面是必须会的。图形界面有两个,可以任选其中一个,看你的更新源当中有哪个就安装哪个吧。

centos 安装 X window

代码如下:

#yum groupinstall 'X Window System' -y

centos 安装 GNOME桌面环境

代码如下:

#yum groupinstall 'GNOME Desktop Environment' -y

centos下安装KDE桌面环境

代码如下:

#yum groupinstall 'KDE (K Desktop Environment)' -y

我自己再centos下安装,用的是网易163的源,坑爹的没有gnomeKDE,最后只好用X window了,69M191包,真心蛮大的。我这里够坑爹,本来指望yum安装能省点心,但是事与愿违,提示少了个文件,只要自己去找对应的rpm包,安装上

代码如下:

#rpm -i 对应的rpm

RT,装完提示成功了,startx不能启动,报错,额,算了,这个明天去看下log,慢慢整吧

有安装就有卸载,我们用的yum安装的,自然也是用yum去卸载了,要不有的删。

卸载Xwindows

代码如下:

#yum groupremove 'X Window System' -y

卸载GNOME桌面环境

代码如下:

#yum groupremove "GNOME Desktop Environment"

卸载KDE桌面环境

代码如下:

#yum groupremove "KDE (K Desktop Environment)"

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值