Пользовательские поля драйвера Docker Gelf

Я вижу в документации Docker: https://docs.docker.com/config/containers/logging/gelf/

В GELF каждое сообщение журнала представляет собой словарь со следующими полями: ... любые настраиваемые поля, которые вы настраиваете самостоятельно

Означает ли это, что этот драйвер поддерживает настраиваемые поля?

Я хотел бы добавить среду пользовательского поля в каждое сообщение GELF. Как я могу это сделать?


person Piotr Kozlowski    schedule 29.10.2018    source источник


Ответы (2)


Вы отправляете сообщения GELF в Graylog в своем контейнере Docker? Если это так, формат Graylog GELF поддерживает настраиваемые поля. Чтобы предоставить настраиваемое поле, просто добавьте подчеркивание перед именем поля, как показано здесь. Если вы также заполните обязательные поля (см. ссылку на документ ниже), сообщение будет успешно проанализировано.

Дополнительное поле GELF

Дополнительные сведения см. в разделе GELF документации Graylog. Информация.

person Dan Torrey    schedule 14.11.2018

В документации действительно не очень ясно об этом, но, как объяснено здесь есть способ добавить дополнительные поля к вашему GELF-сообщению, который сработал для меня:

Вам нужно указать имя дополнительных полей, которые вы хотите добавить, с помощью параметра --log-opt env=..., а затем указать значения полей через вашу среду docker, например:

docker run --log-driver gelf --log-opt env=mycustomfield --log-opt gelf-address=udp://<your-domain>:12201 --env mycustomfield=mycustomvalue alpine echo hello world

Полученное сообщение журнала будет содержать дополнительное поле "mycustomfield": "mycustomvalue".

person benterris    schedule 29.05.2020