博客
关于我
Elasticsearch之logstash的下载安装及使用并配置ik分词器
阅读量:798 次
发布时间:2019-03-25

本文共 2485 字,大约阅读时间需要 8 分钟。

1. 选择同步边界

在设置数据库到Elasticsearch(ES)的数据同步任务时,选择合适的同步边界至关重要。以下是两种常见的同步边界选择及其优缺点:

####字段id

当数据库中新增字段时,使用字段id作为同步边界可以确保新字段被同步到ES。这是因为每当数据库有新增字段时,Logstash会自动将其推送到ES。但其缺点在于,当数据库中的数据进行更新时,Logstash无法自动感知这些更新,可能导致数据不完整或延迟。

####updateTime

相比之下,选择updateTime作为同步边界是一个更好的选择。updateTime字段在数据库中无论是新增还是修改都会产生变化。Logstash能够识别这些变化,从而在定期同步过程中自动拉取数据库中更新的数据。这种方式能够有效避免数据延迟问题,确保数据的一致性。


2. Logstash JDBC 插件(新版本自带的)

Logstash 推出了一个内置的JDBC插件,可以用来直接从数据库中读取数据并将其导入Elasticsearch。以下是该插件的使用步骤和配置示例:

####准备步骤

  • 下载Logstash:根据你的Elasticsearch版本选择合适的Logstash版本。建议访问Elastic官方网站:https://www.elastic.co/cn/downloads/elasticsearch
  • 下载数据库驱动:下载适用于你数据库类型的JDBC驱动。例如,MySQL驱动可以使用 mysql-connector-java-5.1.41.jar
  • 解压和配置
    • 使用 tar 命令解压 Logstash:tar -zxzf logstash-x.x.x-linux-x86_64.tar.gz
    • 进入解压后的 Logstash 目录,创建配置文件目录:mkdir -p logstash-x.x.x/sync
    • 使用 Vim 创建同步规则配置文件:vim logstash-x.x.x/sync/logstash-db-sync.conf
    • 将 JDBC 驱动文件复制到配置文件目录:cp ~/mysql-connector-java-5.1.41.jar logstash-x.x.x/sync/

  • ####配置文件示例(logstash-db-sync.conf)

    input {  jdbc {    # 数据库连接信息    jdbc_driver_library => "/usr/local/sql/mysql-connector-java-5.1.41.jar"    jdbc_driver_class => "com.mysql.jdbc.Driver"    jdbc_connection_string => "jdbc:mysql://你的数据库地址:3306/你的数据库名"    jdbc_user => "数据库用户名"    jdbc_password => "数据库密码"    # 分页配置    jdbc_paging_enabled => "true"    jdbc_page_size => "10000"    # 定时执行 SQL    schedule => "* * * * *"    statement => "SELECT * FROM 表名 WHERE update_time >= :sql_last_value"        # 其他配置    use_column_value => "true"    last_run_metadata_path => "/usr/local/logstash-x.x.x/sync/syncpoint_table"    tracking_column_type => "timestamp"    tracking_column => "update_time"    clear_run => "false"    lowercase_column_names => "false"  }}output {  elasticsearch {    hosts => ["你的 ES 地址:9200", "你的 ES 地址:9201"]    index => "你的 ES 索引名"    document_id => "%{id}"    document_type => "_doc"  }  stdout {    codec => "json_lines"  }}

    3. 启动

  • 进入 Logstash 的 bin 目录cd logstash-x.x.x/bin/
  • 启动 Logstash 并指定配置文件
    ./logstash -f ../sync/logstash-db-sync.conf

  • 4. 获取 Logstash 模板(可选:添加分词操作)

    如果需要对数据进行分词处理,可以遵循以下步骤:

    ####添加分词模板

  • 创建模板文件vim logstash-ik.json
    {  "analyzer": "ik_max_word"}
  • 获取默认模板:访问你的 ES 地址:http://your_es_ip:9200/_template/logstash
  • 复制默认模板到本地文件
  • ####修改配置文件在 logstash-db-sync.conf 中添加以下配置:

    output {  elasticsearch {    # 模板名称    template_name => "你的模板名称"    # 模板路径    template => "../sync/logstash-ik.json"    template_overwrite => "true"    manager_template => "false"  }}

    通过以上配置,你可以实现从数据库到Elasticsearch的实时数据同步。如果有更多问题,可以参考 Logstash 官方文档或查阅社区资料。

    转载地址:http://bztyk.baihongyu.com/

    你可能感兴趣的文章
    n = 3 , while n , continue
    查看>>
    n 叉树后序遍历转换为链表问题的深入探讨
    查看>>
    N!
    查看>>
    N-Gram的基本原理
    查看>>
    n1 c语言程序,全国青少年软件编程等级考试C语言经典程序题10道七
    查看>>
    Nacos Client常用配置
    查看>>
    nacos config
    查看>>
    Nacos Config--服务配置
    查看>>
    Nacos Derby 远程命令执行漏洞(QVD-2024-26473)
    查看>>
    Nacos 与 Eureka、Zookeeper 和 Consul 等其他注册中心的区别
    查看>>
    Nacos 单机集群搭建及常用生产环境配置 | Spring Cloud 3
    查看>>
    Nacos 启动报错[db-load-error]load jdbc.properties error
    查看>>
    Nacos 报Statement cancelled due to timeout or client request
    查看>>
    Nacos 注册服务源码分析
    查看>>
    Nacos 融合 Spring Cloud,成为注册配置中心
    查看>>
    Nacos-注册中心
    查看>>
    Nacos-配置中心
    查看>>
    Nacos2.X 源码分析:为订阅方推送、服务健康检查、集群数据同步、grpc客户端服务端初始化
    查看>>
    Nacos2.X 配置中心源码分析:客户端如何拉取配置、服务端配置发布客户端监听机制
    查看>>
    Nacos2.X源码分析:服务注册、服务发现流程
    查看>>