Splunk HttpEventCollectorLogbackAppender如何设置source和host?

10
我正在使用Splunk HttpEventCollectorLogbackAppender将应用程序日志自动发送到Splunk。我一直在尝试设置主机,来源和来源类型,但没有成功将它们发送到Splunk。请问是否可以使用Splunk HttpEventCollectorLogbackAppender 设置主机,来源或来源类型,如果可以,如何设置? 我一直在尝试发送JSON,但似乎没有起作用。这里是文档,告诉您哪些选项可用,并且说它们需要作为查询字符串传递,但由于我正在使用现成的Splunk appender,我不知道如何设置它们。 http://dev.splunk.com/view/event-collector/SP-CAAAE6P Splunk logback appender:
...
<!-- 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>
...

示例日志行

Logger logger = LoggerFactory.getLogger(MyClass.class);
logger.debug("I'm logging debug stuff"); 

可能会有帮助,如果您发布示例代码。 - Larry Shatzer
你读过这里的Java日志框架文档了吗:https://github.com/splunk/splunk-library-javalogging? - Larry Shatzer
1
@LarryShatzer 你打赌我有。很多次了。 - Catfish
2个回答

7
任何关于 HttpEventCollectorLogbackAppender 的设置器都可以添加到您的logback配置中。
因此,要调用 setHostsetSourcesetSourcetype,您需要像这样在logback配置中添加它们:
<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>

等一下,我现在用的是1.5.0版本,而你提供的链接是1.5.2版本。让我先更新一下再试试看。 - Catfish
什么是源码? - eureka19

0
您可以这样设置:在属性文件中替换MyAppender、MyIndex、MySource并配置URL和Token,如果使用小批量大小,则会丢失一些事件/日志,下面是最理想的配置,最高可达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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接