DOCA 服务 Fluent Logger
本指南介绍了如何在 NVIDIA® BlueField® DPU 上为 DOCA 服务使用日志记录基础设施。
Fluent Bit 是一款快速日志收集器,可从多个来源收集信息,然后使用 Fluent 将数据转发出去。
在 NVIDIA DPU 上,可以轻松配置 Fluent Bit 日志记录器,以收集系统数据和来自不同 DOCA 服务的日志。
部署基于现有 Fluent Bit 容器的推荐配置模板。
有关在 BlueField DPU 上部署 DOCA 容器的信息,请参阅NVIDIA DOCA 容器部署指南。
以下是部署 Fluent Bit Pod 的 YAML 文件示例
apiVersion: v1
kind: Pod
metadata:
name: fluent-bit
spec:
hostNetwork: true
containers:
- name: fluent-bit
image: fluent/fluent-bit:latest
imagePullPolicy: Always
# Example resource definitions
resources:
requests:
memory: "100Mi"
cpu: "200m"
limits:
memory: "200Mi"
cpu: "300m"
volumeMounts:
- name: varlog
mountPath: /var/log
- name: config-file
mountPath: /fluent-bit/etc/fluent-bit.conf
volumes:
- name: varlog
hostPath:
path: /var/log
- name: config-file
hostPath:
path: /opt/mellanox/doca/services/fluent-bit.conf
type: File
如“配置”部分所述,Fluent Bit 使用配置文件。因此,为确保示例 YAML 文件从 DPU 共享到已部署的 Fluent Bit 容器,请使用以下方法
path: /opt/mellanox/doca/services/fluent-bit.conf
下面的路径只是用户可以放置 fluent-bit.conf
文件的示例位置。该文件可以放置在 DPU 上的不同目录中,只要 YAML 文件指向更新后的位置即可。
Fluent Bit 配置文件应包含以下部分
[SERVICE]
– 定义服务规范[INPU]
– 定义要从中收集日志的文件夹(可以有多个输入)[OUTPUT]
– 用于将数据流式传输到的 IP 和端口
配置文件示例
[SERVICE]
Flush 2
Log_Level info
Daemon off
Parsers_File parsers.conf
HTTP_Server On
HTTP_Listen 0.0
.0.0
HTTP_Port 2020
[INPUT]
Name tail
Tag kube.*
Path /var/log/containers/*.log
Parser docker
Mem_Buf_Limit 5MB
Skip_Long_Lines On
Refresh_Interval 10
[INPUT]
Name tail
Tag sys.*
Path /var/log/doca/*/
*.log
Mem_Buf_Limit 5MB
Skip_Long_Lines On
Refresh_Interval 10
[OUTPUT]
Name es
Match *
Host 10.20
.30.40
Port 9201
Index fluent_bit
Type cpu_metrics
最需要注意的字段是 INPUT
部分的 Path
。DOCA 服务将其日志报告到 /var/log/doca/<service_name>/*.log
下的唯一目录,每个 DOCA 服务对应一个目录。因此,上面的配置定义了 /var/log/doca/*/*.log
输入定义。
有关完整规范的更多信息,请参阅官方 Fluent Bit 手册。
有关容器相关的故障排除,请参阅NVIDIA DOCA 容器部署指南中的“故障排除”部分。
有关一般故障排除,请参阅DOCA 故障排除。
复制上述 YAML 文件时,容器基础设施日志可能会给出与 RFC 1123 相关的错误”。这些错误通常是文件中空格错误导致的,有时从本页按原样复制文件时会发生这种情况。要解决此问题,请确保文件中仅使用空格字符 (' ') 用作文件中的分隔符,而不是复制操作期间可能添加的其他空白字符。