Logstash连接MySQL
下载MySQL驱动
打开驱动jar包下载地址:https://dev.mysql.com/downloads/connector/j/
选择平台无关的版本
下载zip版本,在本地打开,解压出jar文件
因为logstash在ubuntu下的默认配置文件路径是 /etc/logstash,所以我在/etc/logstash目录下新建了一个drivers文件夹,用来放置各种驱动。
# 切换目录
cd /etc/logstash
# 创建文件夹
mkdir drivers
然后将解压好的驱动放到drivers文件夹中。
配置Logstash
在logstash存放配置文件的文件夹中,新建一个连接MySQL的配置文件。
# 切换目录
cd /etc/logstash/conf.d
# 创建文件
touch logstash-mysql.conf
logstash-mysql.conf文件内容如下(注意,这里的jar包用的是8.0.20):
input {
stdin {
}
jdbc {
# 数据库连接
jdbc_connection_string => "jdbc:mysql://你的数据库IP:3306/你的数据库"
# 用户名密码
jdbc_user => "用户名"
jdbc_password => "密码"
# 驱动jar包的位置
jdbc_driver_library => "/etc/logstash/drivers/mysql-connector-java-8.0.20.jar"
# mysql的Driver
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
statement => "select * from 表名"
schedule => "* * * * *"
# elastic search的索引名,相当于mysql的表名
#type => "information_summary"
}
}
filter {
json {
source => "message"
remove_field => ["message"]
}
}
output {
elasticsearch {
hosts => "localhost:9200"
# index名
index => "index名"
# 需要关联的数据库中有有一个id字段,对应索引的id号
document_id => "%{id}"
}
stdout {
codec => json_lines
}
}
启动Logstash
切换到ubuntu下logstash执行文件目录:
cd /usr/share/logstash/bin/
运行命令,使新的配置文件生效:
./logstash -f /etc/logstash/conf.d/logstash-mysql.conf
如果你的机器上已经启动过logstash实例的话,可能会报如下错误:
Logstash could not be started because there is already another instance using the configured data directory.
If you wish to run multiple instances, you must change the "path.data" setting
这时候需要把命令改为:
./logstash -f /etc/logstash/conf.d/logstash-mysql.conf --path.data=/usr/logstash_data/你的index名
这样就会把通过这个配置拿到的数据落在新的文件夹中,也不会报错了。
ELK - Logstash连接MySQL
原文地址:https://www.cnblogs.com/helios-fz/p/13307416.html