Splunk

支持的管道类型:

  •  Data Collector

Splunk目标端使用Splunk HTTP Event Collector(HEC)将数据写入Splunk。

目标端使用JSON数据格式将HTTP POST请求发送到HEC端点。目标端为每个批次生成一个HTTP请求,一次发送多个记录。每个记录都必须包含事件数据,并可选地包含Splunk要求的格式的事件元数据 。

在配置目标端之前,必须完成几个先决条件,包括在Splunk中启用HEC和创建HEC身份验证令牌。

配置Splunk目标端时,需要提供Splunk API端点和HEC身份验证令牌。您可以配置超时,请求传输编码和身份验证类型。您可以将目标端配置为使用Gzip或Snappy压缩格式来写入数据。您可以选择使用HTTP代理并配置SSL/TLS属性。

您还可以配置目标端以记录请求和响应信息。

先决条件

在写信给Splunk之前,您必须完成以下先决条件:

启用HTTP Event Collector(HEC)
默认情况下,Splunk中的HEC被禁用。如Splunk文档中所述启用HEC。
创建一个HTTP Event Collector(HEC)令牌
要将数据发送到HEC,Splunk目标端必须使用令牌对运行HEC的Splunk服务器进行身份验证。如Splunk文档中所述创建HEC令牌。
Data Collector中配置Splunk目标端时,请输入此令牌值。

所需记录格式

Splunk要求事件数据和元数据在记录中正确格式化。如果记录的格式不正确,则会发生错误,并且目标端无法写入Splunk。当使用Splunk目标端设计管道时,必须确保发送到目标端的记录使用必需的格式。

该记录必须包含一个/event字段,其中包含事件数据。/event字段可以是字符串,映射或列表映射字段。有关更多信息,请参阅Splunk文档中的事件数据

重要: Splunk目标端不支持原始事件。必须在/event字段中发送事件。

该记录可以选择包含事件元数据字段。Splunk包含几个可以包含在事件元数据中的预定义键。事件中不包括的所有元数据键值对均设置为Splunk服务器上为令牌定义的值。有关事件元数据中可以包含的键的列表,请参阅Splunk文档中的事件元数据

例如,以下记录包含三个键,这些键可以包含在事件元数据中,并且可以使用Map数据类型包含在/event字段中:

{
    "time": 1437522387,
    "host": "myserver.example.com",
    "source": "myapp",
    "event": { 
        "message": "Here is my message",
        "severity": "INFO"
    }
}

以下记录包括五个可以使用String数据类型包含在事件元数据和/event字段中的键:

{
    "time": 1426279439, // epoch time
    "host": "localhost",
    "source": "datasource",
    "sourcetype": "txt",
    "index": "main",
    "event": "Here is my event" 
}

记录请求和响应数据

Splunk目标端可以将请求和响应数据记录到Data Collector日志中。

启用日志记录时,可以配置以下属性:

Verbosity

要记录的消息中包括的数据类型:

  • Headers_Only – 包括请求和响应头。
  • Payload_Text – 包括请求和响应头以及任何文本有效载荷。
  • Payload_Any – 包括请求和响应头以及有效载荷,与类型无关。
Log Level
要包含在Data Collector日志中的消息级别。选择级别时,还将记录更高级别的消息。即,如果选择Warning日志级别,则将Severe和Warning消息写入Data Collector日志。
注意:Data Collector配置的日志级别可以限制所记录的详细信息级别。例如,如果将日志级别设置为Finest以记录详细的跟踪信息,但是将Data Collector配置为ERROR,则源端仅写入Severe级别的消息。
下表描述了启用日志记录所需的阶段日志级别和相应的Data Collector日志级别:

阶段日志级别 Data Collector 描述
Severe ERROR 仅显示严重故障的消息。
Warning WARN 消息警告潜在问题。
Info INFO 信息性消息。
Fine DEBUG 基本跟踪信息。
Finer DEBUG 详细的跟踪信息。
Finest TRACE 高度详细的跟踪信息。

此阶段记录器的名称为 com.streamsets.http.RequestLogger

Maximum entity size

写入日志的消息数据的最大大小。用于限制写入任何单个消息的Data Collector日志的数据量。

配置Splunk目标端

配置Splunk目标端,以使用Splunk HTTP事件收集器(HEC)将数据写入Splunk。

  1. 在“Properties”面板的“General选项卡上,配置以下属性:
    一般属性 描述
    Name 阶段名。
    Description 可选说明。
    Required Fields 必须包含用于将记录传递到阶段的记录的数据的字段。

    提示:您可能包括阶段使用的字段。

    根据为管道配置的错误处理,处理不包括所有必填字段的记录。

    Preconditions 必须评估为TRUE的条件才能使记录进入处理阶段。单击 添加以创建其他前提条件。

    根据为该阶段配置的错误处理,处理不满足所有前提条件的记录。

    On Record Error 该阶段的错误记录处理:

    • Discard-放弃记录。
    • To Error-将记录发送到管道以进行错误处理。
    • Stop Pipeline-停止管道。
  2. 在“Splunk”选项卡上,配置以下属性:
    Splunk属性 描述
    Splunk API Endpoint Splunk API端点以以下格式输入:

    <protocol>://<host>:<port>

    例如:

    https://server.example.com:8088

    有关配置端点的更多信息,请参阅Splunk文档中的将数据发送到HEC

    Splunk Token 您为目标端创建的HEC令牌的值,如前提条件中所述。
  3. 在“HTTP”选项卡上,配置以下属性:
    HTTP属性 描述
    Request Transfer Encoding 使用以下编码类型之一:

    • Buffered-标准传输编码类型。
    • Chunked-分块传输数据。并非所有服务器都支持。

    默认为缓冲。

    HTTP Compression 消息的压缩格式:

    • None
    • Snappy
    • Gzip
    Connect Timeout 等待连接的最大毫秒数。

    使用0无限期等待。

    Read Timeout 等待数据的最大毫秒数。

    使用0无限期等待。

    Authentication Type 确定用于连接到服务器的身份验证类型:

    • None-不执行身份验证。
    • Basic-使用基本身份验证。需要用户名和密码。

      与HTTPS一起使用,以避免传递未加密的凭据。

    • Digest-使用摘要身份验证。需要用户名和密码。
    • Universal-建立匿名连接,然后在收到401状态和WWW-Authenticate标头请求后提供身份验证凭据。

      需要与基本或摘要身份验证关联的用户名和密码。

      仅用于响应此工作流程的服务器。

    • OAuth-使用OAuth 1.0身份验证。需要OAuth凭据。
    Use Proxy

    启用使用HTTP代理连接到系统。

  4. 要使用HTTP代理,请在“Proxy选项卡上,配置以下属性:
    HTTP代理属性 描述
    Proxy URI 代理URI。
    Username 代理用户名。
    Password 代理密码。

    提示: 要保护敏感信息(例如用户名和密码),可以使用运行时资源或凭据存储。
  5. 要使用SSL/TLS,请在“TLS”选项卡上配置以下属性:
    TLS属性 描述
    Use TLS 启用TLS的使用。
    Keystore File 密钥库文件的路径。输入文件的绝对路径或相对于Data Collector资源目录$SDC_RESOURCES的路径。

    有关环境变量的更多信息,请参阅《 Data Collector环境配置》。

    默认情况下,不使用任何密钥库。

    Keystore Type 要使用的密钥库的类型。使用以下类型之一:

    • Java Keystore File (JKS)
    • PKCS #12 (p12 file)

    默认值为Java Keystore File (JKS)。

    Keystore Password 密钥库文件的密码。密码是可选的,但建议使用。

    提示:要保护敏感信息(例如密码),可以使用运行时资源或凭据存储。
    Keystore Key Algorithm 用于管理密钥库的算法。

    默认值为 SunX509

    Truststore File 信任库文件的路径。输入文件的绝对路径或相对于Data Collector资源目录$SDC_RESOURCES的路径。

    有关环境变量的更多信息,请参阅《Data Collector环境配置》。

    默认情况下,不使用任何信任库。

    Truststore Type 要使用的信任库的类型。使用以下类型之一:

    • Java Keystore File (JKS)
    • PKCS #12 (p12 file)

    默认值为Java Keystore File (JKS)。

    Truststore Password 信任库文件的密码。密码是可选的,但建议使用。

    提示:要保护敏感信息(例如密码),可以使用运行时资源或凭据存储。
    Truststore Trust Algorithm 用于管理信任库的算法。

    默认值为SunX509

    Use Default Protocols 确定要使用的传输层安全性(TLS)协议。默认协议是TLSv1.2。要使用其他协议,请清除此选项。
    Transport Protocols 要使用的TLS协议。要使用默认TLSv1.2以外的协议,请单击“添加”图标并输入协议名称。您可以使用简单或批量编辑模式来添加协议。

    注意:较旧的协议不如TLSv1.2安全。
    Use Default Cipher Suites 对SSL/TLS握手使用默认的密码套件。要使用其他密码套件,请清除此选项。
    Cipher Suites 要使用的密码套件。要使用不属于默认密码集的密码套件,请单击“添加”图标并输入密码套件的名称。您可以使用简单或批量编辑模式来添加密码套件。

    输入要使用的其他密码套件的Java Secure Socket Extension (JSSE)名称。

  6. 在“Logging录”选项卡上,配置以下属性以记录请求和响应数据:
    日志属性 描述
    Enable Request Logging 启用记录请求和响应数据。
    Log Level 要记录的详细信息级别。选择一个可用选项。

    以下列表是从最低到最高的日志记录顺序。选择级别时,由所选级别之上的级别生成的消息也将写入日志:

    • Severe-仅指示严重故障的消息。
    • Warning-消息警告潜在问题。
    • Info-信息性消息。
    • Fine-基本跟踪信息。
    • Finer-详细的跟踪信息。
    • Finest-高度详细的跟踪信息。
    注意:Data Collector配置的日志级别可以限制阶段写入的消息级别。验证Data Collector日志级别是否支持您要使用的级别。
    Verbosity

    要记录的消息中包括的数据类型:

    • Headers_Only-包括请求和响应头。
    • Payload_Text-包括请求和响应头以及任何文本有效载荷。
    • Payload_Any-包括请求和响应头以及有效载荷,与类型无关。
    Max Entity Size

    写入日志的消息数据的最大大小。用于限制写入任何单个消息的Data Collector日志的数据量。