Install Logstash And Sample Conf

本文介绍如何使用Logstash从Redis获取JSON数据,并配置输出插件将数据写入HDFS的过程。包括解决安装插件时遇到的问题,以及具体的配置文件示例。

1. Download

 

#wget https://download.elastic.co/logstash/logstash/logstash-2.3.4.tar.gz

#tar -xzf logstash-2.3.4.tar.gz

#cd logstash-2.3.4

#./bin/logstash-plugin install logstash-output-webhdfs

 

 Error

Installing logstash-output-webhdfs
Error Bundler::InstallError, retrying 1/10
An error occurred while installing snappy-jars (1.1.0.1.2), and Bundler cannot continue.
Make sure that `gem install snappy-jars -v '1.1.0.1.2'` succeeds before bundling.
WARNING: SSLSocket#session= is not supported

 

redis-hdfs.conf

input {
 redis {
    data_type => "list"
    key => "logstash"
    host => "192.168.0.137"
    port => 6379
    threads => 3
  }
}
# The filter part of this file is commented out to indicate that it is
# optional.
filter {
mutate {
        remove_field => ["@host"]
    }
}


output {
stdout{
 codec => rubydebug
}
webhdfs {
    host => "192.168.0.131"         # (required)i
    port => "50070"
    path => "/unichat/logstash/dt=%{+YYYY-MM-dd}/logstash-%{+HH}.log"  # (required)
    user => "root"                       # (required)
    codec => line { format => "%{message}" }
  }
}

 

 

 

I want to insert redis queue a json value 

rpush logstash  '{"userID": 1, "dynamicID": "abcddee","event": 1,
 "time": "2016-05-09 12:32:22"}'

And I want to the json data write to hdfs like

1,wera223adfaadf,2,2016-05-09 12:34:34

  

 

configure output

webhdfs {
    host => "192.168.0.131"         # (required)i
    port => "50070"
    path => "/unichat/logstash/%{+YYYY-MM-dd}.log"  # (required)
    user => "root"                       # (required)
    codec => line { format => "%{userID},%{dynamicID},%{event},%{time}" }
  }

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<think>好的,用户想了解Logstash中Kafka输出插件的配置和使用教程,需要示例。首先,我需要回忆相关的引用内容。引用1提到该插件允许Logstash发送事件到Kafka,提升消息处理能力,并包含项目结构和设置说明。引用4给出了运行命令的例子,比如使用logstash.conf文件启动Logstash。 接下来,用户可能需要具体的配置示例。根据引用3,Logstash的输入输出插件配置示例存在,比如从Kafka读取然后输出到Elasticsearch,但用户这里需要的是输出到Kafka的配置。所以需要构建一个output部分的配置,指定kafka插件,并设置必要的参数如bootstrap_servers、topic等。 然后,关于使用教程,可能需要分步骤说明:安装插件、创建配置文件、运行Logstash。引用2提到安装插件的方法,比如bin/logstash-plugin install logstash-output-kafka,这需要包含进去。引用4中的运行命令示例也要提及,确保用户知道如何启动。 此外,常见参数部分需要整理,比如bootstrap_servers、topic、codec等,这些都是配置Kafka输出插件的关键选项。可能还需要注意事项,比如Kafka版本兼容性、性能调优参数,如linger_ms和batch_size,这些在引用1或3中可能没有直接提到,但根据经验,这些参数对性能影响较大,应该包含。 最后,生成相关问题需要考虑用户可能的后续疑问,比如如何保证数据可靠性,如何处理错误,或者如何监控插件运行状态。这些扩展问题能帮助用户进一步解决问题。 需要确保配置示例中的参数正确,比如bootstrap_servers的格式是"host:port",topic使用动态字段的话要注明。另外,提醒用户根据实际环境调整配置,比如Kafka地址和版本。同时,注意LaTeX格式的正确应用,比如变量用$...$包裹,但配置代码块应使用反引号,避免混淆。 总结回答结构:先介绍插件作用,然后分步骤说明安装、配置、运行,给出示例配置文件,列出常见参数,注意事项,最后相关问题。确保每个部分引用正确的来源,比如项目结构引用1,安装引用2,运行命令引用4,配置示例参考引用3的结构。</think>### Logstash Kafka 输出插件配置与使用教程 #### 1. 插件简介 Logstash的Kafka输出插件(`logstash-output-kafka`)用于将Logstash处理的事件数据发送到Apache Kafka集群,支持高吞吐、分布式的消息传递[^1]。它适用于需要实时数据流处理的场景,如日志聚合、事件溯源等。 --- #### 2. 配置步骤 **步骤1:安装插件** 通过Logstash插件管理工具安装: ```bash bin/logstash-plugin install logstash-output-kafka ``` **步骤2:配置文件示例** 创建配置文件(如 `kafka-output.conf`),包含输入、过滤、输出模块: ```ruby input { # 示例输入源(可按需替换为文件、HTTP等) generator { message => "Sample log event: Hello Kafka" count => 1 } } output { kafka { # Kafka集群地址 bootstrap_servers => "localhost:9092" # 目标主题名称(支持动态字段) topic_id => "logs-%{+YYYY.MM.dd}" # 消息编码格式 codec => plain { format => "%{message}" } # 高级参数(可选) linger_ms => 1000 # 发送延迟(毫秒) batch_size => 16384 # 批次大小(字节) } } ``` --- #### 3. 运行Logstash 通过命令行启动Logstash并指定配置文件: ```bash bin/logstash -f kafka-output.conf ``` 若成功,事件将被发送到Kafka的`logs-当前日期`主题中[^4]。 --- #### 4. 关键参数说明 | 参数 | 描述 | 示例 | |------|------|------| | `bootstrap_servers` | Kafka集群地址列表 | `"kafka1:9092,kafka2:9092"` | | `topic_id` | 目标主题名称 | 静态主题:`"logs"`;动态主题:`"logs-%{field}"` | | `codec` | 消息编码格式 | `json`、`plain`、`avro`等 | | `acks` | 消息确认机制 | `all`(最高可靠性) | | `compression_type` | 压缩算法 | `snappy`、`gzip` | --- #### 5. 注意事项 1. **版本兼容性**:确保插件版本与Kafka集群兼容(如Kafka 2.x需插件版本≥5.0)[^2]。 2. **错误重试**:通过`retries`和`retry_backoff_ms`参数配置重试策略。 3. **性能调优**:增大`batch_size`或调整`linger_ms`可提升吞吐量,但可能增加延迟。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值