2017-01-04 8 views
1

ドッカー作成ファイルをGELFプロトコルを使用してGraylogサーバーに書き込むようにしようとしています。 Graylogサーバーは、私は私のドッカーコンテナにJBossインスタンスにログインしたメッセージを受信Docker GELF追加フィールドのログ

 logging: 
     driver: gelf 
     options: 
     gelf-address: ${GELF_ADDRESS} 

:これは、次の構成(ドッカ-compose.ymlのスニペット)を使用して、正常に動作します。また、container_nameやimage_nameのような余分なGELFフィールドも追加されています。

私の質問は、追加のGELFフィールドを自分で追加することができますか? _usernameを余分なフィールドとして渡したい。私はこのフィールドを自分のMDCのコンテキストで利用できるようにしています。 私はこのロガーに以下を追加することで、私のCONSOLEロガーにフォーマッタ(変換パターン)を使用して、メッセージに情報を追加することができます。

%X{_user_name} 

しかし、それはになりますので、これは、私が欲しいものではありませんGELFメッセージフィールドは、別個の追加フィールドとして追加されません。

どのような考えですか?

答えて

0

現在のドッカー作成バージョン(1.8.0)では、余分なフィールドを含めることができないようです。

docker-composeファイルからロギング設定を削除し、代わりにGELFロギングをドッカーコンテナのアプリケーションに統合しました。私は7としてのJBossを使用していますので、ここで説明したように、私は手順を使用している:

<custom-handler name="GelfLogger" class="biz.paluch.logging.gelf.jboss7.JBoss7GelfLogHandler" module="biz.paluch.logging"> 
<level name="INFO" /> 
<properties> 
    <property name="host" value="udp:${GRAYLOG_HOST}" /> 
    <property name="port" value="${GRAYLOG_PORT}" /> 
    <property name="version" value="1.1" /> 
    <property name="additionalFields" value="dockerContainer=${HOSTNAME}" /> 
    <property name="includeFullMdc" value="true" /> 
</properties> 

フィールドdockerContainerが置換されている:http://logging.paluch.biz/examples/jbossas7.html

をコンテナIDを記録するために、私は以下の構成を追加しましたドッカーコンテナのHOSTNAME環境変数で囲み​​、containerIdを含みます。他のプレースホルダは、docker-compose環境変数に置き換えられます。

完全なMDCを含めることで、追加のGELFフィールドとしてユーザー名(およびその他のフィールド)を配置することができました。 (MDCの詳細については、http://logback.qos.ch/manual/mdc.htmlを参照してください)

+0

gelfドライバが作成時間、画像.....のように提供する他のフィールドを取得できましたか? 私はcomposeファイルで定義された値を持つcomposeのフィールドをgelfに追加する方法を知っています。ランタイムから値を追加したいので、それはあなたには役に立ちません。 – herm

関連する問題