发布于2026-06-30 阅读(0)
扫一扫,手机访问
说到日志收集,Filebeat 绝对算得上轻量级选手里的明星——它负责把分散在各处的日志数据,源源不断地送到 Elasticsearch、Logstash 这类后端存储里。不过,光让它跑起来还不够,很多时候你还需要精确控制日志的输出格式,否则下游解析起来会非常头疼。那么,怎么配置这个格式呢?答案就在 filebeat.yml 这个配置文件里。

拿一个最基本的配置来举例,你一看就明白:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
# 设置日志输出的格式
processors:
- add_fields:
targets: ["log"]
fields:
format: "json" # 可以是 "json", "csv", "plaintext" 或 "dissect"
# 如果你选择 "dissect" 格式,你需要定义一个 dissect 模板来解析你的日志
processors:
- dissect:
tokenizer: '%{timestamp} %{log_level} %{message}'
field: "message"
target_prefix: ""
overwrite_keys: true
# 输出到控制台(或其他输出)
output.elasticsearch:
hosts: ["localhost:9200"]
这个例子里,我们通过一个 add_fields 处理器,给日志加了一个叫 format 的字段,用来指明日志本来的格式。可选的值无非这么几种:
如果你选了 dissect,那就得提供一个模板,比如上面例子里的 %{timestamp} %{log_level} %{message},意思就是:把每条日志按空格拆成三部分——时间戳、日志级别、消息正文。这样 Filebeat 就能自动把原始文本里的关键信息提取出来,变成结构化的字段。
需要提醒的是,这只是一个最基础的配置示例。实际生产环境里,你很可能需要调整输入路径、加更多的处理器,或者改输出目标。每次改完 filebeat.yml,别忘了重启 Filebeat 服务,否则配置不会生效:
sudo systemctl restart filebeat
如果你用的不是 systemd,那换成对应的重启命令就行。总之,核心就两步:写对配置,然后重启。
下一篇:dumpcap有哪些高级功能
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8