ElasticSearch中 logstash安装和logstash-input-jdbc插件

参考老铁的一篇文章:https://blog.csdn.net/q15150676766/article/details/75949679,他这个是logstash 5.5.0版本的,我使用的版本是5.6.3,注意这个版本需要和elasticsearch的版本一致。

下载安装

wget https://artifacts.elastic.co/downloads/logstash/logstash-5.6.3.zip
 
 
  • 1

下载完之后

unzip logstash-5.6.3.zip
 
 
  • 1

之后将文件移动到自己存放的目录即可。

启动服务测试一下是否安装成功:

cd bin
./logstash -e 'input { stdin { } } output { stdout {} }'
 
 
  • 1
  • 2

如果出现下面的东西就表示成功:
这里写图片描述
输入随便什么内容:

HelloWorld
 
 
  • 1

就会变成下面这样:
这里写图片描述
基本上这样就算是安装成功了
安装logstash是一件比较蛋疼的事,因为这东西适用ruby开发的,我对ruby这东西是一点也不懂,所以比较不好弄。
如果没有gem命令的话,需要先安装一下子(root用户才可以)

yum install gem
 
 
  • 1

替换ruby镜像库为国内的库,因为国外的库,国内是访问不到的,然后国内有两个库,两个库都是可以用的:
替换成ruby-china的库

gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
#这里https://gems.ruby-china.com/ 是国内镜像地址
#原本是https://gems.ruby-china.org/,现在域名从org变成了com,一定要注意!!
$ gem sources -l
*** CURRENT SOURCES ***

https://gems.ruby-china.com
# 请确保只有 gems.ruby-china.com,就说明成功了
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

替换完之后,进入logstash-5.6.3,修改Gemfile文件里面的数据源:

vi Gemfile
 
 
  • 1

修改成这个样子:

source "https://gems.ruby-china.com"
 
 
  • 1

好了,这样ruby的安装环境就算是配好了。

进入到logstash的bin下

cd bin
./logstash-plugin install logstash-input-jdbc
 
 
  • 1
  • 2

这个过程会很久,如果成功如下图所示,如果不成功把上面命令多试几次。
这里写图片描述
在本机的logstash-5.6.3目录下 导入mysql数据库连接包,mysql-connector-java-5.1.41.jar,随便什么版本应该都是可以的,可以使用wget下下来,也可以从本地下下来之后rz上传到服务器,这里就省略了。

然后在logstash-5.6.3/bin下新建一个目录config-mysql创建mysql.conf文件:

mkdir config-mysql
cd config-mysql
vim mysql.conf 
 
 
  • 1
  • 2
  • 3

在文件中输入下面的内容:

input {
    stdin {
    }
    jdbc {
      # 数据库
      jdbc_connection_string => "jdbc:mysql://localhost:3306/test01"
      # 用户名密码(你的数据库的用户名和密码)
      jdbc_user => "root"
      jdbc_password => "password"
      # jar包的位置
      jdbc_driver_library => "/usr/local/logstash-5.6.3/mysql-connector-java-5.1.41.jar"
      # mysql的Driver
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      #statement_filepath => "config-mysql/test02.sql"
      statement => "select * from test02"
      schedule => "* * * * *"
      #索引的类型
      type => "test02"
    }
}

filter {
    json {
        source => "message"
        remove_field => ["message"]
    }
}

output {
    elasticsearch {
        hosts => "127.0.0.1:9200"
        # index名
        index => "test01"
        # 需要关联的数据库中有有一个id字段,对应索引的id号
        document_id => "%{id}"
    }
    stdout {
        codec => json_lines
    }
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

注意关联的数据库表中需要有id字段用来映射形成的索引的id号。

终于把工作都做完了。

进入bin目录下输入下面的命令:

./logstash -f config-mysql/mysql.conf
 
 
  • 1

可能会出现以下错误:
这里写图片描述
这个是因为,mysql.conf 编码格式问题,进入config-mysql文件夹下,使用下面命令解决:

file --mime-encoding mysql.conf                       #输入这条命令会查看编码格式
mysql.conf: iso-8859-1                                #我的是iso-8859-1

iconv -f iso-8859-1 -t utf-8 mysql.conf    utf-8      #将mysql.conf的编码格式改为utf-8

 
 
  • 1
  • 2
  • 3
  • 4
  • 5

更改成功后,进入bin/目录下,输入下面的命令

./logstash -f config-mysql/mysql.conf
 
 
  • 1

不报错的话就是安装成功了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值