下载安装
wget https://artifacts.elastic.co/downloads/logstash/logstash-5.6.3.zip
下载完之后
unzip logstash-5.6.3.zip
之后将文件移动到自己存放的目录即可。
启动服务测试一下是否安装成功:
cd bin
./logstash -e 'input { stdin { } } output { stdout {} }'
如果出现下面的东西就表示成功:
输入随便什么内容:
HelloWorld
就会变成下面这样:
基本上这样就算是安装成功了
安装logstash是一件比较蛋疼的事,因为这东西适用ruby开发的,我对ruby这东西是一点也不懂,所以比较不好弄。
如果没有gem命令的话,需要先安装一下子(root用户才可以)
yum install gem
替换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,就说明成功了
替换完之后,进入logstash-5.6.3,修改Gemfile文件里面的数据源:
vi Gemfile
修改成这个样子:
source "https://gems.ruby-china.com"
好了,这样ruby的安装环境就算是配好了。
进入到logstash的bin下
cd bin
./logstash-plugin install logstash-input-jdbc
这个过程会很久,如果成功如下图所示,如果不成功把上面命令多试几次。
在本机的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
在文件中输入下面的内容:
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
}
}
注意关联的数据库表中需要有id字段用来映射形成的索引的id号。
终于把工作都做完了。
进入bin目录下输入下面的命令:
./logstash -f config-mysql/mysql.conf
可能会出现以下错误:
这个是因为,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
更改成功后,进入bin/目录下,输入下面的命令
./logstash -f config-mysql/mysql.conf
不报错的话就是安装成功了。