;客户;流利一些

流利一点洛基输出

流利一些是一个快速、轻量级的日志和度量处理器和货代,可以配置了吗Grafana洛基输出插件船日志洛基。您可以定义您想要收集日志文件使用尾巴Stdin数据管道输入。此外,流利一点支持多个过滤器解析器插件(Kubernetes,JSON等)结构和改变日志行。

使用

码头工人

您可以运行流畅一些容器与洛基输出插件使用我们预装码头工人中心图片:

码头工人运行- v /var/log: / var / log \ - e LOG_PATH = " / var / log / *。日志”- e LOKI_URL = " http://localhost: 3100 /洛基/ api / v1 /推动“\ grafana / fluent-bit-plugin-loki:最新

Kubernetes

你可以流利的一样运行Daemonset收集你所有Kubernetes工作日志。

您可以使用我们的流利一些执掌图表:

执掌回购添加grafana https://grafana.github。io / helm-charts执掌回购更新执掌升级——安装fluent-bit grafana loki.serviceName = loki.svc.cluster.local / fluent-bit \——集

默认情况下它会收集所有容器日志和从Kubernetes API(提取标签container_name,名称空间等. .)。

或者你可以安装洛基和流利的一起使用:

执掌升级——安装loki-stack grafana / loki-stack \——设置fluent-bit.enabled = true, promtail.enabled = false

AWS弹性容器服务(ECS)

您可以使用fluent-bit洛基码头工人形象Firelens路由器登录AWS ECS。为更多的信息关于这个看到我们AWS的文档

当地的

首先,您需要遵循指令为了构建插件动态库。

假设你有流利的安装在您的美元的路径您可以运行这个插件使用:

fluent-bit - e /道路/ /建造/ out_grafana_loki。所以- c fluent-bit.conf

你也可以适应你的插件。相依,消除需要更改命令行选项:

(插件)路径/道路/ /建造/ out_grafana_loki.so

配置选项

关键 描述 默认的
Url 洛基服务器API端点Url。 http://localhost: 3100 /洛基/ api / v1 /推动
TenantID 租户ID使用默认情况下将日志洛基。如果省略或空它假定洛基运行在单租户模式也没有X-Scope-OrgID头被发送。 ”“
BatchWait 时间等待发送日志批量洛基,完整。 1
BatchSize 日志批量发送日志大小批量洛基(单位:字节)。 10简约(10 * 1024字节)
超时 最长时间等待洛基服务器响应请求。 十年代
MinBackoff 重试之间的初始补偿时间。 500毫秒
MaxBackoff 重试之间的最大补偿时间。 5米
MaxRetries 最大数量的重试发送批次。设置它0将无限期重试。 10
标签 标签API请求。 {工作= " fluent-bit "}
LogLevel LogLevel插件日志记录器。 “信息”
RemoveKeys 指定删除键。 没有一个
AutoKubernetesLabels 如果设置为真,它将所有Kubernetes标签添加到洛基标签
LabelKeys 使用逗号分隔的列表关键流标签。所有其他键将被放置到日志。LabelKeys使用时失效LabelMapPath标签映射配置。 没有一个
LineFormat 格式使用压扁时记录日志。有效值是“json”或“key_value”。如果设置为“json”日志行发送到洛基将fluentd记录(不含任何键提取出标签)倾倒为json。如果设置为“key_value”,日志将记录中的每一项连接在一起(由一个空格分隔)格式 = json
DropSingleKey 如果设置为true,后提取label_keys只有剩下一个键,记录日志行发送到洛基就是记录键的值。 真正的
LabelMapPath json文件路径定义如何将嵌套的记录。 没有一个
缓冲 使缓冲机制
BufferType 指定要使用的缓冲机制(目前只实现dque)。 dque
DqueDir 目录路径排队日志 / tmp / flb-storage /洛基
DqueSegmentSize 段每段尺寸的数量的记录 500年
DqueSync 是否fsync每个队列的变化。与“正常”指定没有fsync, fsync与“完整”。 “正常”
DqueName 每个输出队列名称,必须uniq dque

标签

标签是用来查询日志{container_name = " nginx ",集群=“us-west1”},他们通常是关于工作负载产生的元数据日志流(实例,container_name,地区,集群,水平)。在洛基标签索引结果你应该谨慎选择时(高基数标签值性能的影响)。

您可以使用标签,RemoveKeys,LabelKeysLabelMapPath如何输出插件将执行标签提取。

AutoKubernetesLabels

如果设置为真,它将自动添加所有Kubernetes标签洛基标签和忽略参数LabelKeys,LabelMapPath。

LabelMapPath

当使用解析器过滤器插件流利一点可以提取并将数据添加到当前的记录/日志数据。虽然洛基标签是键值对,记录数据可以嵌套结构。你可以通过JSON文件,它定义了如何从每个记录中提取标签。每个json键从文件将与日志记录找到匹配的标签值。值配置作为标签的名字。

考虑下面的记录:

{" kubernetes ": {“container_name”:“promtail”、“pod_name”:“promtail-xxx”、“namespace_name”:“刺激”,“标签”:{“团队”:“x战警”}},“主机名”:“docker-desktop”、“日志”:“一个日志线”,“时间”:“20190926 t152206z”}

和LabelMap文件:

{" kubernetes ": {“container_name”:“容器”,“pod_name”:“豆荚”、“namespace_name”:“名称”、“标签”:{“团队”:“团队”}}}

提取的标签{团队=“x战警”,容器=“promtail”, pod =“promtail-xxx”,名称空间=“刺激”}

如果你不想要的kubernetes主机名字段出现在日志行可以使用RemoveKeys配置字段。(如。RemoveKeys kubernetes、主机名)。

缓冲

缓冲能力指的是存储记录的地方,虽然他们是加工和交付,仍然能够储存更多。洛基输出插件可以被洛基客户因为它的设计:

  • 如果BatchSize超过极限,输出插件暂停接收新记录,直到等待批成功发送到服务器
  • 如果洛基服务器无法访问(重试429年代,500年代和连接级错误),输出插件块新记录直到洛基服务器再次可用,等待批处理是成功发送到服务器或只要尝试的最大数量已经达到在退下配置机制

阻塞状态的输入插件是不可接受的,因为它可以有一个不受欢迎的副作用的一部分生成日志。流利一点实现了缓冲机制,基于并行处理。因此,它不能发送日志。有两种方法处理的无序的日志:

  • 配置洛基接受无序写入

  • 洛基输出插件配置为使用基于缓冲机制dque与洛基服务器,这是兼容的严格时间要求:

    [输出]名称grafana-loki匹配* Url http://localhost: 3100 /洛基/ api / v1 /推动缓冲真正DqueSegmentSize 8096 DqueDir / tmp / flb-storage /缓冲DqueName loki.0

配置示例

配置洛基fluent-bit.conf插件添加这部分输出

[输出]名称grafana-loki匹配* Url http://localhost: 3100 /洛基/ api / v1 /推动BatchWait 1 s BatchSize 30720 #(30简约)标签{测试=“fluent-bit-go lang =“Golang”} RemoveKeys key1, key2 LabelKeys key3, key4 LineFormat key_value
[输出]名称grafana-loki匹配* Url http://localhost: 3100 /洛基/ api / v1 /推动BatchWait 1 s BatchSize 30720 #(30简约)AutoKubernetesLabels真正RemoveKeys key1, key2

一个完整的示例配置文件也可以在洛基的存储库。

运行多个插件实例

您可以运行多个插件实例在同一fluent-bit过程,例如,如果你想把不同的洛基服务器登录不同的洛基租户id或路线。为此,添加额外的(输出)部分。