help request: Loki instance external to cluster returning 404

未关闭
#1,344 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 2 天内回复

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
helm, kubernetes

调研方向

从 charts/fluent-operator/templates/fluentbit-output-loki.yaml 开始,并将其与根据提供的 custom-values.yml 生成的 fluent-bit-config secret 进行比较。检查 Loki 输出设置的渲染方式,尤其是 uri,然后针对外部 Loki 端点验证生成的配置,并确认日志推送不再返回 404。

由索引模型根据 Issue 内容生成。

描述

Describe the issue

Hi,
I am trying to forward logs to a Loki instance outside of the Kubernetes cluster. I get the below 404 error in the fluent-bit container logs.
[error] [output:loki:loki.0] logging-dev.example.com:443, HTTP status=404
404 page not found

A default Loki install returns a 404 at logging-dev.example.com

I have used curl to access the Loki API from the fluent-bit debug container successfully.

I noticed the uri parameter doesn't exist when i export the fluent-bit-config secret and it isn't defined in fluentbit-output-loki.yaml . Could this be part of the issue?

How did you install fluent operator?

helm install -f custom-values.yml fluent-operator --create-namespace -n fluent-operator charts/fluent-operator/

custom-values.yml

containerRuntime: containerd

operator:

initcontainer:

    repository: "docker"

    tag: "27.2.1"

fluentbit:

crdsEnable: true

enable: true

image:

    repository: "ghcr.io/fluent/fluent-operator/fluent-bit"

    tag: "3.1.7-debug"

tls:

    verify: false

input:

    tail:

        enable: true

        refreshIntervalSeconds: 10

        memBufLimit: 100MB

        bufferMaxSize: ""

        path: "/var/log/containers/*.log"

        skipLongLines: true

        readFromHead: false

        storageType: memory

        pauseOnChunksOverlimit: "off"

    systemd:

        enable: true

        systemdFilter:

            enable: true

            filters: []

        path: "/var/log/journal"

        includeKubelet: true

        stripUnderscores: "off"

        storageType: memory

        pauseOnChunksOverlimit: "off"

output:

    loki:

        enable: true

        host: logging-dev.example.com

        port: 443

        uri: /loki/api/v1/push

        httpUser: user

        httpPassword: pass

Additional context

Output of fluent-bit-config secret:
[Service]

Http_Server    true

Parsers_File    /fluent-bit/etc/parsers.conf

Parsers_File    /fluent-bit/config/parsers_multiline.conf

[Input]

Name    systemd

Path    /var/log/journal

DB    /fluent-bit/tail/systemd.db

DB.Sync    Normal

Tag    service.*

Systemd_Filter    _SYSTEMD_UNIT=containerd.service

Systemd_Filter    _SYSTEMD_UNIT=kubelet.service

Strip_Underscores    off

storage.type    memory

[Input]

Name    tail

Path    /var/log/containers/*.log

Read_from_Head    false

Refresh_Interval    10

Skip_Long_Lines    true

DB    /fluent-bit/tail/pos.db

DB.Sync    Normal

Mem_Buf_Limit    100MB

Parser    cri

Tag    kube.*

storage.type    memory

[Filter]

Name    lua

Match    kube.*

script    /fluent-bit/config/containerd.lua

call    containerd

time_as_table    true

[Filter]

Name    kubernetes

Match    kube.*

Kube_URL    https://kubernetes.default.svc:443

Kube_CA_File    /var/run/secrets/kubernetes.io/serviceaccount/ca.crt

Kube_Token_File    /var/run/secrets/kubernetes.io/serviceaccount/token

Labels    false

Annotations    false

[Filter]

Name    nest

Match    kube.*

Operation    lift

Nested_under    kubernetes

Add_prefix    kubernetes_

[Filter]

Name    modify

Match    kube.*

Remove    stream

Remove    kubernetes_pod_id

Remove    kubernetes_host

Remove    kubernetes_container_hash

[Filter]

Name    nest

Match    kube.*

Operation    nest

Wildcard    kubernetes_*

Nest_under    kubernetes

Remove_prefix    kubernetes_

[Filter]

Name    lua

Match    service.*

script    /fluent-bit/config/systemd.lua

call    add_time

time_as_table    true

[Output]

Name    loki

Match_Regex    (?:kube|service)\.(.*)

host    logging-dev.example.com

port    443

http_user    user

http_passwd    pass
主要语言
Go
星标
689
派生
333
平均合并
2 天 14 小时
30 天内合并 PR
41

环境准备

在 Codespaces 中打开

在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

fluent/fluent-operator 的其他 Issue

查看 fluent/fluent-operator 的全部 Issue

相似的 Issue

更多 Go Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。