logstash 过滤配置

本文介绍了Logstash的配置和使用,包括redis和beats的数据输入,grok过滤规则解析日志,date插件处理时间字段,以及将数据输出到Elasticsearch。配置中涉及了multiline codec用于处理多行日志,以及特定的日志格式匹配和字段提取。

#beats 不支持codec

#codec=>multiline{
#	pattern => "^\d{4}-\d{2}-\d{2}\s*\d{2}:\d{2}:\d{2}\.\d{3}"
#	negate => true
#	what => "previous"
#}

#logstash的插件

#multiline {
#	pattern => "^\["
#	negate => true
#	what => "previous"
#}

数据流入配置

redis流入

input {
  redis {
    host => "ip"
    port => "port"
    password => "password"
    db => "1"
    data_type => "list"
    key => "api-log"			# redis key 与 filebeat.yml 数据流出配置一致
    type => "api-log"			# 数据类型
	
  }
}

beat流入

input {
  beats {
    port => 6007
    add_field => { "[fields][class]" => "crm" }
  }
}

数据过滤规则配置

filter {
  if [type] == "crm-log" {
	# grok 表达式配置
	grok {
	# 表达式文件所在路径
      	patterns_dir => ["/usr/share/logstash/patterns/java"]
      	match => {
        	"message" => (?<crm-log.time>([0-9]{4}-[0-9]{2}-[0-9]{2}\s*[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{3}))\s*\[%{DATA:crm-log.thread}\]\s*\[%{DATA:crm-log.traceid}\]\s*%{LOGLEVEL:crm-log.level}\s*%{GREEDYDATA:crm-log.class}\s+-\s*%{GREEDYDATA:crm-log.custmsg}\s*\[%{NUMBER:crm-log.spendtime}]\S*\s*(?<crm-log.message>(.|\r|\n)*)
      	}
		add_field => {"crm-log.tmp_field" => "%{crm-log.time}" }
    }
	date {
		match => ["crm-log.time","ISO8601"]
		target => "@timestamp"
	}
  }
}

数据流出配置

output {
  if [type] == "crm-log" {
	# 流出至elasticsearch配置
    elasticsearch {
      hosts => ["http://elasticsearch:9200"]
      index => "logstash-%{type}-%{+YYYY.MM.dd}"
    }
  }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值