首页 > 数据库技术 > 详细

logstash 匹配 nginx access 日志

时间:2017-03-14 21:45:37      阅读:455      评论:0      收藏:0      [点我收藏+]

ELK系统收集的nginx access日志内容默认都是作为一个整体放在messages字段中的,无法对诸如
upstream_response_timeupstream_status等重要字段进行单独分析比较,因此,就需要使用logstash
grok功能从access日志中匹配提取各个变量
1.首先确定nginx的日志格式
  nginx的配置文件中设置日志格式:  
  

log_format access ‘$remote_addr - $remote_user [$time_local] ‘
              ‘$http_host $request_method $uri ‘
              ‘$status $body_bytes_sent ‘
              ‘$upstream_status $upstream_addr $request_time ‘
              ‘$upstream_response_time $http_user_agent‘;

              
2.使用logstash groknginx日志进行匹配
logstash的配置文件中加入如下过滤规则:

filter { 
#type的值是在logstash的客户端配置文件中配置的,用来匹配采集来的nginx日志  
    if [type] == ‘mobile-access‘ {
    grok {        
    #match 这一段实际是单行书写的,为了便于阅读这里拆分成了多行        
      match =>[ "message",‘%{IPV4:remote_addr}-(%{USERNAME:user}|-)
         \[%{HTTPDATE:nginx_timestamp}\]%{HOSTNAME:http_host}%{WORD:request_method} 
          %{URIPATH:uri}%{BASE10NUM:http_status}%{BASE10NUM:body_bytes_sent:int}
          (%{BASE10NUM:upstream_status}|-)(?:%{HOSTPORT:upstream_addr}|-)
          (%{BASE16FLOAT:request_time}|-)(%{BASE16FLOAT:upstream_response_time}|-)
          (?<http_user_agent>[^"]*)‘          
          }    
      date {
             locale => "en" 
             match =>["nginx_timestamp" , "dd/MMM/YYYY:HH:mm:ss Z"]             
             }   
      #实际中grok并没有将匹配的字段转换成期望的int、float等类型,因此这里使用了convert
      再次做转换             
      mutate {    
           convert =>[                
              "request_time","float",   
              "body_bytes_sent","integer",                
              "upstream_response_time","float",                
              "http_status","integer"                
                          ]         
                }        
             }

查看效果:一共匹配了24Fields,request_time,body_bytes_set都转变成了number类型

技术分享


logstash 匹配 nginx access 日志

原文:http://3379770.blog.51cto.com/3369770/1906317

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!