У меня задание flink, в котором в качестве основы ведения журнала используется logback, поскольку журналы необходимо отправлять в logstash, а logback имеет приложение logstash ( logstash-logback-appender ).Приложение прекрасно работает, и я вижу журналы приложений в logstash, когда задание flink запускается из IDE, такой как Eclipse.Файл конфигурации ведения журнала logback.xml помещается в src / main / resources и включается в путь к классам.Ведение журнала работает нормально даже при запуске задания из командной строки вне среды IDE.
Однако, когда я развертываю это задание на кластере flink (автономно, начал использовать ./start-cluster.bat
) через панель мониторинга flink, конфигурация входа в систему игнорируетсяи журналы не отправляются на logstash .
Я прочитал больше о механизме журналирования flink и наткнулся на документацию по настройке logback .Шаги, упомянутые в этой документации, прекрасно работают с некоторыми дополнительными шагами, такими как добавление logstash-logback-encoder
lib в папку lib / вместе с logback
jars.
Несмотря на то, что вышеупомянутые шаги работают, это проблематично, поскольку конфигурация входа в систему в папке flink / conf , которая используется flink, применяется ко всей настройке flink и ко всем работам, выполняющимся на flink,Задания не могут иметь собственную конфигурацию ведения журнала.Например,я хочу, чтобы job1 записывал в file
, console
, logstash
и задание 2 записывал только в file
.
Каким образом каждое задание flink, запускаемое с панели мониторинга, может быть снабжено отдельной регистрациейконфигурация?Есть ли способ передать настройку регистрации при отправке задания на панель мониторинга?
Есть ли какой-нибудь способ заставить flink использовать конфигурацию регистрации в classpath?