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

本文共 2530 字,大约阅读时间需要 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/

    你可能感兴趣的文章
    nginx 配置https(一)—— 自签名证书
    查看>>
    nginx 配置~~~本身就是一个静态资源的服务器
    查看>>
    Nginx 配置解析:从基础到高级应用指南
    查看>>
    nginx+Tomcat性能监控
    查看>>
    Nginx下配置codeigniter框架方法
    查看>>
    nginx报错:the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:128
    查看>>
    nginx添加模块与https支持
    查看>>
    Nginx用户认证
    查看>>
    Nginx的Rewrite正则表达式,匹配非某单词
    查看>>
    Nginx的使用总结(一)
    查看>>
    Nginx的使用总结(二)
    查看>>
    Nginx的可视化神器nginx-gui的下载配置和使用
    查看>>
    Nginx的是什么?干什么用的?
    查看>>
    Nginx访问控制_登陆权限的控制(http_auth_basic_module)
    查看>>
    nginx负载均衡器处理session共享的几种方法(转)
    查看>>
    nginx负载均衡的5种策略(转载)
    查看>>
    nginx负载均衡的五种算法
    查看>>
    Nginx运维与实战(二)-Https配置
    查看>>
    Nginx配置ssl实现https
    查看>>
    Nginx配置TCP代理指南
    查看>>