Advertisement
Guest User

Untitled

a guest
Jul 13th, 2015
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JSON 1.87 KB | None | 0 0
  1. input {
  2.   file {
  3.     path => [ "/var/log/nginx/example.com_access.log", "/var/log/nginx/example.org_access.log" ]
  4.   }
  5. }
  6. filter {
  7.   grok {
  8.     match => [ "message", '%{IP:client} - \S+ \[%{HTTPDATE:reqtimestamp}\] "(?:\S+ %{NOTSPACE:request} HTTP/\S+)" %{NUMBER:response} \S+ "\S+" "%{DATA:useragent}" ".*" ".*" "\S+/%{DATA:geocf}" "\S+" "\S+" "\S+" "\S*"$' ]
  9.   }
  10.   if [request] =~ /px.png/ {
  11.     grok {
  12.       match => [ "request", '/img/px.png\?s=%{DATA:partner}&cha=%{NUMBER:cha}&sa=%{DATA:said}&' ]
  13.     }
  14.   }
  15.   if [useragent] =~ /Chrome/ {
  16.     mutate {
  17.       add_field => { "ua_parsed" => "Chrome" }
  18.     }
  19.   } else if [useragent] =~ /Safari/ {
  20.     mutate {
  21.       add_field => { "ua_parsed" => "Safari" }
  22.     }
  23.   } else if [useragent] =~ /Firefox/ {
  24.     mutate {
  25.       add_field => { "ua_parsed" => "Firefox" }
  26.     }
  27.   } else if [useragent] =~ /Opera/ {
  28.     mutate {
  29.       add_field => { "ua_parsed" => "Opera" }
  30.     }
  31.   } else if [useragent] =~ /Trident.*rv:11.0/ {
  32.     mutate {
  33.       add_field => { "ua_parsed" => "IE_11" }
  34.     }
  35.   } else if [useragent] =~ /MSIE/ {
  36.     grok {
  37.       match => ["useragent", "MSIE %{NUMBER:ieversion}.*" ]
  38.     }
  39.     mutate {
  40.       add_field => { "ua_parsed" => "IE_%{ieversion}" }
  41.       #remove_field => [ "ieversion" ]
  42.     }
  43.   } else {
  44.     mutate {
  45.       add_field => { "ua_parsed" => "other" }
  46.     }
  47.   }
  48.   mutate {
  49.        remove_field => [ "message", "answersize", "httpversion", "cachehit", "referer", "verb", "nginxgeoip", "cfgeoip" ]
  50.        add_field => { "http_host" => "example.com" }
  51.        add_tag => [ "cdn_nginx_request" ]
  52.   }
  53.   date {
  54.        match => [ "reqtimestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]
  55.        target => "newtimestamp"
  56.        locale => "en"
  57.   }
  58.  
  59.  
  60. }
  61. output {
  62.   elasticsearch {
  63.     host => "es.example.com"
  64.     port => 9222
  65.     protocol => http
  66.     flush_size => 1000
  67.     workers => 4
  68.  
  69.   }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement