logstash读取Elasticsearch数据保存为json,logstash接收log数据写入kafka生产者

[提前声明]
文章由作者:张耀峰 结合自己生产中的使用经验整理,最终形成简单易懂的文章
写作不易,转载请注明,谢谢!
代码案例地址: ?https://github.com/Mydreamandreality/sparkResearch


一般我们的数据都会由引擎处理完后写入logstash,再由logstash写入kafka生产者,spark程序消费kafka数据,进行处理,最终持久化,一会做几个简单的logstash案例,看下是如何处理的,
spark教程和kafka教程可以参考我之前的博客

安装

在Centos7中安装LogStash:
  • wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.tar.gz 此处的版本应和Elasticsearch的版本对应
  • 解压即可

Elasticsearch的数据通过logstash导出为JSON文件

  • 进入logstash的解压目录,/bin

  • 安装插件:

    • ./logstash-plugin install logstash-output-elasticsearch
  • 安装成功后,新建 es-json.conf 文件

  • 编辑该文件:

input{
    elasticsearch{
        host => ["127.0.0.1:9200"]
        index => "Index"
        type => "type"
        size => 1000
        scroll => "5m"
        docinfo => false
    }
}

output{
    file{
        path => "文件输出路径"
    }
    stdout{
        codec=> json_lines # 这个是是否输出日志
    }
}
  • 执行: ./logstash -f es-json.conf
  • 执行成功后查看output的文件即可

Sys_log数据写入logstash,logstash写入到kafka生产者

[此处不需要安装插件]

先创建topic
./kafka-topics.sh --create --zookeeper localhost:2181 
--replication-factor 1  --partitions 1 --topic syslog
启动消费者
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic syslog --from-beginning
在bin目录下编写logstash脚本
input {
  syslog {
    port => 514						# SysLog发送的端口
    codec => cef
  }
}


output{
  kafka {
    bootstrap_servers => '127.0.0.1:9092'    # kafka的地址
    topic_id => 'syslog'									# 输出到kafka的主题
    codec => plain
  }
}

  • 执行: ./logstash -f 创建的conf文件
  • 查看消费者控制台输出即可
    在这里插入图片描述

Syslog端口数据发送工具

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值