土法炼钢兴趣小组的算法知识备份

【可观测性工程】日志管道:Fluent Bit、Vector、Logstash、Cribl 的取舍

文章导航

分类入口
architectureobservability
标签入口
#fluentbit#vector#logstash#cribl#log-pipeline#kubernetes#daemonset#backpressure#vrl#loki

目录

日志管道:Fluent Bit、Vector、Logstash、Cribl 的取舍

如果你问十个 SRE「可观测性栈中最容易出问题但最不受重视的组件是什么」,至少七个会回答「日志管道」。Metrics 有 Prometheus,Traces 有 OpenTelemetry——唯独日志管道二十年来从未统一。

一个 300 节点 Kubernetes 集群:DaemonSet 采集 + metadata 注入 + fan-out 到 Loki、ClickHouse、Kafka——看似 tail 文件然后 POST,却是故障率最高、监控覆盖最低的一层。本文从 Collect → Parse → Enrich → Filter → Route 五阶段拆解 Fluent Bit、Vector、Logstash、Cribl,覆盖 K8s DaemonSet 模式、背压(Backpressure)与 Fluent Bit vs Vector 假设模型对比(非自测 benchmark)。

前置:Logs 技术栈数据模型

日志管道五阶段架构

一、管道五阶段与失效模式

每一阶段独立失效;错误向下游放大为存储成本与排障盲区。

| 阶段 | 典型故障 | 检测信号 |
|------|----------|----------|
| Collect | tail 路径错、权限不足 | 吞吐归零 |
| Parse | multiline 截断 | ES/Loki 中残缺 stacktrace |
| Enrich | metadata 错绑 | 按 pod 过滤查不到 |
| Filter | 规则过宽丢 ERROR | 事故无日志 |
| Route | 下游单点挂 | output retry 飙升 |

1.1 Collect

工程要点:CRI 路径 /var/log/containers/*.log;DaemonSet 挂则整节点停采。

    **Fluent Bit**:tail + kubernetes filter。  
    **Vector**:kubernetes_logs source。

    **验证**:`kubectl logs -n logging daemonset/fluent-bit --tail=20` 无 error;Loki 查询 job=fluentbit 的 ERROR 流持续。

1.2 Parse

工程要点:JSON 优先;GroK CPU 随 capture group 线性恶化。

    **Fluent Bit**:tail + kubernetes filter。  
    **Vector**:remap/filter/route transform。

    **验证**:`kubectl logs -n logging daemonset/fluent-bit --tail=20` 无 error;Loki 查询 job=fluentbit 的 ERROR 流持续。

1.3 Enrich

工程要点:K8s watch RBAC;cache TTL 与 Pod churn Trade-off。

    **Fluent Bit**:grep/modify/loki output。  
    **Vector**:remap/filter/route transform。

    **验证**:`kubectl logs -n logging daemonset/fluent-bit --tail=20` 无 error;Loki 查询 job=fluentbit 的 ERROR 流持续。

1.4 Filter

工程要点:PII 在 Agent 脱敏;DEBUG 可 drop-on-pressure。

    **Fluent Bit**:grep/modify/loki output。  
    **Vector**:remap/filter/route transform。

    **验证**:`kubectl logs -n logging daemonset/fluent-bit --tail=20` 无 error;Loki 查询 job=fluentbit 的 ERROR 流持续。

1.5 Route

工程要点:单 Agent fan-out;禁止双 DaemonSet tail 同文件。

    **Fluent Bit**:grep/modify/loki output。  
    **Vector**:remap/filter/route transform。

    **验证**:`kubectl logs -n logging daemonset/fluent-bit --tail=20` 无 error;Loki 查询 job=fluentbit 的 ERROR 流持续。

二、Fluent Bit 架构与配置

CNCF Graduated;C 单进程 event loop;常驻内存通常 < 50MB(idle),高吞吐仍低于 Vector 峰值。

```yaml
[SERVICE]
    Flush         1
    storage.path  /var/log/flb-storage/
    storage.sync  normal
    storage.backlog.mem_limit 50M

[INPUT]
    Name              tail
    Path              /var/log/containers/*.log
    Parser            cri
    Tag               kube.*
    Refresh_Interval  5
    Mem_Buf_Limit     50MB
    storage.type      filesystem

[FILTER]
    Name         kubernetes
    Match        kube.*
    Merge_Log    On
    Keep_Log     Off

[OUTPUT]
    Name     loki
    Match    kube.*
    Host     loki-gateway
    Port     80
    Labels   job=fluentbit
```

2.x Fluent Bit 插件:tail

插件 tail:见 Fluent Bit 官方文档

    生产注意:
    - 限制 `Mem_Buf_Limit` 防 OOM
    - output 配置 `retry_limit` 与 storage 联动
    - 高 QPS 时调低 `Refresh_Interval`(tail)

    与 Loki 集成时 label 键必须低基数——见 [数据模型](../05-data-model/data-model.html) Loki chunk 一节。

2.x Fluent Bit 插件:systemd

插件 systemd:见 Fluent Bit 官方文档

    生产注意:
    - 限制 `Mem_Buf_Limit` 防 OOM
    - output 配置 `retry_limit` 与 storage 联动
    - 高 QPS 时调低 `Refresh_Interval`(tail)

    与 Loki 集成时 label 键必须低基数——见 [数据模型](../05-data-model/data-model.html) Loki chunk 一节。

2.x Fluent Bit 插件:forward

插件 forward:见 Fluent Bit 官方文档

    生产注意:
    - 限制 `Mem_Buf_Limit` 防 OOM
    - output 配置 `retry_limit` 与 storage 联动
    - 高 QPS 时调低 `Refresh_Interval`(tail)

    与 Loki 集成时 label 键必须低基数——见 [数据模型](../05-data-model/data-model.html) Loki chunk 一节。

2.x Fluent Bit 插件:kubernetes

插件 kubernetes:见 Fluent Bit 官方文档

    生产注意:
    - 限制 `Mem_Buf_Limit` 防 OOM
    - output 配置 `retry_limit` 与 storage 联动
    - 高 QPS 时调低 `Refresh_Interval`(tail)

    与 Loki 集成时 label 键必须低基数——见 [数据模型](../05-data-model/data-model.html) Loki chunk 一节。

2.x Fluent Bit 插件:grep

插件 grep:见 Fluent Bit 官方文档

    生产注意:
    - 限制 `Mem_Buf_Limit` 防 OOM
    - output 配置 `retry_limit` 与 storage 联动
    - 高 QPS 时调低 `Refresh_Interval`(tail)

    与 Loki 集成时 label 键必须低基数——见 [数据模型](../05-data-model/data-model.html) Loki chunk 一节。

2.x Fluent Bit 插件:modify

插件 modify:见 Fluent Bit 官方文档

    生产注意:
    - 限制 `Mem_Buf_Limit` 防 OOM
    - output 配置 `retry_limit` 与 storage 联动
    - 高 QPS 时调低 `Refresh_Interval`(tail)

    与 Loki 集成时 label 键必须低基数——见 [数据模型](../05-data-model/data-model.html) Loki chunk 一节。

2.x Fluent Bit 插件:multiline

插件 multiline:见 Fluent Bit 官方文档

    生产注意:
    - 限制 `Mem_Buf_Limit` 防 OOM
    - output 配置 `retry_limit` 与 storage 联动
    - 高 QPS 时调低 `Refresh_Interval`(tail)

    与 Loki 集成时 label 键必须低基数——见 [数据模型](../05-data-model/data-model.html) Loki chunk 一节。

2.x Fluent Bit 插件:loki

插件 loki:见 Fluent Bit 官方文档

    生产注意:
    - 限制 `Mem_Buf_Limit` 防 OOM
    - output 配置 `retry_limit` 与 storage 联动
    - 高 QPS 时调低 `Refresh_Interval`(tail)

    与 Loki 集成时 label 键必须低基数——见 [数据模型](../05-data-model/data-model.html) Loki chunk 一节。

2.x Fluent Bit 插件:kafka

插件 kafka:见 Fluent Bit 官方文档

    生产注意:
    - 限制 `Mem_Buf_Limit` 防 OOM
    - output 配置 `retry_limit` 与 storage 联动
    - 高 QPS 时调低 `Refresh_Interval`(tail)

    与 Loki 集成时 label 键必须低基数——见 [数据模型](../05-data-model/data-model.html) Loki chunk 一节。

2.x Fluent Bit 插件:opentelemetry

插件 opentelemetry:见 Fluent Bit 官方文档

    生产注意:
    - 限制 `Mem_Buf_Limit` 防 OOM
    - output 配置 `retry_limit` 与 storage 联动
    - 高 QPS 时调低 `Refresh_Interval`(tail)

    与 Loki 集成时 label 键必须低基数——见 [数据模型](../05-data-model/data-model.html) Loki chunk 一节。

三、Vector 架构与 VRL

Rust DAG:source → transform* → sink;disk buffer 带 checkpoint。

```yaml
sources:
  k8s_logs:
    type: kubernetes_logs
    auto_partial_merge: true

transforms:
  parse_json:
    type: remap
    inputs: [k8s_logs]
    source: |
      . = parse_json!(string!(.message)) ?? .
      .cluster = "prod"

sinks:
  loki:
    type: loki
    inputs: [parse_json]
    endpoint: http://loki:3100
    encoding:
      codec: json
    labels:
      job: vector
      namespace: "{{ kubernetes.pod_namespace }}"
```

3.x Vector Transform:remap

remap transform:编译期类型检查;VRL 表达式在 remap 中组合。

    VRL 示例(概念):
    ```vrl
    if .level == "DEBUG" { abort }
    .message = redact(.message, patterns: [r'\d{11}'])  # 11 位数字
    ```

    错误处理:VRL runtime error 默认 drop event——生产用 `??` 与 `log()` 兜底。

3.x Vector Transform:filter

filter transform:编译期类型检查;VRL 表达式在 filter 中组合。

    VRL 示例(概念):
    ```vrl
    if .level == "DEBUG" { abort }
    .message = redact(.message, patterns: [r'\d{11}'])  # 11 位数字
    ```

    错误处理:VRL runtime error 默认 drop event——生产用 `??` 与 `log()` 兜底。

3.x Vector Transform:route

route transform:编译期类型检查;VRL 表达式在 route 中组合。

    VRL 示例(概念):
    ```vrl
    if .level == "DEBUG" { abort }
    .message = redact(.message, patterns: [r'\d{11}'])  # 11 位数字
    ```

    错误处理:VRL runtime error 默认 drop event——生产用 `??` 与 `log()` 兜底。

3.x Vector Transform:reduce

reduce transform:编译期类型检查;VRL 表达式在 reduce 中组合。

    VRL 示例(概念):
    ```vrl
    if .level == "DEBUG" { abort }
    .message = redact(.message, patterns: [r'\d{11}'])  # 11 位数字
    ```

    错误处理:VRL runtime error 默认 drop event——生产用 `??` 与 `log()` 兜底。

3.x Vector Transform:throttle

throttle transform:编译期类型检查;VRL 表达式在 throttle 中组合。

    VRL 示例(概念):
    ```vrl
    if .level == "DEBUG" { abort }
    .message = redact(.message, patterns: [r'\d{11}'])  # 11 位数字
    ```

    错误处理:VRL runtime error 默认 drop event——生产用 `??` 与 `log()` 兜底。

3.x Vector Transform:sample

sample transform:编译期类型检查;VRL 表达式在 sample 中组合。

    VRL 示例(概念):
    ```vrl
    if .level == "DEBUG" { abort }
    .message = redact(.message, patterns: [r'\d{11}'])  # 11 位数字
    ```

    错误处理:VRL runtime error 默认 drop event——生产用 `??` 与 `log()` 兜底。

3.x Vector Transform:lua

lua transform:编译期类型检查;VRL 表达式在 lua 中组合。

    VRL 示例(概念):
    ```vrl
    if .level == "DEBUG" { abort }
    .message = redact(.message, patterns: [r'\d{11}'])  # 11 位数字
    ```

    错误处理:VRL runtime error 默认 drop event——生产用 `??` 与 `log()` 兜底。

3.x Vector Transform:log_to_metric

log_to_metric transform:编译期类型检查;VRL 表达式在 log_to_metric 中组合。

    VRL 示例(概念):
    ```vrl
    if .level == "DEBUG" { abort }
    .message = redact(.message, patterns: [r'\d{11}'])  # 11 位数字
    ```

    错误处理:VRL runtime error 默认 drop event——生产用 `??` 与 `log()` 兜底。

四、Fluent Bit vs Vector:假设模型对比

声明:以下为假设模型推导,非本文作者在本机复现的 benchmark。用于数量级选型,不可当作厂商 SLA。

![Fluent Bit vs Vector 资源对比(假设模型)](./fluentbit-vs-vector-benchmark.svg)

**统一假设**:
- 输入:nginx access log JSON,平均 450 bytes/行
- 负载:5000 行/s  sustained(单节点)
- 变换:JSON parse + 添加 5 个 metadata 字段
- 输出:HTTP 批量 POST(模拟 Loki push)
- 硬件:4 vCPU,8GB RAM,NVMe

| 指标 | Fluent Bit(假设) | Vector(假设) | 口径 |
|------|-------------------|----------------|------|
| CPU 占用 | 0.8–1.2 core | 0.4–0.7 core | 含 parse+output |
| RSS 内存 | 80–150 MB | 120–200 MB | 稳态 |
| 端到端 p99 延迟 | 2–5 s | 1–3 s | 含 batch 窗口 1s |
| 下游故障 10min | disk buffer 占 2GB 后 throttle | checkpoint 恢复无重复* | *at-least-once |

**解读**:
- Vector CPU 优势来自 Rust + 编译 VRL;Fluent Bit 胜在内存 footprint 与 K8s 成熟度。
- 若变换链 >10 个 regex,Vector 优势扩大;若仅 tail→Loki,Fluent Bit 足够。
- 应在你环境用 **相同 log 样本** 跑 24h 验证——替换上表假设值。

五、Logstash 与 Cribl

Logstash:JRuby + JVM,heap 1GB+;适合遗留 GroK 库。Elastic 推荐 Elastic Agent 做 edge 采集。

**Cribl Stream**:商业路由器;Splunk/ES 前过滤瘦身;Replay 调试。非采集器——常与 Fluent Bit/Beats 组合。

六、可靠性:Backpressure 与 Delivery 语义

策略 | 语义 | 风险 | |——|——|——| | drop | 可能丢 | ERROR 不可接受 | | memory buffer | at-most-once | OOM | | disk buffer | at-least-once | 写满磁盘 | | block input | 反压到应用 | 拖慢业务 |
**推荐**:ERROR/WARN disk buffer + 上限 + 告警;INFO 可 drop;DEBUG 默认不采。

```mermaid
flowchart LR
  IN[Input tail] --> BUF[Disk buffer capped]
  BUF --> OUT[Output Loki]
  OUT -->|fail| BUF
  BUF -->|full| DROP[Drop INFO / throttle]
```

七、Kubernetes DaemonSet 模式

yaml apiVersion: apps/v1 kind: DaemonSet metadata: name: fluent-bit namespace: logging spec: selector: matchLabels: app: fluent-bit template: spec: serviceAccountName: fluent-bit tolerations: - operator: Exists containers: - name: fluent-bit image: cr.fluentbit.io/fluent/fluent-bit:2.2 resources: limits: memory: 512Mi cpu: "1" requests: memory: 128Mi cpu: 100m volumeMounts: - name: varlog mountPath: /var/log - name: flb-storage mountPath: /var/log/flb-storage volumes: - name: varlog hostPath: path: /var/log - name: flb-storage emptyDir: sizeLimit: 10Gi

**注意**:`sizeLimit` 与 Fluent Bit `storage.total_limit_size` 对齐;`priorityClassName` 防 eviction。

7.1 DaemonSet 场景变体 #1

场景 1:混合 Linux/Windows 节点、GPU 节点 taint、Fargate(无 DaemonSet)等。

    - Fargate 用 sidecar 或 FireLens(Fluent Bit sidecar 模式)
    - GPU 节点:toleration + 独立 ConfigMap 降低 DEBUG 采样
    - 多集群:label `cluster` 必填,防 Loki tenant 混淆

    监控:`up{job="fluent-bit"}==0` 页面;`fluentbit_output_retries_failed_total` rate > 0 持续 5m 告警。

7.2 DaemonSet 场景变体 #2

场景 2:混合 Linux/Windows 节点、GPU 节点 taint、Fargate(无 DaemonSet)等。

    - Fargate 用 sidecar 或 FireLens(Fluent Bit sidecar 模式)
    - GPU 节点:toleration + 独立 ConfigMap 降低 DEBUG 采样
    - 多集群:label `cluster` 必填,防 Loki tenant 混淆

    监控:`up{job="fluent-bit"}==0` 页面;`fluentbit_output_retries_failed_total` rate > 0 持续 5m 告警。

7.3 DaemonSet 场景变体 #3

场景 3:混合 Linux/Windows 节点、GPU 节点 taint、Fargate(无 DaemonSet)等。

    - Fargate 用 sidecar 或 FireLens(Fluent Bit sidecar 模式)
    - GPU 节点:toleration + 独立 ConfigMap 降低 DEBUG 采样
    - 多集群:label `cluster` 必填,防 Loki tenant 混淆

    监控:`up{job="fluent-bit"}==0` 页面;`fluentbit_output_retries_failed_total` rate > 0 持续 5m 告警。

7.4 DaemonSet 场景变体 #4

场景 4:混合 Linux/Windows 节点、GPU 节点 taint、Fargate(无 DaemonSet)等。

    - Fargate 用 sidecar 或 FireLens(Fluent Bit sidecar 模式)
    - GPU 节点:toleration + 独立 ConfigMap 降低 DEBUG 采样
    - 多集群:label `cluster` 必填,防 Loki tenant 混淆

    监控:`up{job="fluent-bit"}==0` 页面;`fluentbit_output_retries_failed_total` rate > 0 持续 5m 告警。

7.5 DaemonSet 场景变体 #5

场景 5:混合 Linux/Windows 节点、GPU 节点 taint、Fargate(无 DaemonSet)等。

    - Fargate 用 sidecar 或 FireLens(Fluent Bit sidecar 模式)
    - GPU 节点:toleration + 独立 ConfigMap 降低 DEBUG 采样
    - 多集群:label `cluster` 必填,防 Loki tenant 混淆

    监控:`up{job="fluent-bit"}==0` 页面;`fluentbit_output_retries_failed_total` rate > 0 持续 5m 告警。

7.6 DaemonSet 场景变体 #6

场景 6:混合 Linux/Windows 节点、GPU 节点 taint、Fargate(无 DaemonSet)等。

    - Fargate 用 sidecar 或 FireLens(Fluent Bit sidecar 模式)
    - GPU 节点:toleration + 独立 ConfigMap 降低 DEBUG 采样
    - 多集群:label `cluster` 必填,防 Loki tenant 混淆

    监控:`up{job="fluent-bit"}==0` 页面;`fluentbit_output_retries_failed_total` rate > 0 持续 5m 告警。

7.7 DaemonSet 场景变体 #7

场景 7:混合 Linux/Windows 节点、GPU 节点 taint、Fargate(无 DaemonSet)等。

    - Fargate 用 sidecar 或 FireLens(Fluent Bit sidecar 模式)
    - GPU 节点:toleration + 独立 ConfigMap 降低 DEBUG 采样
    - 多集群:label `cluster` 必填,防 Loki tenant 混淆

    监控:`up{job="fluent-bit"}==0` 页面;`fluentbit_output_retries_failed_total` rate > 0 持续 5m 告警。

7.8 DaemonSet 场景变体 #8

场景 8:混合 Linux/Windows 节点、GPU 节点 taint、Fargate(无 DaemonSet)等。

    - Fargate 用 sidecar 或 FireLens(Fluent Bit sidecar 模式)
    - GPU 节点:toleration + 独立 ConfigMap 降低 DEBUG 采样
    - 多集群:label `cluster` 必填,防 Loki tenant 混淆

    监控:`up{job="fluent-bit"}==0` 页面;`fluentbit_output_retries_failed_total` rate > 0 持续 5m 告警。

7.9 DaemonSet 场景变体 #9

场景 9:混合 Linux/Windows 节点、GPU 节点 taint、Fargate(无 DaemonSet)等。

    - Fargate 用 sidecar 或 FireLens(Fluent Bit sidecar 模式)
    - GPU 节点:toleration + 独立 ConfigMap 降低 DEBUG 采样
    - 多集群:label `cluster` 必填,防 Loki tenant 混淆

    监控:`up{job="fluent-bit"}==0` 页面;`fluentbit_output_retries_failed_total` rate > 0 持续 5m 告警。

7.10 DaemonSet 场景变体 #10

场景 10:混合 Linux/Windows 节点、GPU 节点 taint、Fargate(无 DaemonSet)等。

    - Fargate 用 sidecar 或 FireLens(Fluent Bit sidecar 模式)
    - GPU 节点:toleration + 独立 ConfigMap 降低 DEBUG 采样
    - 多集群:label `cluster` 必填,防 Loki tenant 混淆

    监控:`up{job="fluent-bit"}==0` 页面;`fluentbit_output_retries_failed_total` rate > 0 持续 5m 告警。

7.11 DaemonSet 场景变体 #11

场景 11:混合 Linux/Windows 节点、GPU 节点 taint、Fargate(无 DaemonSet)等。

    - Fargate 用 sidecar 或 FireLens(Fluent Bit sidecar 模式)
    - GPU 节点:toleration + 独立 ConfigMap 降低 DEBUG 采样
    - 多集群:label `cluster` 必填,防 Loki tenant 混淆

    监控:`up{job="fluent-bit"}==0` 页面;`fluentbit_output_retries_failed_total` rate > 0 持续 5m 告警。

7.12 DaemonSet 场景变体 #12

场景 12:混合 Linux/Windows 节点、GPU 节点 taint、Fargate(无 DaemonSet)等。

    - Fargate 用 sidecar 或 FireLens(Fluent Bit sidecar 模式)
    - GPU 节点:toleration + 独立 ConfigMap 降低 DEBUG 采样
    - 多集群:label `cluster` 必填,防 Loki tenant 混淆

    监控:`up{job="fluent-bit"}==0` 页面;`fluentbit_output_retries_failed_total` rate > 0 持续 5m 告警。

7.13 DaemonSet 场景变体 #13

场景 13:混合 Linux/Windows 节点、GPU 节点 taint、Fargate(无 DaemonSet)等。

    - Fargate 用 sidecar 或 FireLens(Fluent Bit sidecar 模式)
    - GPU 节点:toleration + 独立 ConfigMap 降低 DEBUG 采样
    - 多集群:label `cluster` 必填,防 Loki tenant 混淆

    监控:`up{job="fluent-bit"}==0` 页面;`fluentbit_output_retries_failed_total` rate > 0 持续 5m 告警。

7.14 DaemonSet 场景变体 #14

场景 14:混合 Linux/Windows 节点、GPU 节点 taint、Fargate(无 DaemonSet)等。

    - Fargate 用 sidecar 或 FireLens(Fluent Bit sidecar 模式)
    - GPU 节点:toleration + 独立 ConfigMap 降低 DEBUG 采样
    - 多集群:label `cluster` 必填,防 Loki tenant 混淆

    监控:`up{job="fluent-bit"}==0` 页面;`fluentbit_output_retries_failed_total` rate > 0 持续 5m 告警。

7.15 DaemonSet 场景变体 #15

场景 15:混合 Linux/Windows 节点、GPU 节点 taint、Fargate(无 DaemonSet)等。

    - Fargate 用 sidecar 或 FireLens(Fluent Bit sidecar 模式)
    - GPU 节点:toleration + 独立 ConfigMap 降低 DEBUG 采样
    - 多集群:label `cluster` 必填,防 Loki tenant 混淆

    监控:`up{job="fluent-bit"}==0` 页面;`fluentbit_output_retries_failed_total` rate > 0 持续 5m 告警。

八、四种方案选型矩阵

场景 | 推荐 | 理由 | |——|——|——| | K8s DaemonSet 默认 | Fluent Bit | 生态、Chart、内存 | | 复杂 VRL 变换 | Vector | 可维护性 | | 遗留 GroK | Logstash | 迁移成本 | | Splunk License 优化 | Cribl | 商业 ROI |

九、工程坑点

  1. Refresh_Interval 默认过大 → tail CPU 尖刺
    1. disk buffer 无 cap → 节点磁盘满
    2. 双 DaemonSet tail → 重复 + inode 竞争
    3. multiline 顺序错 → 先 merge 再 json parse
    4. Loki label 高基数$kubernetes['pod_name'] 作 label 慎用
    5. OTel + FB 双 buffer → 只一层硬上限
    6. charset 未声明 → 乱码
    7. RBAC 不足 → metadata 空
    8. log rotation 丢行 → 配置 Rotate_Wait
    9. Kafka output 无 acks=all → 静默丢

十、落地清单

十一、关键概念回顾

十二、下一步

下一篇 Traces 栈与采样

参考资料

  1. Fluent Bit Documentation, https://docs.fluentbit.io/
  2. Vector Documentation, https://vector.dev/docs/
  3. Logstash Reference, https://www.elastic.co/guide/en/logstash/current/
  4. Cribl Stream Docs, https://docs.cribl.io/stream/
  5. Grafana Loki Log Collection, https://grafana.com/docs/loki/latest/send-data/
  6. Kubernetes Logging Architecture, https://kubernetes.io/docs/concepts/cluster-administration/logging/
  7. CNCF Fluent Bit Graduation, https://www.cncf.io/projects/fluent-bit/

上一篇数据模型:五大支柱的内部表达

下一篇Traces 栈与采样:Jaeger、Tempo、Zipkin、SkyWalking

附录 B.1 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.2 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.3 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.4 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.5 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.6 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.7 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.8 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.9 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.10 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.11 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.12 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.13 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.14 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.15 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.16 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.17 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.18 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.19 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.20 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.21 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.22 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.23 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.24 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.25 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.26 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.27 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.28 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.29 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.30 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.31 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.32 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.33 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.34 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.35 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.36 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.37 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.38 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.39 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.40 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.41 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.42 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.43 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.44 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.45 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.46 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.47 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.48 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.49 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.50 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.51 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.52 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.53 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.54 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.55 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.56 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.57 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.58 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.59 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.60 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.61 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.62 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.63 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.64 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.65 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.66 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.67 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.68 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.69 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.70 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.71 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.72 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.73 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.74 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.75 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.76 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.77 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.78 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.79 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.80 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.81 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.82 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.83 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.84 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.85 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.86 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.87 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.88 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.89 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.90 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.91 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.92 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.93 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.94 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.95 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.96 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.97 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.98 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.99 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.100 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.101 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.102 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.103 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.104 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.105 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.106 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.107 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.108 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.109 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.110 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.111 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.112 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.113 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.114 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.115 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.116 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.117 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.118 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.119 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.120 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.121 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.122 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.123 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.124 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.125 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.126 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.127 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.128 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.129 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.130 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.131 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.132 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.133 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

附录 B.134 运维笔记

OpenShift 用 ClusterLogForwarder 封装 Fluent Bit——概念映射。

附录 B.135 运维笔记

Journald 优先级映射到 .level 统一枚举。

附录 B.136 运维笔记

output 重试指数退避参数 Retry_Limitstorage.max_chunks_up 联动调优。

附录 B.137 运维笔记

Vector acknowledgements 与 Loki 204 响应——确认 at-least-once 边界。

附录 B.138 运维笔记

Windows 节点 Fluent Bit winevtlog input 与 K8s 无关但混合集群常见。

同主题继续阅读

把当前热点继续串成多页阅读,而不是停在单篇消费。


By .