2014-02-12 2 views
8

Мы хотим создать сервер для логсташа для нескольких разных проектов в нашей компании. Теперь я пытаюсь включить их в Кибану. Мой вопрос: Если у меня разные шаблоны лог-файлов, как я могу создать для них фильтр? пример: logstash.conf:logstash: несколько лог-файлов с различным шаблоном

input { 
    file { 
    type => "A" 
    path => "/home/logstash/A/*" 
    start_position => "beginning" 
    } 
file { 
    type => "B" 
    path => "/home/logstash/B*" 
    start_position => "beginning" 
    } 
} 

filter { 
    multiline { 
     pattern => "^%{TIMESTAMP_ISO8601}" 
     negate => true 
     what => "previous" 
    } 
    grok { 
    type => A 
    match => [ "message", "%{TIMESTAMP_ISO8601:logdate} %{DATA:thread %{LOGLEVEL:level}\s*%{DATA:logger_name}\s*-\s*%{GREEDYDATA:log_text}"] 

    add_tag => [ "level_%{level}" ] 
    } 
    date { 
     match => ["logdate", "YYYY-MM-dd HH:mm:ss,SSS"] 
    } 
    grok { 
     type => B 
     match => [ any other pattern ... 
} 
} 
output { 
    elasticsearch { embedded => true } 
} 

я должен создать для каждого проекта (A, B, C, ...) собственного фильтра, и что я должен делать, когда у меня есть для каждого снова спроектировать другой шаблон лог-файлов?

+0

спасибо, Бен, я попробую. И что мне делать, когда у меня разные шаблоны журналов с A и B, когда A и B являются проектами? – user3300940

ответ

9

Вам нужно всего лишь создать фильтр для всех проектов.

Для Logstash 1.3.3 вы можете использовать инструкцию if, чтобы различать каждый проект grok. Например,

filter { 

    multiline { 
     pattern => "^%{TIMESTAMP_ISO8601}" 
     negate => true 
     what => "previous" 
    } 

    if [type] == "A" { 
     grok { 
      match => [ any other pattern ... 
     } 
    } 
    else if [type] == "B" { 
     grok { 
      match => [ any other pattern ... 
     } 
    } 
} 

Надеюсь, это может вам помочь.

+0

спасибо, Бен, я попробую. И что мне делать, когда у меня разные шаблоны журналов с A и B, когда A и B являются проектами? – user3300940

+0

Один вход (файл) будет иметь один тип. Итак, если у вас разные шаблоны журналов в A, вам нужно сначала отделить журнал. –

+0

Спасибо Ben.Now для моего понимания: когда у меня есть два разных веб-сервиса (A и B) с различными шаблонами лог-файлов, тогда их невозможно отобразить в одной установке графического интерфейса Kibana. Мне понадобится для каждого веб-сервиса собственный графический интерфейс Kibana, не так ли? Это невозможно в одном графическом интерфейсе с двумя панелями мониторинга? – user3300940

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