filebeat的基本配置(基本配置)

时间:2025-04-09 09:08:25
filebeat 输入配置编写(基本配置)

EFK 中filebeat的文件输入 抽取本地文件的配置文件编写

:
- type: log
  enabled: true
  paths:
    - /var/log/*.log
    #- /var/log/*/*.log
# 抽取普通日志。模块格式化抽取。 
- type: log
  paths:
    - "/var/log/apache2/*"
  fields:
    apache: true
  fields_under_root: true

url:/guide/en/beats/filebeat/current/ 官方网文档的抽取和配置。

因为抽取日志的时候 日志的消息的采集是属于多个文件的夺取 所需需要配置一些多行管理的参数事件

: pattern
: '^\[' # 采用正则匹配对所采集日志进行模块化区分
: true   # 根据一下两个参数,对所采集日志进行模块化划分
: after

exclude_lines: ['^DBG'] #不包含的字段行数过滤
include_lines: ['^ERR', '^WARN'] # 包含的字段行
容器日志的收集

输入配置

如果在docker 的配置文件中

Dokcer 默认的日志日志驱动是 json-file,该驱动将将来自容器的 stdout 和 stderr 日志都统一以 json 的形式存储到本地磁盘

{
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
    },
  "bip": "172.17.0.1/16",
  "data-root": "/var/lib/docker",
}

指定了容器的docker info 或者docker logs

则 fileBeat的容器收集的参数配置

- type: container
  paths:
    - '/var/lib/docker/containers/*/*.log'
#k8s的采取的选项读取
- type: container
  stream: stdout
  paths:
    - "/var/log/containers/*.log"
# 因为采取日志的格式json的格式 所以必须采用 json格式的解析配置文件。
  json.keys_under_root: true
  json.add_error_key: true
  json.overwrite_keys: true
filebeat从kafka中收集数据
:
- type: kafka
  hosts:
    - kafka-broker-1:9092
    - kafka-broker-2:9092
  topics: ["my-topic"] # kafka的标题。
  group_id: "filebeat"
filebeat 的模块使用
# rpm包安装的话直接指令执行
filebeat modules enable system nginx mysql
# 源码安装
./filebeat modules enable system nginx mysql
msyql开启模块使用(示例)
# 进入filebeat配置目录 /
- module: mysql
  error:
    enabled: true
    : ["/path/to/log/mysql/*"] # 这个路径一般是被静止得。
  slowlog:
    enabled: true
    : ["/path/to/log/mysql/*"]
filebeat的基本配置
基本参数配置
: registry 
# 注册表的根路径  rpm 安装得回在/var/lib//var/lib/filebeat/registry/
.file_permissions: 0600
# 注册表得权限
: 1s
# 注册表刷得时间(这个参数涉及优化性质)
filebeat.config_dir: path/to/configs
# 配置文件得绝对路径rpm安装情况下会选择/configs
filebeat.shutdown_timeout: 5s
# 一个延迟滞后得配置参数,这个配置参数主要是在于看当前监控服务得软件服务质量。
全局环境配置项目路径
: /usr/share/beat
: /etc/beat
: /var/lib/beat
: /var/log/
# 这样的配置路径在全局的变量中可以使用 ${}指定

# 配置文件的实时加载和配置模块的实时加载
:
  enabled: true
  path: configs/*.yml
  : true
  : 10s # 没有必要设置为小于1s
:
  # Glob pattern for configuration loading
  path: ${}//*.yml
  # Set to true to enable config reloading
  : true                             
filebeat的输出
输出到elasticsearch
:
  hosts: ["https://myEShost:9200"]
  username: "filebeat_writer"
  password: "YOUR_PASSWORD"
  # 基于不同的验证环境输出
  # api_key: "KnR6yE41RrSowb0kQ0HWoA" 
  # : "/etc/pki/client/"
  # : "/etc/pki/client/"
输出到logstash
  • 输出到logstach的时候最好设置文件节拍,只有文件节拍后logstash才能进行日志清理
:
  # 如果是多节点可输入多个IP地址
  hosts: ["127.0.0.1:5044"]
  # 是否启用压缩,启用压缩的话会导致cpu运算压力增大
  compression_level: 3
  # 多节点的logstash是保持 负载平很
  loadbalance: true
输出到kafka
:
  # initial brokers for reading cluster metadata
  hosts: ["kafka1:9092", "kafka2:9092", "kafka3:9092"]

  # message topic selection + partitioning
  topic: '%{[fields.log_topic]}'
  partition.round_robin:
    reachable_only: false
  required_acks: 1
  compression: gzip
  max_message_bytes: 1000000
  # 这个的参数大小需要根据实际情况调优
输出到redis
:
  hosts: ["localhost"]
  password: "my_password"
  key: "filebeat"
  db: 0
  timeout: 5