ELK - Logstash连接MySQL

Posted Helios_Fz的学习笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ELK - Logstash连接MySQL相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

ELK+MySQL出现大量重复记录问题处理

记录ELK之logstash同步mysql数据到Elasticsearch ,配置文件详解

ELK采集MySQL慢日志实现

ELK采集MySQL慢日志实现

Docker ELK实践之Logstash

ELK 上手2 在CentOS下安装logstash和Kibana