推荐一个小工具:flog

推荐一个小工具:flog一直以来 小白在 Kubernetes 集群中测试 Loki 的日志采集都是在容器内执行 echo 命令输出到控制台 这种方式操作起来既不方便无法大规模做日志测试 直到小白遇到一个好用的日志输出小工具 flog flog 是一个 golang 开发的测试日志生成器 它可以生成一些常见 如 Apache Nginx RFC3164 或 Json 格式的日志

大家好,我是讯享网,很高兴认识大家。

一直以来,小白在Kubernetes集群中测试Loki的日志采集都是在容器内执行echo命令输出到控制台。这种方式操作起来既不方便无法大规模做日志测试。直到小白遇到一个好用的日志输出小工具flog。

flog是一个golang开发的测试日志生成器,它可以生成一些常见(如Apache、Nginx、RFC3164或Json)格式的日志

在Mac下用homebrew可以直接安装

brew tap mingrammer/flog brew install flog 

讯享网

或者直接用docker来运行

讯享网docker run -it --rm mingrammer/flog 

参数

先来看看flog的几个有用参数

-f, 日志格式 

指定日志的输出格式,目前可用的参数有apache_commonapache_combined(Nginx)apache_errorrfc3164rfc5424json

讯享网-t, 日志输出类型 

指定日志的输出方式,默认是输出到stdout,也可以指定为log(文件)或者gz(压缩日志)两种格式

-o, 日志文件路径 

指定日志的输出路径,当日志类型是log时,就需要指定日志的输出文件路径

讯享网-n, 日志输出行数 -b, 日志输出空间,默认单位是byte -s, 每行日志间隔时间 
-d, 日志生产速度 

这个参数用来控制每条日志的生产速度,默认单位是秒,我们可以用0.01来表示10毫秒

讯享网-l, 持续循环输出 

这个参数让工具持续按照现有参数循环输出日志,直到收到KILL信号量停止


讯享网

场景

  • 一次性输出10行日志
docker run -it --rm mingrammer/flog -n 10 

在这里插入图片描述

  • 一次性输出10行日志,每行日志间隔1s
讯享网docker run -it --rm mingrammer/flog -n 10 -s 2 

在这里插入图片描述

  • 每0.5s产生一条日志,总共输出10行,每行日志间隔1s
docker run -it --rm mingrammer/flog -n 10 -s 1 -d 0.5 

在这里插入图片描述

  • 持续每0.5s产生一条日志,每行日志间隔1s,日志格式为Nginx
讯享网docker run -it --rm mingrammer/flog -s 1 -d 0.5 -f apache_combined -l 

在这里插入图片描述

如果你觉得这种涓涓细流的日志不过瘾,你也可以来点大的,比如一次输出100MB的日志

docker run -it --rm mingrammer/flog -b  > fake.log 

在这里插入图片描述

你甚至可以将容器编排下用DaemonSet在K8S的每个节点上运行,这样既能控制整体日志的输出速率,也能对日志采集和后端存储做持续观察。

讯享网apiVersion: apps/v1 kind: DaemonSet metadata: labels: app: fake-log name: fake-log spec: selector: matchLabels: app: fake-log template: metadata: labels: app: fake-log spec: containers: - args: - -f - apache_combined - -l - -d - "0.01" image: mingrammer/flog:latest imagePullPolicy: IfNotPresent name: fakelog dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler tolerations: - operator: Exists 

最终我们就可以通过调整flog参数来实现对集群内日志整体输出的控制

在这里插入图片描述


关注公众号「云原生小白」,获取更多精彩内容

小讯
上一篇 2025-01-04 23:36
下一篇 2025-03-27 18:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/41959.html