in_http插件允许使用HTTP协议来采集日志事件。这个插件会建立一个支持REST风格的HTTP端点,来接收日志事件请求。
【配置示例】
以下片段展示了in_http插件的简单用法。
<source>
@type http
port 9880
bind 0.0.0.0
body_size_limit 32m
keepalive_timeout 10s
</source>
【基本用法】
如果已经建立了一个使用in_http插件的Fluentd节点,我们可以通过发送post请求向这个节点发送日志记录。比如:
# Post a record with the tag "app.log"
$ curl -X POST -d 'json={"foo":"bar"}' http://localhost:9880/app.log
这里,通过uri来指定日志事件的tag,通过post消息体来传递日志数据,
其中"json="指明了日志的封装格式。
默认情况下,日志事件的时间戳字段会在in_http收到日志数据后被添加上。可以通过在url中指定time参数来设置时间戳。比如:
# Overwrite the timestamp to 2018-02-16 04:40:37.3137116
$ curl -X POST -d 'json={"foo":"bar"}' \
http://localhost:9880/test.tag?time=1518756037.3137116
下边是另一个示例,使用js来发送日志记录。
// Post a record using XMLHttpRequest
var form = new FormData();
form.set('json', JSON.stringify({"foo": "bar"}));
var req = new XMLHttpRequest();
req.open('POST', 'http://localhost:9880/debug.log');
req.send(form);
我们可以看到,通过这种方式,任何基于HTTP的应用程序都可以使用Fluentd作为日志服务。
【参数说明】
in_http支持通用参数。还支持以下参数:
【常见问题】
【性能优化】
【错误排查】