我们用filebeat来监控我们项目的日志文件,日志文件根据大小会自动分割的。如下图这个:
不知道自动分割的日志文件怎么配置路径。
我目前配置的路径是: - /note/__logs/ess/ess.*
如果我配置:- /note/__logs/ess/ess.log 日志分割的时候就会丢数据。我才改成了 - /note/__logs/ess/ess.* 。但是发现这样配置的话,我发现会有重复数据推送(日志量少的时候没事,当每秒400条日志的时候就会有重复数据),不知道是不是这样配置的原因。大家对自动分割的日志文件是怎么配置的路径啊。有没有重复数据的问题。
现象是这样的:
我有两个filebeat节点。2个filebeat都这样配置了
output.logstash:hosts:[ “10.14.125.3:5044","10.14.125.4:5044","10.14.125.5:5044”]。
可以给三个logstash节点发送数据,当三个logstash节点,我只启动一个的时候,2个feilbeat都给这一个发。500条 / 秒的日志量,一条不丢也不重复。同样的日志产生量。我开启2个logstash节点的时候,2个fliebeat可以给两个logstash轮发的时候。数据不丢,但就会发现有重复数据了有时候。测试第一次:发了500万条日志,收到501万多,有1万条是重复的有时候。测试第二次:发了500万日志,收到600多万。通过查询数据发现,确实有重复数据。
这是为什么啊?filebeat配置使用的默认的,就是output.logstash:hosts:[“10.14.125.3:5044”,“10.14.125.4:5044”,“10.14.125.5:5044”]这里配置了多个logstash节点。只启动一个logstash接收没问题。启动两个logstash就会出现重复数据。
大家对自动分割的日志文件是怎么配置的路径啊。有没有重复数据的问题。
另外还有个小问题:drop_fields 不生效,不知道为啥
==========================filebeat的YML如下==================================
#=========================== Filebeat prospectors =============================
filebeat.prospectors:
# Each - is a prospector. Most options can be set at the prospector level, so
# you can use different prospectors for various configurations.
# Below are the prospector specific configurations.
#检查业务日志
- type: log
# Change to true to enable this prospector configuration.
enabled: true
paths:
- /note/__logs/ess/ess.*
# 探矿者在指定的路径中检查新文件的频率
# 而不会导致Filebeat过于频繁地扫描。默认值:10s。
scan_frequency: 10s
# 定义每个采集器在获取文件时使用的缓冲区大小,默认16384
harvester_buffer_size: 16384
#单个日志事件可以拥有的最大字节数
#max_bytes之后的所有字节被丢弃并且不发送默认值是10MB
#这对于可能变大的多行日志消息特别有用
max_bytes: 10485760
fields :
myhost : 10.14.125.12
appname : cherry
document_type: businesslog
fields_under_root : true
drop_fields:
fields: ["beat", "offset"]
# Include lines. A list of regular expressions to match. It exports the lines that are
# matching any regular expression from the list.
include_lines: ['^{']
#============================= Filebeat modules ===============================
filebeat.config.modules:
# Glob pattern for configuration loading
path: ${path.config}/modules.d/*.yml
# Set to true to enable config reloading
reload.enabled: false
# Period on which files under path should be checked for changes
#reload.period: 10s
#================================ Outputs =====================================
#----------------------------- Logstash output --------------------------------
output.logstash:
# The Logstash hosts
hosts: ["10.14.125.3:5044","10.14.125.4:5044","10.14.125.5:5044"]
# hosts: ["10.14.123.117:5044"]
不知道自动分割的日志文件怎么配置路径。
我目前配置的路径是: - /note/__logs/ess/ess.*
如果我配置:- /note/__logs/ess/ess.log 日志分割的时候就会丢数据。我才改成了 - /note/__logs/ess/ess.* 。但是发现这样配置的话,我发现会有重复数据推送(日志量少的时候没事,当每秒400条日志的时候就会有重复数据),不知道是不是这样配置的原因。大家对自动分割的日志文件是怎么配置的路径啊。有没有重复数据的问题。
现象是这样的:
我有两个filebeat节点。2个filebeat都这样配置了
output.logstash:hosts:[ “10.14.125.3:5044","10.14.125.4:5044","10.14.125.5:5044”]。
可以给三个logstash节点发送数据,当三个logstash节点,我只启动一个的时候,2个feilbeat都给这一个发。500条 / 秒的日志量,一条不丢也不重复。同样的日志产生量。我开启2个logstash节点的时候,2个fliebeat可以给两个logstash轮发的时候。数据不丢,但就会发现有重复数据了有时候。测试第一次:发了500万条日志,收到501万多,有1万条是重复的有时候。测试第二次:发了500万日志,收到600多万。通过查询数据发现,确实有重复数据。
这是为什么啊?filebeat配置使用的默认的,就是output.logstash:hosts:[“10.14.125.3:5044”,“10.14.125.4:5044”,“10.14.125.5:5044”]这里配置了多个logstash节点。只启动一个logstash接收没问题。启动两个logstash就会出现重复数据。
大家对自动分割的日志文件是怎么配置的路径啊。有没有重复数据的问题。
另外还有个小问题:drop_fields 不生效,不知道为啥
==========================filebeat的YML如下==================================
#=========================== Filebeat prospectors =============================
filebeat.prospectors:
# Each - is a prospector. Most options can be set at the prospector level, so
# you can use different prospectors for various configurations.
# Below are the prospector specific configurations.
#检查业务日志
- type: log
# Change to true to enable this prospector configuration.
enabled: true
paths:
- /note/__logs/ess/ess.*
# 探矿者在指定的路径中检查新文件的频率
# 而不会导致Filebeat过于频繁地扫描。默认值:10s。
scan_frequency: 10s
# 定义每个采集器在获取文件时使用的缓冲区大小,默认16384
harvester_buffer_size: 16384
#单个日志事件可以拥有的最大字节数
#max_bytes之后的所有字节被丢弃并且不发送默认值是10MB
#这对于可能变大的多行日志消息特别有用
max_bytes: 10485760
fields :
myhost : 10.14.125.12
appname : cherry
document_type: businesslog
fields_under_root : true
drop_fields:
fields: ["beat", "offset"]
# Include lines. A list of regular expressions to match. It exports the lines that are
# matching any regular expression from the list.
include_lines: ['^{']
#============================= Filebeat modules ===============================
filebeat.config.modules:
# Glob pattern for configuration loading
path: ${path.config}/modules.d/*.yml
# Set to true to enable config reloading
reload.enabled: false
# Period on which files under path should be checked for changes
#reload.period: 10s
#================================ Outputs =====================================
#----------------------------- Logstash output --------------------------------
output.logstash:
# The Logstash hosts
hosts: ["10.14.125.3:5044","10.14.125.4:5044","10.14.125.5:5044"]
# hosts: ["10.14.123.117:5044"]
3 个回复
muou
赞同来自:
UnigroupAi - 高级Elasticsearch工程师
赞同来自:
一般这种情况只要指定/path/log/ess.log,只采集ess.log文件,这样就不会重复。
或者,修改日志名:ess.json.log.20180708,然后指定采集/path/log/*.log,这样只会采集以log结尾的文件,文件拆分后也不会重复采集。
niumore
赞同来自:
ess.* 肯定会重复的,分割前采集一次,分割后采集一次。