ELK-logstash服务端日志收集定制

该博客介绍了如何配置logstash来接收来自客户端TCP发送及storm节点filebeat扫描的日志。内容包括:客户端日志通过TCP传输至指定端口,logstash的接收设置;storm日志由filebeat读取并发送至logstash;同时讲解了如何解析客户端和storm日志,提取关键信息如模块名称、时间戳和日志级别,并清理无用字段。

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

input {
  tcp {
    host => "logstash-server"
    port => 8666
    mode => "server"
    tags => ["cluster"]
    type => "cluster"
    codec => json
  }
  beats {
    port => 8665
    tags => ["storm"]
    type => "storm"
  }
}
filter {
if [logger_name] == "com.threadpool.LogExecutor" {
        json {
            source => "message"
        }
        mutate {
        copy => { "type" => "appname" }
    }
}
if [type] == "storm" {
grok{
        match => {"message" => "%{SYSLOG5424SD:thread_num} %{SYSLOG5424SD:level}"}
}
grok{
        match => {"message" => "%{TIMESTAMP_ISO8601:date}"}
   }
date {
        match => ["date", "yyyy-MM-dd HH:mm:ss,SSS","ISO8601","yyyy-MM-dd HH:mm:ss"]
        target => "@timestamp"
    }
mutate {
        remove_field => ["date"]
        copy => { "type" => "appname" }
    }
}
}
output {
    stdout {
        codec => rubydebug
    }
    elasticsearch {
         hosts => "elasticsearch-server:9200"
         index => "%{[appname]}-%{+YYYY.MM.dd}"
         user => "admin"
         password => "admin"
    }

}

客户端日志通过TCP发送到服务端指定端口,配置logstash接收相应日志;

storm计算节点通过filebeat扫描storm日志文件,发送到logstash服务端,配置logstash接收来自filebeat的日志;

解析客户端日志,将操作日志分离出来并赋值模块名称;

解析storm日志,将时间戳和日志级别字段解析出来并覆盖掉logstash内部的相应json字段;

移除解析过程中创建的无用字段。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值