Я использую Graylog в качестве центрального сервера регистрации и использую gelf log4j2-appender для отправки сообщений журнала в Graylog. Это прекрасно работает. Теперь я создал образ докера своего приложения и могу запускать свое программное обеспечение как контейнер докера.
Используя докер, я также вхожу в стандартный вывод (консоль-аппендер), чтобы получать журналы приложений в докере (журналы докера {containerId}).
Теперь я спрашиваю себя, могу ли я сэкономить на gelf log4j2-appender и использовать вместо него драйвер/плагин журнала docker для gelf. (см. https://docs.docker.com/engine/admin/logging/overview/ а>)
Что здесь лучше всего? Я думаю, что использование подключаемого модуля журнала Docker отправит целое строковое сообщение в Graylog, а Graylog должен будет извлечь метаинформацию из этой строки (поэтому мне нужно предоставить эти метаданные в сообщение журнала, например, log_level). Это может привести к большему потреблению ресурсов на стороне серого журнала, а также невозможно настроить докер для отправки только сообщений об ошибках в серый журнал. Это приводит к большему сетевому трафику. Используя gelf-appender log4j2, я могу предоставить некоторые метаданные в дополнение к сообщению журнала, не включая их в основное сообщение журнала, и на стороне Graylog не потребуется извлечение. Также можно настроить, какие сообщения должны отправляться в Graylog с помощью log_level. Или я ошибаюсь? Какое лучшее решение или каковы плюсы и минусы каждого способа отправки журналов в Graylog?