2015-04-10 1 views
0

У меня есть много хост-машин, которые будут регистрироваться через визуализацию стека ELK (~ 1000 машин). Поэтому мне нужно сделать этот раздел apprx. 1000 раз, как показано ниже.Если заявление в ELK Stack Filter и Output Part

filter { 
     if [host] =~ /10\.1\.1\.5/ { 
      grok { 
       add_tag => [ "firewall" ] 
       match => [ "message", "<(?<evtid>.*)>(?<datetime>(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s+(?:(?:0[1-9])|(?:[12][0-9])|(?:3[01])|[1-9]) (?:2[0123]|[01]?[0-9]):(?:[0-5][0-9]):(?:[0-5][0-9])) (?<prog>.*?): (?<msg>.*)" ] 
      } 
      mutate { 
       gsub => ["datetime"," "," "] 
      } 
      date { 
       match => [ "datetime", "MMM dd HH:mm:ss" ] 
       timezone => "Europe/Istanbul" 
      } 
      mutate { 
       replace => [ "message", "%{msg}" ] 
      } 
      mutate { 
       remove_field => [ "msg", "datetime" ] 
      } 
     } 
    } 

, и этот выходной раздел снова ~ 1000 раз

output { 
    if [host] =~ /10\.1\.1\.5/ { 
     elasticsearch { host => localhost } 
    } 
} 

Я хотел бы сделать, если заявление, как это Как я могу это сделать, AND, OR и т.д.?

if [host] =~ /10\.1\.1\.5/ && /10\.1\.1\.6/ && /10\.1\.1\.7/ && /10\.1\.1\.8/ ... {} 

Или любая идея другого способа сделать это.?

ответ

0

As documented Подставки Logstash, например. and и or в условных выражениях, так что вы могли сказать

if [host] =~ /^10\.1\.1\.5$/ or [host] =~ /^10\.1\.1\.6$/ { 
    ... 
} 

, но это не будет очень производительным. Вместо этого попробуйте найти регулярное выражение, которое соответствует нескольким хостам (возможно, всего 1000 одновременно). Если вы хотите, чтобы включить всю 10.1.1.0/24 подсеть, например, сделать это:

if [host] =~ /^10\.1\.1\./ { 
    ... 
} 

Если это не представляется возможным другой вариант был бы перечислить все IP-адреса и использовать in оператор:

if [host] in ["10.1.1.5", "10.1.1.6", "10.1.1.7"] { 
    ... 
} 

Один из последних вариантов - как-то пометить сообщения с этих хостов, чтобы вам не нужно было размещать условие на IP-адресе. Это кажется лучшим вариантом, но его осуществимость зависит от того, как собираются и отправляются журналы.

Смежные вопросы