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的更多相关文章

  1. 【转】ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

    [转自]https://my.oschina.net/itblog/blog/547250 摘要: 前段时间研究的Log4j+Kafka中,有人建议把Kafka收集到的日志存放于ES(ElasticS ...

  2. 使用ELK(Elasticsearch + Logstash + Kibana) 搭建日志集中分析平台实践--转载

    原文地址:https://wsgzao.github.io/post/elk/ 另外可以参考:https://www.digitalocean.com/community/tutorials/how- ...

  3. 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 ...

  4. (转)开源分布式搜索平台ELK(Elasticsearch+Logstash+Kibana)入门学习资源索引

    Github, Soundcloud, FogCreek, Stackoverflow, Foursquare,等公司通过elasticsearch提供搜索或大规模日志分析可视化等服务.博主近4个月搜 ...

  5. 基于ELK5.1(ElasticSearch, Logstash, Kibana)的一次整合测试

    前言开源实时日志分析ELK平台(ElasticSearch, Logstash, Kibana组成),能很方便的帮我们收集日志,进行集中化的管理,并且能很方便的进行日志的统计和检索,下面基于ELK的最 ...

  6. ELK日志系统:Elasticsearch+Logstash+Kibana+Filebeat搭建教程

    ELK日志系统:Elasticsearch + Logstash + Kibana 搭建教程 系统架构 安装配置JDK环境 JDK安装(不能安装JRE) JDK下载地址:http://www.orac ...

  7. ELk(Elasticsearch, Logstash, Kibana)的安装配置

    目录 ELk(Elasticsearch, Logstash, Kibana)的安装配置 1. Elasticsearch的安装-官网 2. Kibana的安装配置-官网 3. Logstash的安装 ...

  8. 基于ELK5.1(ElasticSearch, Logstash, Kibana)的一次整合

    前言开源实时日志分析ELK平台(ElasticSearch, Logstash, Kibana组成),能很方便的帮我们收集日志,进行集中化的管理,并且能很方便的进行日志的统计和检索,下面基于ELK的最 ...

  9. ELK(ElasticSearch+Logstash+ Kibana)搭建实时日志分析平台

    一.简介 ELK 由三部分组成elasticsearch.logstash.kibana,elasticsearch是一个近似实时的搜索平台,它让你以前所未有的速度处理大数据成为可能. Elastic ...

  10. ELK6.0部署:Elasticsearch+Logstash+Kibana搭建分布式日志平台

    一.前言 1.ELK简介 ELK是Elasticsearch+Logstash+Kibana的简称 ElasticSearch是一个基于Lucene的分布式全文搜索引擎,提供 RESTful API进 ...

随机推荐

  1. python --- 日志模块 logging

    1.日志的使用 import logging class CommonLog(object): def _common_log(self,level,message): # 设定收集器,再设定收集的级 ...

  2. HDU 5501:The Highest Mark 01背包

    The Highest Mark  Accepts: 71  Submissions: 197  Time Limit: 2000/1000 MS (Java/Others)  Memory Limi ...

  3. JD-Store购物网站复盘——20170312

    一.商店技术架构 1.主题 2.涉及技术点: 3.核心业务功能 4.角色 5.用户故事 二.实现步骤 专案基础设施 上传图片模块 购物车 订单 支付&寄信 专案源码 三.第三方服务应用 支付 ...

  4. Web安全测试学习笔记 - vulhub环境搭建

    Vulhub和DVWA一样,也是开源漏洞靶场,地址:https://github.com/vulhub/vulhub 环境搭建过程如下: 1. 下载和安装Ubuntu 16.04镜像,镜像地址:htt ...

  5. 六十、SAP中的加减乘除等算数运算符

    一.代码和显示如下,很奇怪的事情是,负数的负号居然在数字后面

  6. .net Form 的Autoscalemode属性

    .net Form 的Autoscalemode属性如果设置成Font 将会随着系统字体的大小来改变form大小 有时候会造成布局混乱,小心使用

  7. Day 19:Properties配置文件类、打印流(printStream) 、 编码与解码

    Properties(配置文件类): 主要用于生产配置文件与读取配置文件的信息. Properties要注意的细节:  1. 如果配置文件的信息一旦使用了中文,那么在使用store方法生成配置文件的时 ...

  8. 使用dbcp连接mysql

    1.创建dbcp.properties 文件 driver=com.mysql.jdbc.Driver url=jdbc:mysql:///zhang username=root password= ...

  9. win10安装centOS 失去win启动项

    联网:执行以下三条命令 yum -y install epel-release yum -y install ntfs-3g grub2-mkconfig -o /boot/grub2/grub.cf ...

  10. 集合框架的详解,List(ArrayList,LinkedList,Vector),Set(HashSet,TreeSet)-(14)

    集合详解: /* Collection |--List:元素是有序的,元素可以重复.因为该集合体系有索引. |--ArrayList:底层的数据结构使用的是数组结构.特点:查询速度很快.但是增删稍慢. ...