`

使用logstash同步mysql数据到ES

    博客分类:
  • ELK
阅读更多

 使用logstash同步mysql数据到ES

Windows环境:

  1、下载logstash

  地址: https://www.elastic.co/cn/downloads/logstash

  2、下载: mysql-connector-java.jar

 

  在logstash目录下创建一个mysql目录,把驱动文件放进去。

     3、修改配置文件

  在安装目录下,创建新的配置文件,命名为:logstash.conf

input {
	jdbc {
		jdbc_connection_string => "jdbc:mysql://localhost:3306/news?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC"
		jdbc_user => "root"
		jdbc_password => "root"
		jdbc_driver_library => "F:\elasticsearch-6.4.2_cluster\logstash-6.4.2\bin\mysql\mysql-connector-java-5.1.18.jar"
		jdbc_driver_class => "com.mysql.jdbc.Driver"
		jdbc_paging_enabled => "true"
		jdbc_page_size => "50000"
		statement => "SELECT * FROM news_article WHERE update_time >= :sql_last_value"	
		schedule => "*/5 * * * * *"
		use_column_value => true
		tracking_column_type => "timestamp"
		tracking_column => "update_time"
		type => "news_article"
		}
		jdbc {
		jdbc_connection_string => "jdbc:mysql://localhost:3306/news?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC"
		jdbc_user => "root"
		jdbc_password => "root"
		jdbc_driver_library => "F:\elasticsearch-6.4.2_cluster\logstash-6.4.2\bin\mysql\mysql-connector-java-5.1.18.jar"
		jdbc_driver_class => "com.mysql.jdbc.Driver"
		jdbc_paging_enabled => "true"
		jdbc_page_size => "50000"
		statement => "SELECT * FROM users WHERE update_time >= :sql_last_value"	
		schedule => "*/5 * * * * *"
		use_column_value => true
		tracking_column_type => "timestamp"
		tracking_column => "update_time"
		type => "users"
		}
		}
output {
	if [type]=="news_article" {
		elasticsearch {
		hosts => ["http://localhost:9200"]
		index => "news_article_inx"
		document_id => "%{id}"
		}
		}
		if [type]=="users" {
		elasticsearch {
		hosts => ["http://localhost:9200"]
		index => "users_inx"
		document_id => "%{id}"
		}
		}
		}

在命令行执行

logstash -f  ../config/logstash.conf

 

执行成功后,就会有表USERS和news_article数据进去es中

 

"LogStash::ConfigurationError", :message=>"Expected one of #, input, filter, output at line 1错误解决方案

 

网上查了很多解决办法,结果还是没用,提示应该是配置文件中的内容有错误,但是我重新检查了几遍也没发现有错误,也没有括号缺少这些情况,然后就试着把配置文件的格式修改保存为utf-8的格式,结果可用了,终于从坑里跳出来

Notepad++软件右保存为utf-8  BOM编码

 

原因有两种:

1、配置文件格式不是utf-8;

2、缩进不规范

这些必须是严格意义上的tab

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics