Estoy usando Splunk HttpEventCollectorLogbackAppender para enviar automáticamente registros de aplicaciones a Splunk. He intentado configurar el host, la fuente y el tipo de fuente, pero no tengo suerte para enviarlos a Splunk.

¿Es posible configurar el host, la fuente o el tipo de fuente utilizando Splunk HttpEventCollectorLogbackAppender y, de ser así, cómo lo hago?

He intentado enviar JSON y parece que no funciona.

Aquí está la documentación que le dice qué opciones están disponibles y dice que deben pasarse como una cadena de consulta, pero como estoy usando el appender de Splunk listo para usar, no estoy seguro de cómo configurarlas.

http://dev.splunk.com/view/event-collector/SP-CAAAE6P

Appender de logback de Splunk:

...
<!-- SPLUNK appender -->
  <appender name="SPLUNK" class="com.splunk.logging.HttpEventCollectorLogbackAppender">
    <url>http://myurl:8088</url>
    <token>mytoken</token>
    <disableCertificateValidation>true</disableCertificateValidation>
    <batch_size_count>1</batch_size_count>
    <layout class="ch.qos.logback.classic.PatternLayout">
      <pattern>%logger: %msg%n</pattern>
    </layout>
  </appender>

<root level="INFO">
  <appender-ref ref="SPLUNK"/>
</root>
...

Línea de registro de ejemplo

Logger logger = LoggerFactory.getLogger(MyClass.class);
logger.debug("I'm logging debug stuff"); 
10
Catfish 7 dic. 2016 a las 00:34
Podría ser útil publicar un código de ejemplo.
 – 
Larry Shatzer
7 dic. 2016 a las 17:26
¿Ha leído la documentación del marco de registro de Java en sí mismo aquí github.com/splunk/splunk-library- javalogging?
 – 
Larry Shatzer
8 dic. 2016 a las 18:33
1
Puedes apostar que tengo. Muchas veces.
 – 
Catfish
8 dic. 2016 a las 21:56

2 respuestas

La mejor respuesta

Cualquier setter en HttpEventCollectorLogbackAppender se puede agregar a su configuración de logback.

Entonces, para invocar setHost, setSource y setSourcetype, los agrega a su configuración de logback de esta manera:

<appender name="SPLUNK" class="com.splunk.logging.HttpEventCollectorLogbackAppender">
    <url>http://myurl:8088</url>
    <host>x</host>
    <source>y</source>
    <sourcetype>z</sourcetype>
    <token>mytoken</token>
    <disableCertificateValidation>true</disableCertificateValidation>
    <batch_size_count>1</batch_size_count>
    <layout class="ch.qos.logback.classic.PatternLayout">
        <pattern>%logger: %msg%n</pattern>
    </layout>
</appender>
6
roby 15 dic. 2016 a las 11:34
Espere, estoy en la versión 1.5.0 y se vinculó a la versión 1.5.2. Déjame actualizar y probarlo.
 – 
Catfish
3 feb. 2017 a las 00:46
¿Qué es la fuente?
 – 
eureka19
31 ago. 2018 a las 14:35

Puede configurar de esta manera: reemplace MyAppender, MyIndex, MySource y configure la URL y el Token en los archivos de propiedades, si usa el tamaño de lote pequeño, perdería algunos eventos / el registro a continuación es la configuración ideal de hasta 100 TPS

<Appender name="MYAppender"
    class="com.splunk.logging.HttpEventCollectorLogbackAppender">
    <url>${url}</url>
    <token>${token}</token>
    <index>MyIndex</index>
    <sourcetype>MySource</sourcetype>
    <eventBodySerializer>util.RawEventBodySerializer</eventBodySerializer>
    <disableCertificateValidation>true</disableCertificateValidation>
    <send_mode>parallel</send_mode>
    <batch_size_bytes>102400</batch_size_bytes>
    <batch_size_count>10</batch_size_count>
    <batch_interval>60000</batch_interval>
    <layout class="ch.qos.logback.classic.PatternLayout">
        <pattern>%m%n</pattern>
    </layout>
</Appender>
0
Palla 15 oct. 2020 a las 20:40