filebeat是什么
Filebeat 是一个开源的轻量级日志数据收集器,由 Elastic
公司开发。它主要用于实时收集、解析和传输日志数据,将日志数据从不同的源头(如文件、日志文件、系统日志等)传输到目标位置(如
Elasticsearch、Logstash 等),以便进行存储、分析和监控。
Filebeat 的主要特点包括:
- 轻量级:Filebeat 非常轻量,占用系统资源少,适合在资源有限的环境中运行。
- 实时性:Filebeat 可以实时监控日志文件的变化,一旦有新的日志产生,就会立即收集和传输。
- 多源头支持:Filebeat 支持从多种来源收集数据,包括文件、日志文件、系统日志、网络流量等。
- 数据解析:Filebeat 可以解析日志数据,支持多种输入格式,如 JSON、CSV 等,还可以根据需要添加标签、字段等。
- 灵活配置:Filebeat 的配置灵活,可以根据需求配置多个输入、多个输出,还可以使用模块来简化特定类型数据的收集和处理。
- 安全性:Filebeat 支持数据的加密传输,可以确保数据在传输过程中的安全性。
-
集成性:Filebeat 可以和 Elasticsearch、Logstash、Kibana 等 Elastic Stack
组件集成,方便进行数据的存储、分析和展示。
总之,Filebeat 是一个非常有用的工具,适用于从各种不同来源收集和传输日志数据,帮助用户更好地进行日志管理、监控和分析。
每一台生产日志数据的服务器都需要安装Filebeat
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/test-server/test-iot.log
json.keys_under_root: true
fields:
index: 'iot_data_log'
- type: log
enabled: true
paths:
- /var/log/aws-files/log/*/*.log
fields:
index: 'aws_s3'
- type: log
enabled: true
paths:
- /var/log/test-server/test-data-statistics-device.log
json.keys_under_root: true
fields:
index: 'data_statistics_device_log'
- type: log
enabled: true
paths:
- /var/log/test-server/test-data-statistics-consumer.log
json.keys_under_root: true
fields:
index: 'data_statistics_consumer_log'
- type: log
enabled: true
paths:
- /var/log/test-server/test-data-statistics-warning.log
json.keys_under_root: true
fields:
index: 'data_statistics_warning_log'
- type: log
enabled: true
paths:
- /var/log/test-server/test-data-statistics-message.log
json.keys_under_root: true
fields:
index: 'data_statistics_message_log'
#filebeat.config.modules:
# path: ${path.config}/modules.d/*.yml
# reload.enabled: false
#setup.template.settings:
# index.number_of_shards: 5
#setup.kibana:
output.logstash:
hosts: ["172.31.37.123:5044"]
loadbalance: false
#processors:
# - drop_fields:
# fields: ["log","input","host","agent","ecs"]
logging.level: info
logging.to_files: true
logging.files:
path: /var/log/filebeat
name: filebeat.log
keepfiles: 7
permissions: 0644
这个配置文件指定了多个输入路径,每个输入路径都对应一个不同类型的日志。例如,第一个输入路径 /var/log/test-server/test-iot.log 表示从这个日志文件收集日志,并将其解析为 JSON 格式,然后添加一个字段 index,值为 ‘iot_data_log’。类似地,其他输入路径也有类似的配置。
最后,配置文件中的 output.logstash 部分指定了输出目标为 Logstash 服务器,主机地址为
172.31.37.123,端口为 5044。
这个配置文件的作用是,根据不同的输入路径和类型的日志,Filebeat 将日志数据收集并发送到 Logstash 进行进一步的处理和分发。
Logstash是什么
Logstash 是一个开源的数据收集、处理和传输工具,由 Elastic
公司开发。它主要用于从不同的数据源(如日志文件、数据库、消息队列等)收集数据,然后进行处理、转换和传输到目标位置(如
Elasticsearch、其他存储系统等),以便进行存储、分析和可视化
Logstash 的主要特点包括:
- 多数据源支持:Logstash 支持从多种数据源收集数据,包括文件、日志文件、数据库、消息队列、网络流量等。
- 数据处理:Logstash 提供强大的数据处理能力,可以对数据进行过滤、解析、转换和丰富,使数据更具有结构和可用性。
- 插件系统:Logstash 支持丰富的插件系统,用户可以根据需要添加不同类型的输入、过滤器和输出插件,以适应不同的数据源和目标。
- 灵活配置:Logstash 的配置文件使用简单的配置语言,可以灵活地定义数据流的输入、过程和输出。
- 实时性:Logstash 可以实时监控数据源的变化,一旦有新的数据产生,就会立即进行处理和传输。
- 数据传输:Logstash 可以将处理后的数据传输到多种目标,包括 Elasticsearch、其他存储系统、消息队列等。
- 数据清洗:Logstash 可以清洗原始数据,去除噪音、重复和不必要的字段,以减小数据体积并提高数据质量。
-
集成性:Logstash 可以和其他 Elastic Stack 组件(如 Elasticsearch、Kibana、Beats
等)无缝集成,构建端到端的数据流解决方案。
总之,Logstash
是一个非常强大的数据收集和处理工具,适用于将各种类型的数据从不同的来源收集、处理和传输到目标位置,以支持数据分析、监控和可视化。
Logstash一般安装到中间件服务器
input {
beats {
port => "5044"
}
}
filter {
ruby {
code => "
path = event.get('log')['file']['path']
puts format('path = %<path>s', path: path)
if (!path.nil?) && (!path.empty?)
array = path.split('/')
if array[-2] == 'User'
event.set('folder', array[-2] + '/' + event.get('@timestamp').time.strftime('%Y-%m-%d'))
else
event.set('folder', array[-2] + '/' + array[-1].split('.')[0] + '/' + event.get('@timestamp').time.strftime('%Y-%m-%d'))
end
end
"
}
}
output {
if [fields][index] == 'iot_data_log' {
elasticsearch {
action => "index"
hosts => ["172.31.37.123:9200"]
index => "iot_data_log"
}
}
if [fields][index] == 'aws_s3' {
s3 {
access_key_id => "AKIATP4H2K"
secret_access_key => "qB9KNwYPpl494UQ8yLhrh2ByAiCb6"
region => "ap-northeast-1"
bucket => "knt.private.test"
size_file => 102400000
time_file => 1440
codec => line { format => "%{message}" }
canned_acl => "private"
prefix => "uat/%{folder}/"
temporary_directory => "/var/log/logstash/tmp"
}
}
if [fields][index] == 'data_statistics_consumer_log' {
elasticsearch {
action => "index"
hosts => ["172.31.37.123:9200"]
index => "data_statistics_consumer_log"
}
}
if [fields][index] == 'data_statistics_device_log' {
elasticsearch {
action => "index"
hosts => ["172.31.37.123:9200"]
index => "data_statistics_device_log"
}
}
if [fields][index] == 'data_statistics_message_log' {
elasticsearch {
action => "index"
hosts => ["172.31.37.123:9200"]
index => "data_statistics_message_log"
}
}
if [fields][index] == 'data_statistics_warning_log' {
elasticsearch {
action => "index"
hosts => ["172.31.37.123:9200"]
index => "data_statistics_warning_log"
}
}
}
这段代码是一个 Logstash 配置文件,用于处理日志数据并将其发送到不同的输出目的地。Logstash
是一个开源的数据收集和处理工具,常用于将不同来源的日志数据整合、转换和传输到各种目标系统。
这个配置文件的主要功能是:文章来源:https://www.toymoban.com/news/detail-670239.html
- 从 Beats 输入插件接收数据,该插件监听在 5044 端口上的数据流。
- 使用 Ruby 过滤器插件来根据日志路径设置一个名为 ‘folder’ 的字段,用于确定日志应该存储在哪个目录中。
- 使用条件语句根据 [fields][index] 字段的值,将数据发送到不同的输出目标。根据 [fields][index]
的值,可以确定数据是发送到 Elasticsearch 还是 Amazon S3 存储桶。 - 对于 Amazon S3 输出,配置了 S3 输出插件以将数据发送到指定的 S3 存储桶中。这里还设置了文件大小、文件时间和其他参数。
- 对于 Elasticsearch 输出,配置了 Elasticsearch 输出插件以将数据发送到指定的 Elasticsearch
主机和索引中。
总之,这段配置文件的目的是根据输入的日志数据进行处理,并将其发送到 Elasticsearch 或 Amazon S3
存储桶中,以便后续的查询、分析和存储。文章来源地址https://www.toymoban.com/news/detail-670239.html
到了这里,关于Filebeat ➕ Logstash 将日志文件输出到 Elasticsearch 或 Amazon S3的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!