TCP Server

支持的管道类型:

  •  Data Collector

TCP Server源侦听指定的端口号,与启动TCP连接的客户端建立TCP会话,然后处理传入的数据。

源端可以以不同的模式运行。这些模式确定它可以处理的消息。它可以处理NetFlow消息或syslog消息。它还可以处理受支持的Data Collector数据格式,这些数据格式以指定字符分隔的数据形式传递,以带长度前缀的基于字符的数据形式传递,或在Flume事件中以Avro消息形式传递。

TCP Server可以同时处理来自多个客户端的数据,为每个客户端创建单独的批次,并在解析每个记录或提交每个批次后向原始客户端发送确认。您可以将源配置为在处理大量数据时使用多个线程来提高性能。在64位Linux系统上,您可以启用本地Epoll传输以进一步提高性能。

配置TCP Server源时,可以指定要使用的端口以及指示该源将接收的数据类型的TCP模式。然后,您可以配置与模式相关的属性,例如分隔记录的字符。

您可以选择配置要发送的确认以及源在关闭连接之前等待接收数据的时间。您还可以配置SSL/TLS属性,包括默认的传输协议和密码套件。

多线程处理

TCP Server源执行并行处理,并允许创建多线程管道。

启用多线程处理时,TCP Server源将根据“Number of Receiver Threads”属性使用多个并发线程。当启动管道时,源端将创建属性中指定的线程数。

当客户端启动TCP连接时,源端将建立TCP会话并等待数据。填充批次后,源端会将批次传递到可用的管道运行器。

管道运行器是无源管道实例 ——一种包括所有处理器、执行器和目标端的管道实例,并处理源端之后的所有管道处理逻辑。每个管道运行程序一次处理一批,就像在单个线程上运行的管道一样。当数据流变慢时,管道运行器会闲置等待,直到需要它们为止,并定期生成一个空批。您可以配置“Runner Idle Time”管道属性来指定间隔或选择退出空批次生成。

多线程管道保留每个批次中的记录顺序,就像单线程管道一样。但是由于批次是由不同的流水线处理程序处理的,因此无法确保将批次写入目标端的顺序。

例如,假设您启用了多线程处理并将“Number of Receiver Threads”属性设置为5。启动管道时,源将创建5个线程,而Data Collector将创建匹配数量的管道运行器。 接收到数据后,源端将批处理传递给每个管道运行器进行处理。

每个管道运行器执行与其余管道相关联的处理。将一批写入流水线目标后,流水线运行器将可用于另一批数据。每个批次都应尽快处理和写入,这与其他管道处理器处理的其他批次无关,因此,批次的写入方式可能与读取顺序不同。

在任何给定的时刻,五个管道运行器每个都可以处理一批,因此该多线程管道一次最多可以处理五个批次。当传入数据变慢时,管道运行器将处于空闲状态,并在数据流增加时立即可用。

有关多线程管道的更多信息,请参见《多线程管道概述》。

关闭无效数据的连接

当TCP Server源收到无效数据时,它将关闭与发送数据的TCP客户端的连接。它还会将数据传递到管道以进行错误处理。

例如,当您配置源端时,您可以指定最大记录大小。当TCP客户端发送的消息翻译成大于最大记录大小的消息时,源端将与客户端断开连接,并将消息传递给管道以进行错误处理。

类似地,假设将TCP Server源配置为处理XML数据。如果源端接收到无效的XML文档,它将与发送客户端断开连接,并将数据传递到管道以进行错误处理。

发送确认

您可以配置TCP Server源,以将确认(也称为acks)发送到源客户端。确认消息可以是简单的文本消息,例如“Ack”。或者,您可以使用表达式语言在邮件中包含其他信息。

源端可以发送两种类型的确认:

记录已处理的确认
当您配置记录处理的确认时,源在接收并处理每个记录后发送确认。在从传入数据中解析记录后,它将发送确认。
批次完成确认
当您配置批处理完成的确认时,源将在管道完成处理批处理后发送确认。批处理提交到所有目的地后,它将发送确认。

在消息中使用表达式

您可以使用Data Collector表达式语言来创建自定义确认消息。您可能使用表达式在消息中包括有关Data Collector、管道、记录或批次的信息。

例如,如果您有多个Data Collector处理来自同一客户端的数据,则可以使用以下经过处理的消息,以在消息中包括Data Collector主机名、管道标题以及记录标识符:

${record:value('/id')} was processed by Data Collector: ${sdc:hostname()}, 
pipeline: ${pipeline:title()}.

您可以设置时区以用于表达式返回的日期时间值。默认情况下,源端使用UTC。

注意:在批次完成消息中,record函数从批次中的最后一条记录返回信息。

您可以使用batchSize变量返回批次中包含的记录数。batchSize变量只能与TCP Server源一起使用,并且必须在消息中键入。batchSize变量未出现在表达式完成列表中。

例如,以下消息包括批次中的记录数,批次中最后一条记录的事务ID和执行处理的管道:

Pipeline: ${pipeline:title()} committed a batch whose last record was 
${record:value('/transactionID')} and included ${batchSize} messages.

TCP模式

根据选择的模式,TCP Server源处理数据的方式有所不同。源端提供以下模式:

NetFlow messages
TCP Server源可以处理NetFlow 5和NetFlow 9消息在处理NetFlow消息时,该阶段会根据NetFlow版本生成不同的记录。处理NetFlow 9时,将基于NetFlow 9配置属性生成记录。有关更多信息,请参见NetFlow数据处理。
要处理NetFlow消息,请将TCP模式属性设置为NetFlow。然后,对于NetFlow 9数据,在NetFlow 9选项卡上配置属性。NetFlow 5数据不需要其他配置。
syslog messages
TCP Server源服务器根据RFC 6587处理syslog消息,但源服务器不支持方法更改。
TCP Server源可以处理以下类型的系统日志消息:

  • RFC 5424
  • RFC 3164
  • 非标准通用消息,例如RFC 3339日期,没有版本数字
要处理系统日志消息,请将TCP模式属性设置为“syslog”并配置传输成帧模式。

重要说明:所有TCP客户端必须使用相同的传输成帧模式来传输数据。
使用以下传输成帧模式之一:

  • 八位字节计数-该帧指示syslog消息的长度,并包括消息的全部内容。
  • 非透明帧-帧包括系统日志消息和用户定义的尾随分隔符。源端使用分隔符创建记录。

    使用以下Java Unicode语法指定分隔符:

    \u<Unicode character code>

    要定义多个字符,只需将它们适当地分组列出即可,例如:

    \u<Unicode character code>\u<Unicode character code>\u<Unicode character code>

    例如,默认的分隔符为换行符,其Unicode字符代码为000A。要将其指定为分隔符,请输入\u000A.

Separated records
当数据由指定的记录分隔符分隔时,TCP Server源可以处理支持的Data Collector数据格式。
若要处理受支持的数据格式,请将“TCP Mode”属性设置为“Separated Records”,然后指定记录分隔符。然后,指定数据的数据格式并配置任何相关属性。

重要说明:所有TCP客户端必须使用相同的记录分隔符。
Character data with length prefix
当TCP Server源作为带有长度前缀的基于字符的数据传递时,可以处理受支持的Data Collector数据格式。
若要处理受支持的数据格式,请将“TCP Mode”属性设置为“Character Data with Length Prefix”,然后指定数据的字符集。然后,指定数据的数据格式并配置任何相关属性。
长度前缀由指示数据长度的数字和空格字符组成。要转换为记录的数据应紧跟空格字符。

注意:长度前缀必须采用单字节编码,例如UTF-8。数据可以是您在源端中指定的任何有效字符集。

例如,假设一个TCP客户端发送以下UTF-8数据:

11 hello world
长度前缀为“11”,表示要转换的数据为11个字节长。然后,源将以下11个字节“ hello world”转换为记录。

您可以使用此TCP模式来捕获原始syslog消息,这些消息以八位字节计数的形式放入字符串字段。

Flume Avro IPC Server
当以Flume Avro接收器中的Avro消息的形式在Flume事件中传递时,TCP Server源可以处理受支持的Data Collector数据格式。使用TCP Server源而不是HTTP Server源可以更有效地处理Flume事件。
若要处理受支持的数据格式,请将“TCP Mode”属性设置为“Flume Avro IPC Server”,然后配置其他“Bind Address”属性。然后,指定数据的数据格式并配置任何相关属性。

数据格式

在“Separated Record”或“Character Data with Length Prefix”TCP模式中,TCP Server源基于数据格式来处理数据。

当由适当的记录分隔符分隔时,源端也可以处理以下类型的数据:

Avro
为每个Avro记录生成一条记录。每个小数字段都包含 precisionscale 字段属性。
该阶段在avroSchema 记录头属性中包括Avro模式 。您可以使用以下方法之一来指定Avro模式定义的位置:

  • Message/Data Includes Schema -在文件中使用模式。
  • In Pipeline Configuration -使用您在阶段配置属性中提供的模式。
  • Confluent Schema Registry-从Confluent Schema Registry检索模式。Confluent Schema Registry是Avro模式的分布式存储层。您可以配置阶段以通过阶段配置中指定的模式ID或主题在Confluent Schema Registry中查找模式。
在阶段配置中使用模式或从Confluent Schema Registry检索模式会覆盖文件中可能包含的任何模式,并可以提高性能。
Binary
生成一条记录,在记录的根部有一个单字节数组字段。
当数据超过用户定义的最大数据大小时,源端将无法处理数据。因为未创建记录,所以源端无法将记录传递到管道以将其写为错误记录。相反,源端会产生阶段错误。
Delimited
为每个分隔的行生成一条记录。您可以使用以下分隔格式类型:

  • Default CSV-包含逗号分隔值的文件。忽略文件中的空行。
  • RFC4180 CSV-严格遵循RFC4180准则的逗号分隔文件。
  • MS Excel CSV -Microsoft Excel逗号分隔文件。
  • MySQL CSV -MySQL逗号分隔文件。
  • Tab-Separated Values -包含制表符分隔的值的文件。
  • PostgreSQL CSV -PostgreSQL逗号分隔文件。
  • PostgreSQL文本 -PostgreSQL文本文件。
  • Custom -使用用户定义的分隔符,转义符和引号字符的文件。
  • Multi Character Delimited-使用多个用户定义的字符分隔字段和行以及单个用户定义的转义和引号字符的文件。
您可以将列表或列表映射根字段类型用于分隔数据,并可以选择在标题行中包括字段名称(如有)。有关根字段类型的更多信息,请参见分隔数据根字段类型。
使用标题行时,可以启用对额外列的记录处理。额外列使用自定义的前缀和顺序递增的顺序整数,如命名 _extra_1, _extra_2。当您禁止额外列时,包含额外列的记录将发送到错误。
您也可以将字符串常量替换为空值。
当一条记录超过为该阶段定义的最大记录长度时,该阶段将根据为该阶段配置的错误处理来处理对象。
JSON
为每个JSON对象生成一条记录。您可以处理包含多个JSON对象或单个JSON数组的JSON文件。
当对象超过为源端定义的最大对象长度时,源端会根据为阶段配置的错误处理来处理对象。
Log
为每个日志行生成一条记录。
当一行超过用户定义的最大行时,源端将截断更长的行。
您可以将处理后的日志行作为字段包含在记录中。如果日志行被截断,并且您在记录中请求日志行,则源端包括被截断的行。
您可以定义要读取的日志格式或类型。
Protobuf
为每个protobuf消息生成一条记录。
Protobuf消息必须与指定的消息类型匹配,并在描述符文件中进行描述。
当记录数据超过1 MB时,源端将无法继续处理文件中的数据。源端根据文件错误处理属性处理文件,并继续读取下一个文件。
有关生成描述符文件的信息,请参阅Protobuf数据格式先决条件。
SDC Record
为每条记录生成一条记录。用于处理由Data Collector管道使用SDC记录数据格式生成的记录。
对于错误记录,源端提供从原始管道中的源端读取的原始记录,以及可用于更正记录的错误信息。
处理错误记录时,源端希望原始管道生成的错误文件名和内容。
Text
根据自定义分隔符为每行文本或每段文本生成一条记录。
当一条线或一段超出为源端定义的最大线长时,源端会截断它。源端添加了一个名为Truncated的布尔字段,以指示该行是否被截断。
有关使用自定义分隔符处理文本的更多信息,请参见使用自定义分隔符的文本数据格式。
XML
根据用户定义的分隔符元素生成记录。在根元素下直接使用XML元素或定义简化的XPath表达式。如果未定义分隔符元素,则源端会将XML文件视为单个记录。
默认情况下,生成的记录包括XML属性和名称空间声明作为记录中的字段。您可以配置阶段以将它们包括在记录中作为字段属性。
您可以在字段属性中包含每个解析的XML元素和XML属性的XPath信息。这还将每个名称空间放在xmlns记录头属性中。
注意: 只有在目标中使用SDC RPC数据格式时,字段属性和记录头属性才会自动写入目标系统。有关使用字段属性和记录头属性以及如何将它们包括在记录中的更多信息,请参见字段属性和记录头属性。
当记录超过用户定义的最大记录长度时,源端将跳过该记录并继续处理下一条记录。它将跳过的记录发送到管道以进行错误处理。
使用XML数据格式来处理有效的XML文档。有关XML处理的更多信息,请参见阅读和处理XML数据。
提示: 如果要处理无效的XML文档,则可以尝试将文本数据格式与自定义分隔符一起使用。有关更多信息,请参见 使用自定义分隔符处理XML数据。

配置TCP Server源

配置一个TCP Server源,以处理通过TCP/IP连接提供的数据。
  1. 在“Properties”面板的“General选项卡上,配置以下属性:
    一般属性 描述
    Name 阶段名。
    Description 可选说明。
    On Record Error 该阶段的错误记录处理:

    • Discard-放弃记录。
    • To Error-将记录发送到管道以进行错误处理。
    • Stop Pipeline-停止管道。
  2. 在“TCP”选项卡上,配置以下属性:
    TCP属性 描述
    Port 侦听数据的端口号。您可以指定多个端口号。

    注意:不能有其他管道或进程已绑定到侦听端口。侦听端口只能由单个管道使用。
    Bind Address 绑定地址。使用默认值0.0.0.0绑定到Data Collector计算机上的所有IPv4地址。

    仅与Flume Avro IPC Server TCP模式一起使用。

    Enable Native Transports (Epoll) 在64位Linux计算机上,启用对本机Epoll传输的使用。用于提高管道性能。
    Number of Receiver Threads 每个端口要使用的接收器线程数。例如,如果您为每个端口配置两个线程,并将源配置为使用三个端口,则源总共使用六个线程。

    此属性确定源生成并用于多线程处理的线程数。有关更多信息,请参见多线程处理。

    最小线程数为1。

    TCP Mode 要使用的TCP模式。选择以下选项之一:

    • NetFlow
    • syslog
    • Separated records-用于处理由分隔符分隔的受支持的Data Collector数据格式。
    • Character data with length prefix-用于处理作为具有长度前缀的字符数据传递的受支持的Data Collector数据格式。

      长度前缀必须采用单字节编码,例如UTF-8。有关更多信息,请参见TCP模式。

    • Flume Avro IPC Server-用于处理在Flume事件中作为Avro消息传递的受支持的Data Collector数据格式。
    Charset 要处理的数据的字符集。

    仅与基于字符的长度前缀TCP模式一起使用。

    Record Separator TCP客户端用于分隔记录的一个或多个字符。

    使用Java Unicode语法指定一个或多个字符,如下所示:\u<Unicode character code>。要指定多个字符,请对每个字符重复语法,如下所示: \u<Unicode character code>\u<Unicode character code>\u<Unicode character code>

    Max Batch Size (messages) 批量包含并一次通过管道的最大消息数。接受的值最高为 Data Collector的最大批处理大小。

    默认值是1000。

    Batch Wait Time (ms) 发送部分或空批次之前要等待的毫秒数。
    Max Message Size (bytes) 要转换为记录的最大消息大小(以字节为单位)。

    当消息大于最大消息大小时,源端将与原始客户端断开连接,并将记录传递到管道以进行错误处理。

    Charset 发送确认时使用的字符集。
    Ack Time Zone 用于确认消息的时区。函数返回的任何日期都将调整为指定的时区。
    Record Processed Ack Message 处理记录后发送的确认消息。配置后,源将在处理每个记录后发送一条消息。

    您可以使用表达式在消息中包括其他信息。有关更多信息,请参见在消息中使用表达式。

    默认情况下,不发送确认。

    Batch Completed Ack Message 处理一批后发送的确认消息。配置后,在将每批数据提交到所有目标之后,源将发送一条消息。

    您可以使用表达式在消息中包括其他信息。记录功能从批处理中的最后一条记录返回信息。有关更多信息,请参见 在消息中使用表达式。

    默认情况下,不发送确认。

    Read Timeout (seconds) 在不读取任何数据的情况下可以打开连接的时间。在这段空闲时间之后,Data Collector将关闭连接。以秒为单位指定。最小值为1,最大值为3600。

    默认值为300。

  3. 在以Syslog TCP模式处理数据时,在“Syslog” 选项卡上,配置以下属性:
    Syslog属性 描述
    Syslog Message Transfer Framing Mode TCP客户端用来传递数据的帧模式。使用以下选项之一:

    • Octet Counting-消息完全包含在帧中。
    • Non-transparent-framing-消息包括结尾分隔符,以指示消息的结尾。
    Non-transparent-framing Separator 一个或多个分隔符,用于分隔记录。

    使用Java Unicode语法指定一个或多个字符,如下所示:\u<Unicode character code>。要指定多个字符,请对每个字符重复语法,如下所示: \u<Unicode character code>\u<Unicode character code>\u<Unicode character code>

    仅与非透明帧模式一起使用。

    Charset 要处理的数据的字符编码。
  4. 在“Separated Record”,“Character Data with Length Prefix”或“Flume Avro IPC Server”TCP模式下处理数据时,请单击“Data Format选项卡并配置数据的数据格式
  5. 对于Avro数据,在“Data Format选项卡上,配置以下属性:
    Avro属性 描述
    Avro Schema Location 处理数据时要使用的Avro模式定义的位置:

    • Message/Data Includes Schema-在文件中使用模式。
    • In Pipeline Configuration-使用阶段配置中提供的模式。
    • Confluent Schema Registry-从Confluent Schema Registry检索模式。

    在阶段配置中或在Confluent Schema Registry中使用模式可以提高性能。

    Avro Schema 用于处理数据的Avro模式定义。覆盖与数据关联的任何现有模式定义。

    您可以选择使用该 runtime:loadResource函数来加载存储在运行时资源文件中的模式定义。

    Schema Registry URLs 用于查找模式的Confluent Schema Registry URL。要添加URL,请单击添加,然后以以下格式输入URL:

    http://<host name>:<port number>
    Basic Auth User Info 使用基本身份验证时连接到Confluent Schema Registry所需的用户信息。

    schema.registry.basic.auth.user.info使用以下格式从Schema Registry中的设置中输入密钥和机密 :

    <key>:<secret>
    提示: 要保护敏感信息(例如用户名和密码),可以使用运行时资源或凭据存储。
    Lookup Schema By 在Confluent Schema Registry中查找模式的方法:

    • Subject-查找指定的Avro模式主题。
    • Schema ID-查找指定的Avro schema ID。

    覆盖与数据关联的任何现有模式定义。

    Schema Subject Avro模式需要在Confluent Schema Registry中查找。

    如果指定的主题具有多个模式版本,则源使用该主题的最新模式版本。要使用旧版本,请找到相应的模式ID,然后将“Look Up Schema By属性设置为“Schema ID”。

    Schema ID 在Confluent Schema Registry中查找的Avro模式ID。
  6. 对于二进制数据,请在“Data Format选项卡上并配置以下属性:
    二进制属性 描述
    Max Data Size (bytes) 消息中的最大字节数。较大的消息无法处理或写入错误。
  7. 对于分隔数据,在“Data Format选项卡上,配置以下属性:
    分隔属性 描述
    Compression Format 文件的压缩格式:

    • None-仅处理未压缩的文件。
    • Compressed File-处理受支持的压缩格式压缩的文件。
    • Archive-处理通过支持的存档格式存档的文件。
    • Compressed Archive-处理通过支持的存档和压缩格式存档和压缩的文件。
    File Name Pattern within Compressed Directory 对于归档文件和压缩归档文件,使用文件名模式表示要在压缩目录中处理的文件。您可以使用UNIX样式的通配符,例如星号或问号。例如,*.json。

    默认值为*,它处理所有文件。

    Delimiter Format Type 分隔符格式类型。使用以下选项之一:

    • Default CSV-包含逗号分隔值的文件。忽略文件中的空行。
    • RFC4180 CSV-严格遵循RFC4180准则的逗号分隔文件。
    • MS Excel CSV -Microsoft Excel逗号分隔文件。
    • MySQL CSV -MySQL逗号分隔文件。
    • Tab-Separated Values -包含制表符分隔的值的文件。
    • PostgreSQL CSV -PostgreSQL逗号分隔文件。
    • PostgreSQL Text -PostgreSQL文本文件。
    • Custom -使用用户定义的分隔符,转义符和引号字符的文件。
    • Multi Character Delimited-使用多个用户定义的字符分隔字段和行以及单个用户定义的转义和引号字符的文件。
    Header Line 指示文件是否包含标题行以及是否使用标题行。
    Allow Extra Columns 使用标题行处理数据时,允许处理的记录列数超过标题行中的列数。
    Extra Column Prefix 用于任何其他列的前缀。额外的列使用前缀和顺序递增的整数来命名,如下所示: <prefix><integer>

    例如,_extra_1。默认值为 _extra_

    Max Record Length (chars) 记录的最大长度(以字符为单位)。较长的记录不会被读取。

    此属性可以受数据收集器解析器缓冲区大小的限制。有关更多信息,请参见最大记录大小。

    Delimiter Character 自定义分隔符格式的分隔符。选择一个可用选项,或使用“其他”输入自定义字符。

    您可以输入使用格式为Unicode控制符\uNNNN,其中N是数字0-9或字母AF十六进制数字。例如,输入 \u0000以使用空字符作为分隔符,或 \u2028使用行分隔符作为分隔符。

    默认为竖线字符(|)。

    Multi Character Field Delimiter 用于分隔多字符分隔符格式的字段的字符。

    默认值为两个竖线字符(||)。

    Multi Character Line Delimiter 以多字符分隔符格式分隔行或记录的字符。

    默认值为换行符(\ n)。

    Escape Character 自定义字符或多字符分隔符格式的转义字符。
    Quote Character 自定义或多字符分隔符格式的引号字符。
    Enable Comments 自定义分隔符格式允许注释的数据被忽略。
    Comment Marker 为自定义分隔符格式启用注释时,标记注释的字符。
    Ignore Empty Lines 对于自定义分隔符格式,允许忽略空行。
    Root Field Type 要使用的根字段类型:

    • List-Map-生成数据索引列表。使您能够使用标准功能来处理数据。用于新管道。
    • List-生成带有索引列表的记录,该列表带有标头和值的映射。需要使用分隔数据功能来处理数据。仅用于维护在1.1.0之前创建的管道。
    Lines to Skip 读取数据前要跳过的行数。
    Parse NULLs 将指定的字符串常量替换为空值。
    NULL Constant 代表空值的字符串常量。
    Charset 要处理的文件的字符编码。
    Ignore Control Characters 除去制表符,换行符和回车符以外的所有ASCII控制字符。
  8. 对于JSON数据,在“Data Format选项卡上,配置以下属性:
    JSON属性 描述
    Compression Format 文件的压缩格式:

    • None-仅处理未压缩的文件。
    • Compressed File-处理受支持的压缩格式压缩的文件。
    • Archive-处理通过支持的存档格式存档的文件。
    • Compressed Archive-处理通过支持的存档和压缩格式存档和压缩的文件。
    File Name Pattern within Compressed Directory 对于归档文件和压缩归档文件,使用文件名模式表示要在压缩目录中处理的文件。您可以使用UNIX样式的通配符,例如星号或问号。例如,*.json。

    默认值为*,它处理所有文件。

    JSON Content JSON内容的类型。使用以下选项之一:

    • Array of Objects
    • Multiple Objects
    Maximum Object Length (chars) JSON对象中的最大字符数。

    较长的对象将转移到管道以进行错误处理。

    此属性可以受Data Collector解析器缓冲区大小的限制。有关更多信息,请参见最大记录大小。

    Charset 要处理的文件的字符编码。
    Ignore Control Characters 除去制表符,换行符和回车符以外的所有ASCII控制字符。
  9. 对于日志数据,在“Data Format选项卡上,配置以下属性:
    日志属性 描述
    Log Format 日志文件的格式。使用以下选项之一:

    • 通用日志格式
    • 合并日志格式
    • Apache错误日志格式
    • Apache访问日志自定义格式
    • 正则表达式
    • Grok模式
    • Log4j
    • 通用事件格式(CEF)
    • 日志事件扩展格式(LEEF)
    Max Line Length 日志行的最大长度。源端将截断较长的行。

    此属性可以受数据收集器解析器缓冲区大小的限制。有关更多信息,请参见最大记录大小。

    Retain Original Line 确定如何处理原始日志行。选择将原始日志行作为字段包含在结果记录中。

    默认情况下,原始行被丢弃。

    Charset 要处理的文件的字符编码。
    Ignore Control Characters 除去制表符,换行符和回车符以外的所有ASCII控制字符。
    • 当选择“Apache访问日志自定义格式”时,请使用Apache日志格式字符串定义“Custom Log Format
    • 选择“正则表达式”时,输入描述日志格式的正则表达式,然后将要包括的字段映射到每个正则表达式组。
    • 选择Grok Pattern时,可以使用 Grok Pattern Definition字段定义自定义grok模式。您可以在每行上定义一个模式。

      在 Grok Pattern字段中,输入用于解析日志的模式。您可以使用预定义的grok模式,也可以使用Grok Pattern Definition中定义的模式创建自定义grok模式 。

      有关定义grok模式和支持的grok模式的更多信息,请参见定义Grok模式。

    • 选择Log4j时,定义以下属性:
      Log4j属性 描述
      On Parse Error 确定如何处理无法解析的信息:

      • Skip and Log Error-跳过读取行并记录阶段错误。
      • Skip, No Error-跳过读取行并且不记录错误。
      • Include as Stack Trace-包含无法解析为先前读取的日志行的堆栈跟踪的信息。该信息将添加到最后一个有效日志行的消息字段中。
      Use Custom Log Format 允许您定义自定义日志格式。
      Custom Log4J Format 使用log4j变量定义自定义日志格式。
  10. 对于protobuf数据,在“Data Format选项卡上,配置以下属性:
    Protobuf属性 描述
    Compression Format 文件的压缩格式:

    • None-仅处理未压缩的文件。
    • Compressed File-处理受支持的压缩格式压缩的文件。
    • Archive-处理通过支持的存档格式存档的文件。
    • Compressed Archive-处理通过支持的存档和压缩格式存档和压缩的文件。
    File Name Pattern within Compressed Directory 对于归档文件和压缩归档文件,使用文件名模式表示要在压缩目录中处理的文件。您可以使用UNIX样式的通配符,例如星号或问号。例如,*.json。

    默认值为*,它处理所有文件。

    Protobuf Descriptor File 要使用的描述符文件(.desc)。描述符文件必须位于Data Collector资源目录中$SDC_RESOURCES

    有关环境变量的更多信息,请参阅《 Data Collector环境配置》。有关生成描述符文件的信息,请参阅Protobuf数据格式先决条件。

    Message Type 读取数据时使用的消息类型的全限定名称。

    使用以下格式: <package name>.<message type>

    使用在描述符文件中定义的消息类型。

    Delimited Messages 指示一个文件是否可能包含多个protobuf消息。
  11. 对于文本数据,在“Data Format选项卡上,配置以下属性:
    文字属性 描述
    Compression Format 文件的压缩格式:

    • None-仅处理未压缩的文件。
    • Compressed File-处理受支持的压缩格式压缩的文件。
    • Archive-处理通过支持的存档格式存档的文件。
    • Compressed Archive-处理通过支持的存档和压缩格式存档和压缩的文件。
    File Name Pattern within Compressed Directory 对于归档文件和压缩归档文件,使用文件名模式表示要在压缩目录中处理的文件。您可以使用UNIX样式的通配符,例如星号或问号。例如,*.json。

    默认值为*,它处理所有文件。

    Max Line Length 一行中允许的最大字符数。较长的行被截断。

    在记录中添加一个布尔字段,以指示该记录是否被截断。字段名称为“Truncated”。

    此属性可以受数据收集器解析器缓冲区大小的限制。有关更多信息,请参见最大记录大小。

    Use Custom Delimiter 使用自定义分隔符来定义记录而不是换行符。
    Custom Delimiter 用于定义记录的一个或多个字符。
    Include Custom Delimiter 在记录中包括分隔符。
    Charset 要处理的文件的字符编码。
    Ignore Control Characters 除去制表符,换行符和回车符以外的所有ASCII控制字符。
  12. 对于XML数据,在“Data Format选项卡上,配置以下属性:
    XML属性 描述
    Compression Format 文件的压缩格式:

    • None-仅处理未压缩的文件。
    • Compressed File-处理受支持的压缩格式压缩的文件。
    • Archive-处理通过支持的存档格式存档的文件。
    • Compressed Archive-处理通过支持的存档和压缩格式存档和压缩的文件。
    File Name Pattern within Compressed Directory 对于归档文件和压缩归档文件,使用文件名模式表示要在压缩目录中处理的文件。您可以使用UNIX样式的通配符,例如星号或问号。例如,*.json。

    默认值为*,它处理所有文件。

    Delimiter Element

    用于生成记录的分隔符。省略分隔符会将整个XML文档视为一条记录。使用以下之一:

    • 在根元素下方的XML元素。

      使用不带尖括号(<>)的XML元素名称。例如,用msg代替<msg>。

    • 一个简化的XPath表达式,指定要使用的数据。

      使用简化的XPath表达式访问XML文档中更深的数据或需要更复杂访问方法的数据。

      有关有效语法的更多信息,请参见简化的XPath语法。

    Include Field XPaths 在字段属性中包括每个解析的XML元素的XPath和XML属性。还包括xmlns记录头属性中的每个名称空间。

    如果未选中,则此信息不包含在记录中。默认情况下,未选择该属性。

    注意: 只有在目标中使用SDC RPC数据格式时,字段属性和记录头属性才会自动写入目标系统。有关使用字段属性和记录标题属性以及如何将它们包括在记录中的更多信息,请参见字段属性和记录标题属性。
    Namespaces 解析XML文档时使用的命名空间前缀和URI。当所使用的XML元素包含名称空间前缀或XPath表达式包含名称空间时,定义名称空间。

    有关将名称空间与XML元素一起使用的信息,请参见将XML元素与名称空间一起使用。

    有关将名称空间与XPath表达式一起使用的信息,请参阅将XPath表达式与名称空间一起使用。

    使用简单或批量编辑模式,单击添加图标以添加其他名称空间。

    Output Field Attributes 在记录中包括XML属性和名称空间声明作为字段属性。如果未选择,则XML属性和名称空间声明作为字段包含在记录中。

    注意: 只有在目标中使用SDC RPC数据格式时,字段属性才会自动包含在写入目标系统的记录中。有关使用字段属性的更多信息,请参见字段属性。

    默认情况下,未选择该属性。

    Max Record Length (chars)

    记录中的最大字符数。较长的记录将转移到管道以进行错误处理。

    此属性可以受Data Collector解析器缓冲区大小的限制。有关更多信息,请参见最大记录大小。

    Charset 要处理的文件的字符编码。
    Ignore Control Characters 除去制表符,换行符和回车符以外的所有ASCII控制字符。
  13. 要使用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

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

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

    输入要使用的其他密码套件的Java安全套接字扩展(JSSE)名称。

  14. 对于NetFlow 9数据,在NetFlow 9选项卡上,配置以下属性:

    处理早期版本的NetFlow数据时,将忽略这些属性。

    Netflow 9属性 描述
    Record Generation Mode 确定要包含在记录中的值的类型。选择以下选项之一:

    • Raw Only
    • Interpreted Only
    • Both Raw and Interpreted
    Max Templates in Cache 模板缓存中存储的最大模板数。有关模板的更多信息,请参见缓存NetFlow 9模板。

    对于无限的缓存大小,默认值为-1。

    Template Cache Timeout (ms) 缓存空闲模板的最大毫秒数。超过指定时间未使用的模板将从缓存中逐出。有关模板的更多信息,请参见 缓存NetFlow 9模板。

    无限期缓存模板的默认值为-1。