安装 logstash

安装包下载:

下载地址

注意:需要和 Elasticsearch 版本相对应

上传至服务器并解压

tar -zxvf logstash-6.4.3.tar.gz

移动至安装目录

mv logstash-6.4.3 /usr/local/

创建数据同步相关的目录和配置

  • 创建目录

    mkdir /usr/local/logstash-6.4.3/sync
    
  • 创建同步配置文件

    vim logstash-db-sync.conf
    
    input {jdbc {# 设置 MySql/MariaDB 数据库 url 以及数据库名称jdbc_connection_string => "jdbc:mysql://ip:port/dbName?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true"# 用户名和密码jdbc_user => "username"jdbc_password => "password"# 数据库驱动所在位置,可以是绝对路径或者相对路径jdbc_driver_library => "/usr/local/logstash-6.4.3/sync/mysql-connector-java-5.1.41.jar"# 驱动类名jdbc_driver_class => "com.mysql.jdbc.Driver"# 开启分页jdbc_paging_enabled => "true"# 分页每页数量,可以自定义jdbc_page_size => "1000"# 执行的 sql 文件路径statement_filepath => "/usr/local/logstash-6.4.3/sync/foodie-items.sql"# 设置定时任务间隔  含义:分、时、天、月、年,全部为*默认含义为每分钟跑一次任务schedule => "* * * * *"# 索引类型type => "_doc"# 是否开启记录上次追踪的结果,也就是上次更新的时间,这个会记录到 last_run_metadata_path 的文件use_column_value => true# 记录上一次追踪的结果值last_run_metadata_path => "/usr/local/logstash-6.4.3/sync/track_time"# 如果 use_column_value 为true,配置本参数,追踪的 column 名,可以是自增 id 或者时间tracking_column => "updatedTime"# tracking_column 对应字段的类型tracking_column_type => "timestamp"# 是否清除 last_run_metadata_path 的记录,true 则每次都从头开始查询所有的数据库记录clean_run => false# 数据库字段名称大写转小写lowercase_column_names => false}
    }
    output {elasticsearch {# es 地址hosts => ["172.24.114.224:9200"]# 同步的索引名index => "foodie-items-ik"# 设置 _docID 和数据相同document_id => "%{itemId}"}# 日志输出stdout {codec => json_lines}
    }
    
  • 创建执行的 SQL 文件

    vim foodie-items.sql
    
    SELECTi.id AS itemId,i.item_name AS itemName,i.sell_counts AS sellCounts,ii.url AS imgUrl,tempSpec.price_discount AS price,i.updated_time AS updatedTime
    FROMitems i
    LEFT JOINitems_img ii
    ONi.id = ii.item_id
    LEFT JOIN(SELECT item_id,MIN(price_discount) AS price_discount FROM items_spec GROUP BY item_id) tempSpec
    ONi.id = tempSpec.item_id
    WHEREii.is_main = 1
    ANDi.updated_time > :sql_last_value
    

    sql_last_value 为上一次同步的时间

  • 上传数据库驱动

    具体路径同上配置:jdbc_driver_library

启动 logstash

cd /usr/local/logstash-6.4.3/bin
./logstash -f ../sync/logstash-db-sync.conf

给 logstash 配置分词器

两种配置方式:

  • 手动创建索引,然后 logstash 只负责同步即可
  • 使用 logstash 的自定义模板功能,让 logstash 同步之前自动创建好 mappings 并设置分词器

下面介绍第二种方式:

  • 创建配置文件

    首先,查看 es 默认的 logstash 模板:GET -> http://ip:9200/_template/logstash

    {"logstash": {"order": 0,"version": 60001,"index_patterns": ["logstash-*"],"settings": {"index": {"refresh_interval": "5s"}},"mappings": {"_default_": {"dynamic_templates": [{"message_field": {"path_match": "message","match_mapping_type": "string","mapping": {"type": "text","norms": false}}},{"string_fields": {"match": "*","match_mapping_type": "string","mapping": {"type": "text","norms": false,"fields": {"keyword": {"type": "keyword","ignore_above": 256}}}}}],"properties": {"@timestamp": {"type": "date"},"@version": {"type": "keyword"},"geoip": {"dynamic": true,"properties": {"ip": {"type": "ip"},"location": {"type": "geo_point"},"latitude": {"type": "half_float"},"longitude": {"type": "half_float"}}}}}},"aliases": {}}
    }
    

    这里我们只需要修改以下几个地方,然后删除最外层的 { "logstash": } 即可作为自定义模板使用:

    "order": 99,
    "version": 1,
    "index_patterns": ["*"],
    "mappings" -> "_default_" -> "dynamic_templates" -> "string_fields" -> "mapping": 增加 "analyzer": "ik_max_word"
    

    修改后得到以下内容,我们将它命名为:logstash-ik.json,上传至 sync 目录下:

    {"order": 99,"version": 1,"index_patterns": ["*"],"settings": {"index": {"refresh_interval": "5s"}},"mappings": {"_default_": {"dynamic_templates": [{"message_field": {"path_match": "message","match_mapping_type": "string","mapping": {"type": "text","norms": false}}},{"string_fields": {"match": "*","match_mapping_type": "string","mapping": {"type": "text","norms": false,"analyzer": "ik_max_word","fields": {"keyword": {"type": "keyword","ignore_above": 256}}}}}],"properties": {"@timestamp": {"type": "date"},"@version": {"type": "keyword"},"geoip": {"dynamic": true,"properties": {"ip": {"type": "ip"},"location": {"type": "geo_point"},"latitude": {"type": "half_float"},"longitude": {"type": "half_float"}}}}}},"aliases": {}
    }
    
  • 修改 logstash-db.sync.conf 文件,增加如图配置项:

    # 定义模板名称
    template_name => "myik"
    # 模板所在位置
    template => "/usr/local/logstash-6.4.3/sync/logstash-ik.json"
    # 重写模板
    template_overwrite => true
    # 默认为 true,false 关闭 logstash 自动管理模板的功能,如果自定义模板,则设置为 false
    manage_template => false
    
  • 重启 logstash,请求 GET -> http://ip:9200/_template/myik 查看配置是否生效

    注意:分词器配置以后,只会对新创建的索引的文档数据进行分词,对已存在索引的文档数据不生效。

  • 通过 header 插件查看索引信息进行再次验证:

  • 接下来就可以对中文进行分词了,至此配置结束。

安装 Logstash 并配置 ik 分词器相关推荐

  1. requirednew基于xml配置日志不回滚_Elasticsearch配置IK分词器的远程词库

    在生活中很多很多地方都涉及到了全文检索,最常见的就好比日常使用到的百度搜索等搜索引擎,也都是基于全文检索来实现的:全文检索种类较多,就好比Elasticsearch.Sorl等. 为Ealsticse ...

  2. es ik 词库添加词语_Elasticsearch配置IK分词器的远程词库

    在生活中很多很多地方都涉及到了全文检索,最常见的就好比日常使用到的百度搜索等搜索引擎,也都是基于全文检索来实现的:全文检索种类较多,就好比Elasticsearch.Sorl等. 为Ealsticse ...

  3. Elasticsearch+elasticsearch-head的安装+Kibana环境搭建+ik分词器安装

    一.安装JDK1.8 二.安装ES 三个节点:master.slave01.slave02 1.这里下载的是elasticsearch-6.3.1.rpm版本包 https://www.elastic ...

  4. window10下安装Elasticsearch(es)和IK分词器

    1 安装Elasticsearch 7.x  1.1 下载地址 https://www.elastic.co/cn/downloads/elasticsearch 1.2 下载后解压的目录结构 Ela ...

  5. Solr配置IK分词器

    配置步骤 下载分词器 上传文件 添加jar包 添加配置文件 添加分词器,配置业务域 测试分词器 第一步 下载IK分词器 第二步 上传文件 查看 第三步 添加jar包 到solr工程 cp IKAnal ...

  6. elaseticsearch 配置ik分词器的热更新_Elasticsearch从入门到放弃:分词器初印象

    Elasticsearch 系列回来了,先给因为这个系列关注我的同学说声抱歉,拖了这么久才回来,这个系列虽然叫「Elasticsearch 从入门到放弃」,但只有三篇就放弃还是有点过分的,所以还是回来 ...

  7. Elasticsearch学习系列一(部署和配置IK分词器)

  8. [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例二.

    为了更好的排版, 所以将IK分词器的安装重启了一篇博文,  大家可以接上solr的安装一同查看. [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://w ...

  9. Linux下安装和配置solr/tomcat/IK分词器 详细实例二.

    为了更好的排版, 所以将IK分词器的安装重启了一篇博文,  大家可以接上solr的安装一同查看. [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://w ...

最新文章

  1. Latex快速入门, Windows 安装使用编译技巧归纳
  2. CUDA系列学习(三)GPU设计与结构QA coding练习
  3. 腾讯Groupon合资团购网站 高朋网悄然上线
  4. Java基础---常用类之Math类 and Syetem类
  5. IT历史:IT史重大失败教训
  6. 追加easyui元素,完成后调用$.parser.parse()方法渲染
  7. 翻译: Swift 中信号量的美妙之处
  8. 异速联显示连接服务器失败,异速联客户端登陆时正在连接服务器
  9. mac os下可能是最好的豆瓣电台——diumoo
  10. 4针串口线接法图_RS232串口线接口及接法(串口通信RS232的基本接法)
  11. ❤️ 前端如何与后端对接?当年差点和后端同学打起来了!
  12. 低功耗蓝牙ATT/GATT/Profile/Service/Characteristic解读
  13. Andromeda:适用于多进程架构的组件通信框架
  14. [LED]如何配置LCD背光和LED,调试方法
  15. mysql preparing状态_【Docker】在集群中部署应用为什么始终是Preparing状态
  16. Scrapy第十五篇:后起之秀-Playwright
  17. 前端开发-后台信息管理页面的开发流程
  18. 火了70年的厨电界“好莱坞大明星”,各种影视剧都用它当道具来提气丨钛空最生活
  19. android微信源生SDK分享问题
  20. 项目讲解-AVM 3D 全景泊车-畸变矫正(1)

热门文章

  1. matlab 概述作业答案,Matlab作业答案
  2. echarts入门(详细教程)
  3. 如何阻止浏览器的默认行为?
  4. H3C 通过命令行对无线设备进行激活、安装License的方法
  5. android tabhost黑色背景,怎么设置tabhost的背景颜色
  6. STM32 W5500 OTA功能 - bootloader及app的设计和实现
  7. HTML URL 编码参考手册-------转载
  8. html+css+js 制作 PC 端酷狗音乐网页
  9. jq过渡收缩动画用js实现
  10. php 请求第三方接口发送短信验证码及注册手机号码