2016-02-01 3 views
1

Мы используем Logstash для получения данных из РСУБД в поиск Elastic. На данный момент у меня есть несколько файлов конфигурации, каждый из которых имеет один запрос для каждой таблицы, которую мы хотим индексировать. Хотя это, кажется, отлично работает, есть лучший способ сделать это.Входной плагин Logstash jdbc с несколькими таблицами

ПРИМЕЧАНИЕ. Мы не можем использовать хранимые процедуры.

ответ

1

Вы можете использовать несколько входных плагинов (одного и того же типа) в одной конфигурации - как

input { 
    jdbc { 
    jdbc_driver_library => "mysql-connector-java-5.1.15.jar" 
    ... remaining config ... 
    statement => "SELECT * FROM t1;" 
    type => "score-history" 
    } 
} 

jdbc { 
    jdbc_driver_library => "mysql-connector-java-5.1.15.jar" 
    ... remaining config ... 
    statement => "SELECT * from table2" 
    type => "score" 
    } 
} 

Боюсь, что нет никакого способа, чтобы разделить строку соединения, а также другие параметры конфигурации между двумя модулями. Остальная часть обработки может быть различным в зависимости от типа, установленного во входном плагином - например

filter{ 
    if [type] == "score-history" { 
    date { 
    match => [ "sctimestamp", "UNIX" ] 
    } 
    } 
} 
+0

Я не пробовал это, но я думаю, что препроцессор, такие как GNU m4 может быть хорошим решением что-то вроде это. – Korey

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