日志分析(二) logstash patterns

grok-patterns内置了很多基础变量的正则表达式的log解析规则,其中包括apache的log解析(同样可以用于nginx的log解析)。
 
基于nginx日志分析配置:
1.配置nginx日志格式如下:
log_format main '$remote_addr [$time_local]'
' "$request" $status $body_bytes_sent'
' "$http_referer"'
' "$request_time"';
 
access_log /var/log/nginx/access.log main;
对nginx日志进行了一定的筛选,去掉用不上的日志。此时,对于日志格式的约定要比较小心,我在调试过程中,在nginx日志上多写了几个空格,logstash半天解析不出来。
2.logstash日志格式配置如下:
input {
file {
path => "/var/log/nginx/*.log"
}
}
filter {
if [path] =~ "access" {
mutate { replace => { "type" => "nginx_access" } }
grok {
match => { "message" => "%{IPORHOST:clientip} \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:method} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})\" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{QS:referrer} %{QS:timeconsumer}" }
}
}
date {
match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
}
}
output {
redis {
data_type => "list"
key => "logstash"
}
}
这样一来,就将nginx日志的请求url,请求方法,请求耗时,响应字节数,请求时间基本上就分离出来了,后续借助kibana就可以做到数据大盘监控与分析。
 
在尝试将logstash致力于处理业务日志的时候,针对业务日志格式,需要定义出一套解析规则,后续完善相关处理表达式.

转载于:https://www.cnblogs.com/asfeixue/p/logstash.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值