Jenkins 到 Splunk 通过将不同的源类型映射到不同的源(文件)来发送文件

Jenkins to Splunk send files by mapping different sourcetypes to different sources(files)

我需要将文件(例如:XML 和 CSV)从 Jenkins 发送到 Splunk。 为此, 我已经使用以下

集成了 Jenkins 和 Splunk

1) Splunk 中的 Jenkins 应用程序(Jenkins 的 Splunk 应用程序)

2) Jenkins 中的 Splunk 插件

在 Jenkins 中我已经这样配置 "Custom Metadata"

[Data Source->'logfile', Config Item-> 'Source Type', Value->'custom_xml_sourcetype' ] [Data Source->'logfile', Config Item-> 'Source Type', Value->'csv' ]

在 Splunk 中,索引文件(例如:a.xml 和 b.csv)具有相同的源类型 ->'custom_xml_sourcetype'。理想情况下,两者都需要映射到确切的源类型。应该是这样的

a.xml -> 'custom_xml_sourcetype'

b.csv->'csv'

但是,它是这样映射的,

a.xml -> 'custom_xml_sourcetype'

b.csv->'custom_xml_sourcetype'

不确定如何将源类型映射到源(文件)。 也没有可用的作业级别配置信息。

我的需求非常简单,可以让从 jenkins 构建工件生成的不同文件以不同的源类型进行 splunk。 Jenkins 配置为 Master -> Slave setup.

这在 Jenkin 的 Splunk 插件应用程序中可行吗,还是我应该采用不同的方法?

非常感谢。

索引不同的源类型,例如 .xml 到 Jenkins 的 Splunk 是不可能的,但是索引 key:value 格式的 .csv 或 .json 对是可能的自己的局限性。

这是由于 splunk 中的 HEC,它只监听一种源类型,而且它需要在 key:value 对中。 Jenkin's Splunk Plugin是一个代理,通过解析jenkin系统中的文件转发数据,如果文件的数据是key:value对,那么它们将在Json paylod中的events key中发送通过 HEC 到 SPLUNK 例如:{"events":"key:value"}.

但是如果文件的数据不是 key:value 对 ex: xml,那么就不能保证从 xml。因此,对于非 key:value 对源类型,jenkin 的 splunk 插件代理的数据提取将失败。

基本上,Splunk 的 HEC 在使用非 key:value 对源类型内容时的用例有限。 Jenkins 与 Splunk 之间的通信通过这种方式进行,对于索引所有具有不同文件格式的文件没有用。

解决方法: jenkins 端需要有转换脚本来将所有非 key:value 对转换为 key:value 对。这将有助于将适当的数据索引到 splunk 中,但同样不能将其映射到多个源类型。