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