elasticsearch-logstash
1、logstash介绍
logstash 是ES 下的一款开源软件、用于数据采集,就是从Mysql等数据源采集数据、更新数据、然后将数据发送到ES中创建、更新索引
2、安装
演示环境是windows
(1)下载logstash, 注意版本要和ES一致
地址:https://www.elastic.co/downloads/past-releases/logstash-6-2-1
下载zip包后解压
(2)安装ruby
由于logstash-input-jdbc是ruby开发的,所以先下载ruby并安装
地址:https://rubyinstaller.org/downloads/ 下载2.5版本即可,安装完成通过ruby -v 查看是否安装成功,注意添加环境变量、使用管理员打开cmd
(3)安装logstash-input-jdbc
logstash5.x是自带logstash-input-jdbc的,6.x版本不带了,需要手动安装
在logstash-6.2.1\bin 目录下执行: .\logstash-plugin.bat install logstash-input-jdbc
安装完成可以在logstash根目录查看对应版本
3、创建模版文件
logstash从Mysql采取数据、向ES中索引,因此需要准备ES索引库的mapping模版。这里模版的filed对应数据库业务模型,通常如果相关业务字段分布在不同表,我们会将其整合到一张表,方便logstash做数据采集。
在logstash的config目录course_template.json
{
"mappings" : {
"doc" : {
"properties" : {
"charge" : {
"type" : "keyword"
},
"description" : {
"analyzer" : "ik_max_word",
"search_analyzer" : "ik_smart",
"type" : "text"
},
"end_time" : {
"format" : "yyyy-MM-dd HH:mm:ss",
"type" : "date"
},
"expires" : {
"format" : "yyyy-MM-dd HH:mm:ss",
"type" : "date"
},
"grade" : {
"type" : "keyword"
},
"id" : {
"type" : "keyword"
},
"mt" : {
"type" : "keyword"
},
"name" : {
"analyzer" : "ik_max_word",
"search_analyzer" : "ik_smart",
"type" : "text"
},
"pic" : {
"index" : false,
"type" : "keyword"
},
"price" : {
"type" : "float"
},
"price_old" : {
"type" : "float"
},
"pub_time" : {
"format" : "yyyy-MM-dd HH:mm:ss",
"type" : "date"
},
"qq" : {
"index" : false,
"type" : "keyword"
},
"st" : {
"type" : "keyword"
},
"start_time" : {
"format" : "yyyy-MM-dd HH:mm:ss",
"type" : "date"
},
"status" : {
"type" : "keyword"
},
"studymodel" : {
"type" : "keyword"
},
"teachmode" : {
"type" : "keyword"
},
"teachplan" : {
"analyzer" : "ik_max_word",
"search_analyzer" : "ik_smart",
"type" : "text"
},
"users" : {
"index" : false,
"type" : "text"
},
"valid" : {
"type" : "keyword"
}
}
}
},
"template": "course"
}
4、配置mysql.conf
logstash会根据mysql.conf文件的配置连接数据库和ES服务器,配置详细解释,见注释
logstash/config/mysql.conf
input {
stdin {
}
jdbc {
#数据源配置
jdbc_connection_string => "jdbc:mysql://localhost:3306/course?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC"
jdbc_user => "root"
jdbc_password => mysql
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
#指定jdbc驱动包位置
jdbc_driver_library => "F:/develop/maven/repository3/mysql/mysql-connector-java/5.1.41/mysql-connector-java-5.1.41.jar"
#可以通过指定sql文件的方式工作,但是这里选用statement方式直接指定sql语句
#statement_filepath => "/conf/course.sql"
#由于ES采用UTS时区、比北京时间早8小时、所以读取最后更新时间加8小时
statement => "select * from course_pub where timestamp > date_add(:sql_last_value,INTERVAL 8 HOUR)"
#定时配置,默认一分钟执行一次
schedule => "* * * * *"
record_last_run => "true"
#配置最后更新时间保存位置,默认保存在config/logstash_metadata文件中,注意修改目录
last_run_metadata_path => "D:/ElasticSearch3940/logstash-6.2.1/config/logstash_metadata"
}
}
output {
elasticsearch {
#ES的ip地址和端口
hosts => "localhost:9200"
#hosts => ["localhost:9200","localhost:9202","localhost:9203"]
#ES索引库名称
index => "xc_course"
#指定数据库模型中那个字段作为document的id
document_id => "%{courseid}"
document_type => "doc"
template =>"D:/ElasticSearch3940/logstash-6.2.1/config/course_template.json"
template_name =>"course"
template_overwrite =>"true"
}
stdout {
#日志输出
codec => json_lines
}
}
5、测试
执行启动logstash
.\logstash.bat -f ..\config\mysql.conf
业务代码中跟新数据模型数据,注意更新timestamptime,使用head登录查看索引库数据,是否更新
elasticsearch-logstash的更多相关文章
- 【转】ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
[转自]https://my.oschina.net/itblog/blog/547250 摘要: 前段时间研究的Log4j+Kafka中,有人建议把Kafka收集到的日志存放于ES(ElasticS ...
- 使用ELK(Elasticsearch + Logstash + Kibana) 搭建日志集中分析平台实践--转载
原文地址:https://wsgzao.github.io/post/elk/ 另外可以参考:https://www.digitalocean.com/community/tutorials/how- ...
- Manage Spring Boot Logs with Elasticsearch, Logstash and Kibana
下载地址:https://www.elastic.co/downloads When time comes to deploy a new project, one often overlooked ...
- (转)开源分布式搜索平台ELK(Elasticsearch+Logstash+Kibana)入门学习资源索引
Github, Soundcloud, FogCreek, Stackoverflow, Foursquare,等公司通过elasticsearch提供搜索或大规模日志分析可视化等服务.博主近4个月搜 ...
- 基于ELK5.1(ElasticSearch, Logstash, Kibana)的一次整合测试
前言开源实时日志分析ELK平台(ElasticSearch, Logstash, Kibana组成),能很方便的帮我们收集日志,进行集中化的管理,并且能很方便的进行日志的统计和检索,下面基于ELK的最 ...
- ELK日志系统:Elasticsearch+Logstash+Kibana+Filebeat搭建教程
ELK日志系统:Elasticsearch + Logstash + Kibana 搭建教程 系统架构 安装配置JDK环境 JDK安装(不能安装JRE) JDK下载地址:http://www.orac ...
- ELk(Elasticsearch, Logstash, Kibana)的安装配置
目录 ELk(Elasticsearch, Logstash, Kibana)的安装配置 1. Elasticsearch的安装-官网 2. Kibana的安装配置-官网 3. Logstash的安装 ...
- 基于ELK5.1(ElasticSearch, Logstash, Kibana)的一次整合
前言开源实时日志分析ELK平台(ElasticSearch, Logstash, Kibana组成),能很方便的帮我们收集日志,进行集中化的管理,并且能很方便的进行日志的统计和检索,下面基于ELK的最 ...
- ELK(ElasticSearch+Logstash+ Kibana)搭建实时日志分析平台
一.简介 ELK 由三部分组成elasticsearch.logstash.kibana,elasticsearch是一个近似实时的搜索平台,它让你以前所未有的速度处理大数据成为可能. Elastic ...
- ELK6.0部署:Elasticsearch+Logstash+Kibana搭建分布式日志平台
一.前言 1.ELK简介 ELK是Elasticsearch+Logstash+Kibana的简称 ElasticSearch是一个基于Lucene的分布式全文搜索引擎,提供 RESTful API进 ...
随机推荐
- GNS3 模拟icmp端口不可达
R1 : conf t int f0/0 no shutdown ip add 192.168.1.1 255.255.255.0 no ip routing end R2 f0/0: conf t ...
- Exchange 2003 限制用户向外网发送邮件
在企业系统中,邮件系统起着举足轻重的作用.同时为了符合企业的安全性策略,在Exchange 2003 中,常常需要限制某个用户或组向外网发送邮件,只允许此邮件在内部收发.下面我们以实验的方式来分析在E ...
- JWT跨域身份验证解决方案
JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案.本文介绍JWT的原理和用法. 1. 当前跨域身份验证的问题 Internet服务无法与用户身份验证分开.一般过程如下.1.用户 ...
- springboot启动总是启动不起来UnsatisfiedDependencyException异常
采用debug模式启动总是停留在 点击后: 鼠标放在ex上: org.springframework.beans.factory.UnsatisfiedDependencyException: Err ...
- spring mvc绑定参数之日期类型转换
问题复现步骤: 1.提交表单,参数为: 2.接收参数类型为product实体类,如下 3.错误日志如下: org.springframework.validation.BindException: o ...
- 108-PHP类成员protected和private成员属性不能被查看数值
<?php class mao{ //定义猫类 public $age; //定义多个成员属性 protected $weight; private $color; } $mao1=new ma ...
- 记录一次ajax使用
function getSSOUrl(urlvalue) { var urls; $.ajax({ type: "GET", url: "../../GeoManage/ ...
- ACM-Alice and Bob
题目描述:Alice and Bob One day, Alice asks Bob to play a game called “K-in-a-row”. There is a game board ...
- super方法
继承 __init__是python中的构造函数,用于属性的初始化. 如果在子类中定义了构造函数,python默认不会调用父类的构造函数,父类里的属性就不会集成到子类. super 用于调用父类(超类 ...
- 基础语法-选择结构switch
基础语法-选择结构switch 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Switch语句特点 switch语句选择的类型在jdk1.6只支持四种:byte,short,i ...