(八)Filebeat收集日志方法

(八)Filebeat收集日志方法_第1张图片

Filebeat收集日志

input:日志输入,支持log(常用)、stdin、redis
output:日志输出,支持elasticsearch、redis、logstash、kafka

1. log(从日志文件中收取日志)
示例:
filebeat.inputs:
- type: log 
  paths:
    - /var/log/system.log
    - /var/log/wifi.log
- type: log 
  paths:
    - "/var/log/apache2/*"
  exclude_lines: ['^DBG']   #排除
  include_lines: ['^ERR', '^WARN']  #匹配
  tags: ["json"]
  fields:
    apache: true
  fields_under_root: true #自定义字段将存储为输出文档中的顶级字段,而不是分组在子字典下
  
配置选项:
paths:获取日志的日志路径,可以递归地获取目录所有子文件
encoding:读取日志数据的文件编码
exclude_lines:要匹配要排除 Filebeat 的行的正则表达式列表
include_lines:用于匹配要包含 Filebeat 的行的正则表达式列表
enabled:启用和禁用输入,默认为false
tags: Filebeat在每个已发布事件的字段中包含的标记列表。通过标记,可以轻松地选择 Kibana 中的特定事件或在 Logstash 中应用条件筛选
fields:可以指定向输出添加其他信息的可选字段
2. multiline(多行日志合并)
示例:
multiline.pattern: '^\['
multiline.negate: true
multiline.match: after

配置选项:
pattern:指定要匹配的正则表达式模式
negate:定义模式是否被否定,默认值为false
match:指定 Filebeat 如何将匹配行合并到事件中,选项:after|before|negate
匹配模式:
设置      设置       结果      
negate    match
false     after      与模式匹配的连续行将追加到上一行不匹配的行中。
false     before     与模式匹配的连续行将预排到下一行不匹配
true      after      与模式不匹配的连续行将追加到匹配的上一行
true      before     与模式不匹配的连续行将预排到匹配的下一行
3. elasticsearch(日志输出到elasticsearch)
示例:
output.elasticsearch:
  hosts: ["https://localhost:9200"]
  username: "filebeat_internal"
  password: "YOUR_PASSWORD"
配置选项:
hosts:要连接到的elasticsearch服务器
username:安全认证用户名
password:安全认证密码
index:事件的索引名称
4. logstash(日志输出到logstash)
示例:
output.logstash:
  hosts: ["localhost:5044", "localhost:5045"]
  loadbalance: true
  index: filebeat
配置选项:
hosts:要连接到的已知 Logstash 服务器的列表,如果禁用负载平衡,但配置了多个主机,则随机选择一台主机(没有优先级)
compression_level:gzip 压缩级别,0代表禁用,默认为3
worker:logstash的工作进程数
loadbalance:如果开启则均衡负载到logstash服务器,设置为false则输出插件将所有事件仅发送到一个主机(随机确定)
index:写入事件的索引名称,"[filebeat-]6.8.13-YYYY.MM.DD" "filebeat-6.8.13-2017.04.26"
5. redis(日志输出到redis)
示例:
output.redis:
  hosts: ["localhost"]
  password: "my_password"
  key: "filebeat"
  db: 0
  timeout: 5
6. kafka(日志输出到kafka)
示例:
output.kafka:
  hosts: ["kafka1:9092", "kafka2:9092", "kafka3:9092"]
  topic: '%{[fields.log_topic]}'
  partition.round_robin:
    reachable_only: false
  required_acks: 1
  compression: gzip
  max_message_bytes: 1000000
配置选项:
hosts:Kafka 代理地址列表从其中获取群集元数据
topic:用于制作事件的kafka主题,可以使用格式字符串动态设置主题以访问任何事件字段
partition:kafka输出代理事件分区策略。包含(random、round_robin、hash、hash)
required_acks:代理所需的 ACK 可靠性级别。0=无响应,1=等待本地提交,-1=等待所有副本提交。默认值为 1
compression:设置输出压缩编解码器。包含(none、snappy、lz4、gzip)
max_message_bytes:JSON 编码消息的最大允许大小。默认值为 1000000 (字节)

你可能感兴趣的:(ELK)