Определение констант в Logstash 7.0 - PullRequest
0 голосов
/ 16 апреля 2019

Моим намерением является индексирование в таблицах ElasticSearch N из базы данных Oracle.Для этого я определяю один jdbc для каждой таблицы в разделе ввода.Я не хочу повторять, например, местоположение JAR-файла JDBC в каждой записи jdbc, поэтому я попытался mutate/add_field, чтобы установить значение один раз, но это не работает.Я получаю

Couldn't find any input plugin named 'mutate'

Я пробовал stdin вместо mutate, и это тоже не сработало.Есть идеи, как установить и использовать константу?

input {
  mutate {
      add_field => { "[@metadata][lib]" => "/path/to/lib/ojdbc8.jar" }
  }

  jdbc {
    jdbc_driver_library => [@metadata][lib]
    jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
    jdbc_connection_string => "jdbc:oracle:thin:@//localhost:1521/XE"
    jdbc_user => "user"
    jdbc_password => "pwd"
    schedule => "* * * * *"
    statement => "SELECT col1 from table1"
  }

  jdbc {
    jdbc_driver_library => [@metadata][lib]
    jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
    jdbc_connection_string => "jdbc:oracle:thin:@//localhost:1521/XE"
    jdbc_user => "user"
    jdbc_password => "pwd"
    schedule => "* * * * *"
    statement => "SELECT col2 from table2"
  }

}
output {
     elasticsearch {
        hosts => ["localhost:9200"]
        index => "my_index"
        user => "kibana"
        password => "changeme"
    }
}

Ответы [ 2 ]

2 голосов
/ 17 апреля 2019

Как упоминал @Alain Collins, вы можете использовать переменные окружения.Вот пример:

input {
  jdbc {
    jdbc_driver_library => "${JDBC_DRIVER_LIB}"
    jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
    jdbc_connection_string => "jdbc:oracle:thin:@//localhost:1521/XE"
    jdbc_user => "user"
    jdbc_password => "pwd"
    schedule => "* * * * *"
    statement => "SELECT col1 from table1"
  }
}

и затем вы можете установить переменную среды при запуске процесса Logstash.Например, если вы используете командную строку для запуска процесса Logstash:

JDBC_DRIVER_LIB=/path/to/lib/ojdbc8.jar /PATH_TO_LOGSTASH_BIN_DIR/logstash -f YOUR_CONFIG.yaml
0 голосов
/ 16 апреля 2019

Сообщение об ошибке дает подсказку - mutate является плагином фильтра и недоступен в разделах ввода или вывода.

Вы можете попробовать переменные окружения , которые можно использовать в разделе ввода.

...