filebeat+logstash配置

Logstash依赖于JVM,在启动的时候大家也很容易就能发现它的启动速度很慢很慢,但logstash的好处是支持很多类型的插件,支持对数据做预处理。而filebeat很轻量,前身叫logstash-forward,是使用Golang开发的,所以不需要有java依赖,也很轻量,占用资源很小,但功能也很少,不支持对数据做预处理。因此一般都是将filebeat+logstash组合使用,在每个节点部署filbeat,然后将监控的日志推送到数据缓冲层或直接推送到logstash集群内,配合redis或kafka做数据缓冲层来使用。

本篇就介绍如何将filebeat和logstash同时使用,并且介绍如何同时监控多个文件,将多个文件导出至不同的索引内。

ELK系列(一)、安装ElasticSearch+Logstash+Kibana+Filebeat-v7.7.0

ELK系列(二)、在Kibana中使用RESTful操作ES库

ELK系列(三)、安装Logstash插件及打包离线安装包

ELK系列(四)、Logstash读取nginx日志写入ES中

ELK系列(五)、Logstash修改@timestamp时间为日志的产生时间

ELK系列(六)、修改Nginx日志为Json格式并使用Logstash导入至ES

-------------------------------------使用filebeat采集多个文件并通过logstash写入es内--------------------

为什么要使用一个配置文件监控多个文件? 因为filebeat 只能起一个进程。

Filebeat配置

vim /opt/app/filebeat-7.7.0-linux-x86_64/filebeat_csdn.yml

同时监控nginx的access日志以及系统的messages日志,并且分别新增一个字段'filetype'(自定义的)来做区分,输出到localhost的5044端口,由logstash消费

  1. filebeat.inputs:
    
    - type: log
    
    enabled: true
    
    backoff: "1s"
    
    tail_files: false
    
    paths:
    
    - /usr/local/nginx/logs/access-json.log
    
    fields:
    
    filetype: log_nginxjson
    
    fields_under_root: true
    
    - type: log
    
    enabled: true
    
    backoff: "1s"
    
    tail_files: false
    
    paths:
    
    - /var/log/messages
    
    fields:
    
    filetype: log_system
    
    fields_under_root: true
    
    output.logstash:
    
    enabled: true
    
    hosts: ["wykd:5044"]

     

Logstash配置

vim /opt/app/logstash-7.7.0/config/logstash_filebeat2es.conf

修改logstash配置,input的部分要与filbeat中的端口一致,filter的部分针对不同的日志内容做不同的预处理或解析,output中对不同的日志输出到不同的es的索引中。这里的filetype就是在上面的filebeat中新增的自定义字段:

 
input {

#从filebeat取数据,端口与filebeat配置文件一致

beats {

host => "0.0.0.0"

port => 5044

}

}

filter {

#只对nginx的json日志做json解析,系统message为其他格式,无需处理

if [filetype] == "log_nginxjson"{

json {

source => "message"

remove_field => ["beat","offset","tags","prospector"] #移除字段,不需要采集

}

date {

match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"] #匹配timestamp字段

target => "@timestamp" #将匹配到的数据写到@timestamp字段中

}

}

}


output {

# 输出es,这的filetype就是在filebeat那边新增的自定义字段名

if [filetype] == "log_nginxjson" {

elasticsearch {

hosts => ["wykd:9200"]

index => "nginx-%{+YYYY.MM.dd}"

}

} else if [filetype] == "log_system" {

elasticsearch {

hosts => ["wykd:9200"]

index => "msg-%{+YYYY.MM.dd}"

}

}


}

 

  1. 启动Filebeat和Logstash

先启动logstash,不然的话filebeat会找不到logstash的5044端口:

bin/logstash -f config/logstash_filebeat2es.conf

./filebeat -e -c filebeat_csdn.yml

如果启动的时候报错显示地址被占用


1.ps -ef|grep logstash
看否在运行,kill掉。

2.logstash.yml里有data.path的路径下 有个隐藏文件.lock 删除即可,是个缓存文件
如果没有手动指定的话,在默认的路径cd /opt/ELK/logstash/data  然后ls -alh  删除.lock

 

验证数据

在Kibana中可以看到两个索引已经建出来了并同时写入了不同的日志内容:

 

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: FilebeatLogstash都是用于处理日志数据的开源工具,它们可以协同工作来将日志从各种来源(如服务器、应用程序和设备)中收集、传输和处理。 Filebeat主要用于从服务器、应用程序和设备等来源采集日志数据,并将其传输到Elasticsearch或Logstash等目标位置。它非常轻量级,能够高效地收集和传输日志数据。 Logstash则主要用于对日志数据进行转换、过滤和聚合等处理操作,以便更好地支持可视化和分析需求。它具有强大的处理功能和灵活的配置选项,可以将数据从各种来源汇聚到一起,并将其转换为统一的格式。 在实际使用中,Filebeat可以作为Logstash的数据源之一,将收集到的日志数据传输到Logstash进行进一步处理。同时,Logstash也可以作为Filebeat的目标位置之一,接收Filebeat传输过来的数据进行处理和分析。两者可以结合使用,相互补充,以满足不同场景下的日志数据处理需求。 ### 回答2: FilebeatLogstash都是Elastic Stack中的数据收集工具,它们的作用都是将各种数据源的数据采集并传递给Elasticsearch,以实现数据可视化和实时分析的目的,但两者在实现方式和适用场景上有所不同。 Filebeat是一款轻量级的数据收集工具,主要用于收集和传递日志数据。它通过监控指定的文件、目录或标准输入来采集数据,并将采集到的数据发送给Elasticsearch或Logstash进行处理和分析。Filebeat可以压缩和加密传输数据,并且对于大量数据采集和传输来说,Filebeat的性能比Logstash更好。 Logstash是一款完整的数据收集、处理、转换和输出工具,它除了可以收集和传输日志数据之外,还可以对收集到的数据进行多种处理和转换操作,如Grok、csv、json等数据格式处理、SQL数据库连接等等,最后再将数据输出到指定目的地,如Elasticsearch、Kafka、RabbitMQ、s3、HDFS、Amazon SNS等。相对于FilebeatLogstash功能更加强大和灵活,但同时也更加重量级和耗费资源。 综上所述,FilebeatLogstash都是Elastic Stack中非常重要的数据收集工具,而且它们经常被一起使用,但在实际应用中,需要根据不同场景和需求来选择使用哪一个工具,或者同时使用两个工具来完成数据采集、处理和输出的工作。 ### 回答3: FilebeatLogstash都是常用的开源日志收集工具,主要用于将分散在各个服务器上的日志数据收集起来并传输到集中式的日志存储或分析平台中进行处理。但是FilebeatLogstash的作用和定位并不完全相同。 Filebeat是一款轻量级的日志收集工具,主要用于收集服务器产生的日志文件,通过配置将日志文件发送到Logstash或Elasticsearch进行处理和分析。Filebeat基于go编写,运行时资源占用较小,支持多平台操作系统,具有从日志文件中持续读取数据的能力,能够保证日志数据的实时性。使用Filebeat可以将大量的日志数据和错误信息发送到集中管理平台,方便日志分析人员对问题进行快速定位和排查。 Logstash是一款功能比较强大的日志收集、处理和转发工具,支持多种数据源、数据格式和数据目的地的交互,可以对日志数据进行过滤和加工,支持解析多种日志格式,能够将日志发送到各种目的地。Logstash主要包括输入、过滤器和输出三个部分,每个部分都有丰富的插件支持。因此,Logstash集成度和扩展性都非常高,能够满足不同的日志收集和处理需求。 FilebeatLogstash可以合作使用,Filebeat作为日志收集工具,将日志数据发送给中央服务器之后,Logstash负责对接收到的数据进行进一步的解析和处理。Logstash支持从Filebeat接收数据,可以对日志数据进行提取、解析、转换、过滤、聚合和发送等操作,然后再将处理后的数据发送给下一个目的地(例如Elasticsearch、Redis、Kafka、S3等)。通过这种方式,可以实现灵活、高效的日志收集、处理和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值