HTTP

http 输出插件允许将您的记录输出到 HTTP 端点。目前,该功能非常基础,它以 MessagePack(或JSON)格式的数据记录向 HTTP 端点发出 POST 请求。

Configuration Parameters

Key

Description

default

Host

目标 HTTP 服务的主机名或 IP 地址

127.0.0.1

HTTP_User

基本身份认证用户名

HTTP_Passwd

基本身份认证密码

Port

HTTP 服务的端口

80

Proxy

指定 HTTP 代理。该值的预期格式为 http://host:porthttps 协议的代理还不支持

URI

指定目标 Web 服务器 HTTP URI,如: /something

/

Format

指定要在 HTTP 请求正文中使用的数据格式,默认使用 msgpack。其它支持的格式是 json,json_stream,json_lines,gelf

msgpack

header_tag

为原始的消息标签指定一个可选的 HTTP 请求头

Header

添加 HTTP 请求头的键值对。可以设置多个

json_date_key

在输出中指定日期字段的名称

date

json_date_format

指定日期格式。支持的格式为 double,iso8601(如: 2018-05-30T09:39:52.000681Z)

double

gelf_timestamp_key

gelf 格式的数据格式指定 timestamp 的键

gelf_host_key

gelf 格式的数据格式指定 host 的键

gelf_short_messge_key

gelf 格式的数据格式指定 shortmessge 的键

gelf_full_message_key

gelf 格式的数据格式指定 fullmessge 的键

gelf_level_key

gelf 格式的数据格式指定 level 的键

TLS / SSL

http 输出插件支持 TLS/SSL,有关可用属性和配置的详细信息,请参阅 TLS/SSL 部分。

Getting Started

要将记录输出到 HTTP 服务器,您可以从命令行或通过配置文件运行插件:

Command Line

http 插件可以通过两种方式从命令行读取参数,通过 -p 参数或直接通过服务 URI 进行设置。URI 格式如下:

http://host:port/something

使用指定的格式,您可以通过以下方式启动 Fluent Bit:

$ fluent-bit -i cpu -t cpu -o http://192.168.2.3:80/something -m '*'

Configuration File

在您的主配置文件中,添加如下 InputOutput 配置段:

[INPUT]
    Name  cpu
    Tag   cpu

[OUTPUT]
    Name  http
    Match *
    Host  192.168.2.3
    Port  80
    URI   /something

默认情况下,URI 会成为输出记录的标签,原始标签值将被忽略。要保留标签,必须基于多个配置段并将其输出到不同的 URI。

我们还支持的另一种方式时在可配置的请求头中发送原始标签。接收方可以根据请求头字段执行所需的操作: 解析它并将其用作消息的标签。示例如下:

要配置此行为,请添加以下配置:

[OUTPUT]
    Name  http
    Match *
    Host  192.168.2.3
    Port  80
    URI   /something
    Format json
    header_tag  FLUENT-TAG

如果您使用 Fluentd 作为数据接收器,则可以使用 in_httpout_rewrite_tag_filter 来使用此 HTTP 请求头。

<source>
  @type http
  add_http_headers true
</source>

<match something>
  @type rewrite_tag_filter
  <rule>
    key HTTP_FLUENT_TAG
    pattern /^(.*)$/
    tag $1
  </rule>
</match>

请注意,我们使用自定义请求头覆盖了值为 URI 路径的标签。

Example : Add a header

[OUTPUT]
    Name           http
    Match          *
    Host           127.0.0.1
    Port           9000
    Header         X-Key-A Value_A
    Header         X-Key-B Value_B
    URI            /something

Example : Sumo Logic HTTP Collector

Sumo Logic 建议的配置是使用 iso8601 格式时间戳的 json_lines 格式记录。PrivateKey 指定用于配置的 HTTP 收集器。

[OUTPUT]
    Name             http
    Match            *
    Host             collectors.au.sumologic.com
    Port             443
    URI              /receiver/v1/http/[PrivateKey]
    Format           json_lines
    Json_date_key    timestamp
    Json_date_format iso8601

Sumo Logic 查询 CPU 输入插件的示例(需要 iso8601 日期格式的 json_lines 格式记录)如下:

_sourcecategory="my_fluent_bit"
| json "cpu_p" as cpu
| timeslice 1m
| max(cpu) as cpu group by _timeslice

Last updated