利用logstash收集mysql数据库表中的数据,logstash支持jdbc插件,可以用来采集数据库中的数据。
jdbc插件官方手册参考:https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html
logstash具体配置示例:
input{
jdbc{
jdbc_driver_library => "/data/jdbc/mysql-connector-java-5.1.49.jar" # mysql驱动存放路径
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://mysql-ip:3306/database-name" # jdbc连接地址
jdbc_user => "username" # 数据库用户名
jdbc_password => "passwd" # 数据库密码
use_column_value => true
tracking_column => "id" # 每次查询基于哪个字段筛选,这个字段必须是自增的(比如这里是字段名是id)
schedule => "*/5 * * * *" # 采集频率,每5分钟采集一次
statement => "select * from tabname where id > :sql_last_value" # 查询语句(:sql_last_value是固定的语法)
record_last_run => true
# 重点在这里,mysql语句中查询的时候必须包含作为偏移量的字段(这里指id字段),如果不包含的话就不更新偏移量文件,然后就会重复的从之前保留的那个偏移量读取数据
last_run_metadata_path => "/data/jdbc/logstash_offset.txt" # 每次查询执行后,变量字段的值保存的位置,即sql_last_value的值
clean_run => false
}
}
output{
stdout{}
}