2014-12-08 4 views
3

У меня возникли проблемы с пониманием того, как это сделать правильно.Syslog forwared Фильтрация протоколов HAProxy в Logstash

У меня есть следующее Logstash конфигурации:

input { 
    lumberjack { 
    port => 5000 
    host => "127.0.0.1" 
    ssl_certificate => "/etc/ssl/star_server_com.crt" 
    ssl_key => "/etc/ssl/server.key" 
    type => "somelogs" 
} 
} 

output { 
    elasticsearch { 
    protocol => "http" 
    host => "es01.server.com" 
    } 
} 

С logstash-экспедитором, я выдвигаю мой haproxy.log файл, генерируемый системным журнал для logstash. Kibana затем показывает мне _source, который выглядит следующим образом:

{"message":"Dec 8 11:32:20 localhost haproxy[5543]: 217.116.219.53:47746 [08/Dec/2014:11:32:20.938] es_proxy es_proxy/es02.server.com 0/0/1/18/20 200 305 - - ---- 1/1/1/0/0 0/0 \"GET /_cluster/health HTTP/1.1\"","@version":"1","@timestamp":"2014-12-08T11:32:21.603Z","type":"syslog","file":"/var/log/haproxy.log","host":"haproxy.server.com","offset":"4728006"} 

Теперь, это должно быть отфильтрованы (как-то), и я должен признать, что у меня нет ни малейшего представления, как это сделать.
Глядя на the grok documentation и возиться с grok debugger У меня все еще нет ничего полезного из Логсташа и Кибаны.

Я просматривал каталог шаблонов и их файлы, и я не могу сказать, что понимаю, как их использовать. Я надеялся, что предоставление фильтра с шаблоном haproxy Logstash будет соответствовать шаблону из моего _source, но это было без везения.

ответ

9

Вам повезло, поскольку уже существует предопределенный шаблон grok, который, как представляется, анализирует этот точный тип журнала. Все, что вам нужно сделать, это обратиться к нему в grok filter:

filter { 
    grok { 
    match => ["message", "%{HAPROXYHTTP}"] 
    } 
} 

%{HAPROXYHTTP} будет рекурсивно расширяется в соответствии с pattern definition и каждый интересный кусок в каждой строке ввода будет извлечен своей области. Вы также можете удалить поле «сообщение» после успешного применения фильтра grok, поскольку в любом случае оно содержит избыточные данные; просто добавьте remove_field => ["message"] в декларацию фильтра grok.

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

  • Нет связанных вопросов^_^