logstash写入到kafka和从kafka读取日志

本文介绍了如何使用logstash收集nginx日志并将其发送到kafka,以及配置logstash从kafka消费日志的过程,是大数据日志处理的一个应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

收集nginx日志放到kafka
修改nginx日志格式:[nginx日志格式修改](https://blog.51cto.com/9025736/2373483)
input {
  file {
    type => "nginx-access"
    path => "/data/wwwlogs/access_nginx.log"
    start_position => "beginning"
    codec => json
 }

file {
   path => "/var/log/messages"
   start_position => "beginning"
   type => "system-log-252"
    }
   }
 }
output {
    if [type] == "nginx-access" {
kafka {
    bootstrap_servers => "192.168.1.252:9092" #kafka服务器地址
    topic_id => "252nginx-accesslog"
    batch_size => 5
    codec => "json" #写入的时候使用json编码,因为logstash收集后会转换成json格式
      }
      } 
                }
  if [type] == "system-log-252" {
 kafka {
  bootstrap_servers => "192.168.1.252:9092"
  topic_id => 
### Logstash 推送数据到 Kafka 的配置示例 以下是将 Logstash 数据推送到 Kafka 的典型配置示例: #### 输入部分 (Input) 输入可以来自多种来源,例如文件、标准输入或其他插件。以下是一个简单的 `stdin` 输入示例。 ```ruby input { stdin {} } ``` #### 过滤器部分 (Filter) (可选) 如果需要对数据进行过滤或转换,可以在这一阶段完成。这里展示一个基本的 Grok 过滤器示例。 ```ruby filter { grok { match => { "message" => "%{WORD:word}" } } } ``` #### 输出部分 (Output) 这是核心部分,定义了如何将数据发送到 Kafka。下面展示了如何配置 Logstash 将数据写入 Kafka 主题。 ```ruby output { kafka { bootstrap_servers => "localhost:9092" topic_id => "my_topic" codec => json {} # 可选:指定编码方式,默认为 plain text } } ``` 上述配置中: - **bootstrap_servers**: 定义 Kafka 集群地址。 - **topic_id**: 指定目标 Kafka 主题名称。 - **codec**: 设置消息编码格式(如 JSON 或纯文本)。[^1] #### 完整配置文件示例 将以上各部分组合成一个完整的 Logstash 配置文件如下所示: ```ruby input { stdin {} } filter { grok { match => { "message" => "%{WORD:word}" } } } output { kafka { bootstrap_servers => "localhost:9092" topic_id => "my_topic" codec => json {} } } ``` 运行此配置时,Logstash读取标准输入的数据,经过简单过滤后将其作为 JSON 格式的记录发布到名为 `my_topic` 的 Kafka 主题中。[^2] --- ### 常见问题排查 在实际操作过程中,可能会遇到一些常见的配置错误或连接失败的情况。以下是一些可能的原因及其解决方法: 1. 如果 Logstash 报错提示无法找到 Kafka 主题,则需确认该主题已创建并可用。 2. 若 Kerberos 认证未启用却收到认证相关错误,请检查是否误启用了安全选项。 3. 确认 Kafka 集群中的 `broker.id` 参数唯一性设置正确与否。[^5] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值