JBoss AS 7: ведение журнала на удаленный хост (logstash)

Хотя кажется простым настроить log4j для отправки журналов на удаленный хост (log4j: How to use SocketAppender ?) Я не могу найти способ сделать то же самое в JBoss (7.1.1) standalone.xml.

Я нашел способ заменить конфигурацию JBOss на строгое использование собственного log4j (JBoss AS 7: Ведение журнала ) но тогда пропадет удаленное переключение уровней лога - а для живой системы это не вариант.


person DLade    schedule 20.01.2014    source источник
comment
standalone.xml предназначен для ведения журнала jboss, а не для log4j. то, что вы связали, - это конфигурация приложения, а не конфигурация jboss. Кроме того, я не понимаю, что ваше утверждение об удаленном переключении уровней журнала будет потеряно, это не совсем так и совершенно не связано. В общем, я думаю, вы могли бы более подробно объяснить свое обоснование.   -  person eis    schedule 20.01.2014
comment
Может быть, вы могли бы начать с объяснения, почему вы думаете, что удаленное переключение уровней журнала будет потеряно   -  person eis    schedule 20.01.2014
comment
Как я уже сказал, если заменить конфигурацию JBOss на строгое использование собственного log4 (см. ссылку выше), LogLevel больше нельзя будет изменить через JMX - просто попробуйте.   -  person DLade    schedule 16.07.2014


Ответы (2)


В качестве альтернативы вы можете использовать logstash-gelf для отправки сообщений журнала в logstash (используя GELF). Вы более гибки, когда дело доходит до настраиваемых полей/данных MDC. Вам нужен дополнительный модуль, чтобы заставить его работать: http://search.maven.org/#artifactdetails%7Cbiz.paluch.logging%7Clogstash-gelf%7C1.3.2%7Cjar

        <custom-handler name="GelfLogger" class="biz.paluch.logging.gelf.jboss7.JBoss7GelfLogHandler" module="biz.paluch.logging">
            <level name="INFO"/>
            <properties>
                <property name="graylogHost" value="somehost"/>
                <property name="extractStackTrace" value="true"/>
                <property name="filterStackTrace" value="true"/>
                <property name="mdcProfiling" value="true"/>
                <property name="facility" value="JBoss Core"/>
                <property name="additionalFields" value="Environment=AT"/>
                <property name="mdcFields" value="Application,App.Version,remoteAddr,remoteUser,sessionId,requestUri,requestMethod,requestParams,Tracking.RootUser,Tracking.RootSessionId,Tracking.RootRequestId,WS.last.Request,WS.last.Response,WS.last.Endpoint"/>
            </properties>
        </custom-handler>
person mp911de    schedule 16.03.2014
comment
Я не уверен, но я думаю, что это было решение, которое мы предпочли. - person DLade; 16.07.2014

Если обновление до 7.2 является вариантом, вы можете использовать обработчик syslog в jboss как 7.2, я использую его в производстве с отличными результатами. Взгляните на https://docs.jboss.org/author/display/AS72/Logging+Configuration

Это будет выглядеть так:

            <syslog-handler name="SYSLOG">
                <level name="INFO"/>
                <hostname value="${jboss.bind.address}"/>
                <app-name value="JbossAS7"/>
                <server-address value="1.2.3.4"/>
            </syslog-handler>

Соответствует RFC-5424 и RFC-3164, поскольку в нем можно настроить средство.

person lifeonatrip    schedule 24.01.2014