Logstash 将ES数据导入数据库

52 篇文章 16 订阅
6 篇文章 1 订阅

Logstash 将ES数据导入数据库

Logstash 7.2.0

1、logstash-output-jdbc安装

2、问题梳理

3、conf文件

1、logstash-output-jdbc安装

/opt/logstash/bin/logstash-plugin install logstash-output-jdbc

2、问题梳理

a、日期字段格式转换问题

b、es日期与我们要的日期时差问题,日期加减

这两个问题output-jdbc确实不好解决,不过把这两问题放在filter里就比较简单了

日期字段格式转换:

   date {
    match => [ "timestamp" , "YYYY-MM-dd'T'HH:mm:ss.SSS'Z'" ]
	timezone => "Asia/Shanghai"
	target => "timestamp"
  }

es日期与我们要的日期时差问题,es的日期本身差了8个小时,再上一步的转换时,又差了8个小时,所以,我们要的日期是上面的日期再加上16个小时

  ruby {   
   		code => "event.set('timestamp', event.get('timestamp').time.localtime + 16*60*60)"   
 	}

3、conf文件

以es导入MySQL为例

input {
  elasticsearch {
        hosts => "hostname"
        index => "ping-min-2019-11-08"
        size => 5000
		user => "username"
		password => "password"
		schedule => "*/2 * * * *"
      }
}

filter {

	

   date {
    match => [ "timestamp" , "YYYY-MM-dd'T'HH:mm:ss.SSS'Z'" ]
	timezone => "Asia/Shanghai"
	target => "timestamp"
  }
  
  ruby {   
   		code => "event.set('timestamp', event.get('timestamp').time.localtime + 16*60*60)"   
 	}
  
   
}

output {
  jdbc{
     driver_jar_path => "H:/mysql/mysql-connector-java.jar"
    driver_class => "com.mysql.jdbc.Driver"
    connection_string => "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8"
	username => "root"
	password => "123456"
	 statement => [ "insert into PING (id,timestamp,scheme,IP,URL,upCount,downCount,type) values (?,?,?,?,?,?,?,?)","[id]","[timestamp]","[scheme]","[IP]","[URL]","[upCount]","[downCount]","[type]"]
  }
}

现在人工智能非常火爆,很多朋友都想学,但是一般的教程都是为博硕生准备的,太难看懂了。最近发现了一个非常适合小白入门的教程,不仅通俗易懂而且还很风趣幽默。所以忍不住分享一下给大家。点这里可以跳转到教程。

https://www.cbedai.net/u014646662

 

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Logstash从MySQL导入数据到Elasticsearch的步骤: 1. 安装Logstash: ```shell sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch sudo yum install logstash ``` 2. 安装Logstash插件: ```shell cd /usr/share/logstash/bin/ sudo ./logstash-plugin install logstash-input-jdbc sudo ./logstash-plugin install logstash-output-elasticsearch ``` 3. 将MySQL的Java连接器复制到Logstash的目录: ```shell scp mysql-connector-java-8.0.13.tar.gz python@10.211.55.7:~/ tar -zxvf mysql-connector-java-8.0.13.tar.gz ``` 4. 创建Logstash配置文件,例如`mysql_to_elasticsearch.conf`,并将以下内容添加到文件中: ```shell input { jdbc { jdbc_driver_library => "/path/to/mysql-connector-java-8.0.13.jar" jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_connection_string => "jdbc:mysql://localhost:3306/database_name" jdbc_user => "username" jdbc_password => "password" statement => "SELECT * FROM table_name" } } output { elasticsearch { hosts => ["localhost:9200"] index => "index_name" document_type => "document_type" } } ``` 请注意,你需要将`/path/to/mysql-connector-java-8.0.13.jar`替换为实际的MySQL连接器的路径,`localhost:3306`替换为实际的MySQL主机和端口,`database_name`替换为实际的数据库名称,`username`和`password`替换为实际的数据库用户名和密码,`table_name`替换为实际的表名,`index_name`替换为要创建的Elasticsearch索引名称,`document_type`替换为要创建的文档类型。 5. 启动Logstash并指定配置文件: ```shell sudo ./logstash -f mysql_to_elasticsearch.conf ``` Logstash将会从MySQL中查询数据,并将其导入到Elasticsearch中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值