Fluent Bit配置grafana-loki插件TLS认证报403问题求助
Fluent Bit grafana-loki插件TLS与认证配置403问题解决
问题复现状态
- 原生
loki输出插件配置TLS+基础认证可正常连通服务,但Grafana侧日志展示存在适配异常 - 切换为
grafana-loki输出插件后,无认证场景下日志投递、Grafana侧展示均正常 - 为
grafana-loki插件追加TLS开关、证书校验、HTTP基础认证参数后,请求持续返回403 Forbidden状态码,无法完成投递
可正常运行的原生loki插件配置
[OUTPUT] Name loki Match * Host my-collector-url-for-loki Port 443 Http_User m-user Http_Passwd some-token-value Labels job=fluentbit auto_kubernetes_labels on Tls On Tls.verify On
触发403的grafana-loki插件配置
[Output] Name grafana-loki Match * Url https://url-to-my-logs-collector TenantID "" BatchWait 1 BatchSize 1048576 Labels {job="test-fluent-bit"} RemoveKeys kubernetes,stream AutoKubernetesLabels false LabelMapPath /fluent-bit/etc/labelmap.json LineFormat json LogLevel warn # 以上配置无认证场景下运行正常 # 新增以下配置后返回403 Tls On Tls.verify On Http_User m-user Http_Passwd some-token-value
问题根因
grafana-loki和原生loki插件的配置参数不通用,直接套用原生插件的认证参数不会生效:
Http_User、Http_Passwd是原生loki插件的专属配置项,grafana-loki插件不会读取这两个参数,请求不会携带认证凭证,服务端鉴权不通过直接返回403- 当
Url字段使用https://前缀时,grafana-loki会自动启用TLS连接,不需要额外配置Tls On,部分Fluent Bit版本下重复声明该参数反而会触发连接逻辑异常
可正常运行的配置参考
基础认证场景
将用户名密码直接写入URL即可自动携带基础认证信息,HTTPS前缀自动启用TLS:
[Output] Name grafana-loki Match * # 格式为 https://用户名:密码@服务地址,密码含特殊字符需提前做URL编码 Url https://m-user:some-token-value@url-to-my-logs-collector TenantID "" BatchWait 1 BatchSize 1048576 Labels {job="test-fluent-bit"} RemoveKeys kubernetes,stream AutoKubernetesLabels false LabelMapPath /fluent-bit/etc/labelmap.json LineFormat json LogLevel warn # 公网可信证书场景可开启证书校验,自签证书场景需补充Tls.ca_file参数指定CA证书路径,或临时设为Off Tls.verify On
令牌/Bearer认证场景
如果使用Grafana Cloud等需要令牌认证的服务,可通过自定义请求头携带认证信息,不需要在URL中写用户名密码:
[Output] Name grafana-loki Match * Url https://url-to-my-logs-collector TenantID "" BatchWait 1 BatchSize 1048576 Labels {job="test-fluent-bit"} RemoveKeys kubernetes,stream AutoKubernetesLabels false LabelMapPath /fluent-bit/etc/labelmap.json LineFormat json LogLevel warn Tls.verify On # 替换为实际的Bearer令牌 Headers Authorization="Bearer 你的服务访问令牌"
内容的提问来源于stack exchange,提问作者hashguard
相关产品推荐
相关产品推荐

