Logstash数据顺序写ES

适用场景

业务需要将操作ES的多条命令先后执行,如先插入再更新、先删除再插入等,且多条命令执行间隔很短。由于Logstash为批量提交事件,Elasticsearch为异步线程池处理,普通使用方式无法保证数据的事务性。

Elasticsearch的乐观锁机制

Elasticsearch对每条存储的数据都有版本控制,每一次对一条记录的增删改都会使该条记录的版本号增加1。如果在进行某一次操作时,先进行版本号检查,若当前版本号不是预期的版本号,则本次操作将被取消。

删除一条记录后,该记录的版本信息默认将保存1分钟。

Logstash配置示例

2条时间间隔很近的操作请求增加dataVersion字段,该字段可以为时间戳,2条操作中的字段值需相同

input {
  kafka {
    bootstrap_servers => "192.168.x.x:9092,192.168.x.x:9092,192.168.x.x:9092"
    topics => "synclogs"
    group_id => "logstash-sync"
    consumer_threads => "1"
    max_partition_fetch_bytes=> "5242880"
    codec => "json"
  }
}

output {
  if [dataVersion] {
    if [action] and [action] == "delete" {
      elasticsearch {
        hosts => ["192.168.x.x:9200","192.168.x.x:9200"]
        index => "sync_test"
        document_type => "test"
        action => "delete"
        codec => "json"
        document_id => "%{id}"
        version => "%{dataVersion}"
        version_type => "external"
        retry_on_conflict => 4
      }
    } else {
      elasticsearch {
        hosts => ["192.168.x.x:9200","192.168.x.x:9200"]
        index => "sync_test"
        document_type => "test"
        action => "index"
        codec => "json"
        document_id => "%{id}"
        version => "%{dataVersion}"
        retry_on_conflict => 4
      }
    }
  }else {
    elasticsearch {
      hosts => ["192.168.x.x:9200","192.168.x.x:9200"]
      index => "sync_test"
      document_type => "test"
      action => "index"
      codec => "json"
      document_id => "%{id}"
    }
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!要使用Logstash,首先需要安装和配置它。以下是一些基本步骤: 1. 下载并安装Logstash:你可以从Logstash官方网站(https://www.elastic.co/logstash)上下载适用于你的操作系统的安装包。按照官方文档提供的说明进行安装。 2. 创建配置文件:在安装目录中找到并编辑Logstash的配置文件,通常是在`config`目录下的`logstash.yml`文件。根据你的需求,配置输入(从哪里获取数据)、过滤(对数据进行处理)和输出(将数据发送到目标位置)。 3. 配置输入:在配置文件中添加输入插件,指定从哪里获取数据。例如,如果要从文件中读取数据,可以使用`file`插件。根据插件的要求配置相关参数,如文件路径、格式等。 4. 配置过滤:在配置文件中添加过滤器插件,用于处理输入数据。可以使用各种插件执行过滤操作,如`grok`用于解析日志、`mutate`用于转换字段、`date`用于解析日期等。根据需要按顺序添加并配置这些插件。 5. 配置输出:在配置文件中添加输出插件,将处理后的数据发送到目标位置。可以选择将数据发送到Elasticsearch、Kafka、数据库等。根据插件的要求配置相关参数。 6. 启动Logstash:在命令行中导航到Logstash的安装目录,并运行`bin/logstash -f path/to/config.conf`命令,其中`path/to/config.conf`是你的配置文件路径。 这些是使用Logstash的基本步骤。根据你的实际需求,可能还需要进一步配置和调整。记得查看官方文档以获取更详细的信息和示例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值