薇尔薇

Back

不是0基础小白教程 目的:收集系统中指定文件的日志,推送至Loki,并在Grafana中查看

Loki + Grafana配置#

Docker Compose#

Loki配置文件#

文件位于 loki-config/loki-config.yaml
基于官方配置文件示例,修改了对日志推送频率的限制

Fluent Bit配置#

vi /etc/fluent-bit/fluent-bit.conf
sh

[SERVICE]#

  • Flush 1:每 1 秒钟将缓存的日志刷新(发送)一次。
  • Daemon Off:以前台模式运行,不作为守护进程。
  • Log_Level debug:日志级别设为 debug,用于调试。
  • Coro_Stack_Size 24576:协程栈大小(调优参数,防止复杂过滤器栈溢出)。
  • storage.metrics on:启用内部存储指标监控。

[INPUT]#

  • Name tail:使用 tail 插件,从文件尾部持续读取日志。
  • Path /var/log/nikki/core.log:要监控的日志文件路径。
  • Tag nikki.core:给这类日志打上标签,用于匹配过滤和输出。
  • Read_from_Head false:不从头读起,只读取新追加的日志。
  • DB /etc/fluent-bit/flb_nikki.db:保存读取进度的数据库文件,防止重启重复读取。
  • Rotate_Wait 5:文件轮转后等待 5 秒再重新打开。
  • Skip_Long_Lines On:跳过过长的日志行,防止内存问题。
  • Refresh_Interval 5:每 5 秒扫描一次新文件或轮转文件。
  • mem_buf_limit 50MB:输入插件的内存缓存上限。
  • Buffer_Chunk_Size 1MB / Buffer_Max_Size 20MB:每次缓存块的大小及最大允许块大小。
  • storage.type memory:只用内存缓存(不落盘)。
  • Docker_Mode Off:非 Docker 容器日志模式。

[FILTER]#

  • Name modify:使用 modify 过滤器。
  • Match nikki.core:只匹配标签为 nikki.core 的日志。
  • Add host ${HOSTNAME}:添加字段 host,值为主机名。
  • Add source openwrt:添加字段 source。
  • Add filename /var/log/nikki/core.log:添加字段 filename。

[OUTPUT]#

  • Name loki:输出到 Loki。
  • Match nikki.core:匹配输入标签为 nikki.core 的日志。
  • Host 10.115.15.25 / Port 3100:Loki 的地址和端口。
  • Labels:定义 Loki 标签(相当于 Prometheus 的 label),方便查询。
  • Auto_Kubernetes_Labels Off:关闭自动从 K8s 获取标签。
  • compress gzip:发送前启用 gzip 压缩。
  • workers 2:启用两个并发 worker 线程加快发送。
  • tenant_id fake:多租户 Loki 的 tenant ID(此处为 fake)。

Grafana查询#

Pasted image 20251019134228

Fluent Bit+Loki+Grafana实现日志收集存储查询
https://vio.vin/blog/fluent-bit-loki-grafana-shi-xian-ri-zhi-shou-ji-cun-chu-cha-xun
Author violet
Published at 2025年10月19日