Filebeat与Logstash协同工作的方式主要涉及Filebeat收集日志数据并将其发送到Logstash进行进一步处理。以下是它们协同工作的具体步骤和配置示例:
Filebeat与Logstash协同工作方式
- Filebeat收集日志:Filebeat部署在每个需要收集日志的节点上,负责读取日志文件并将其发送到Logstash。
- Logstash处理日志:Logstash接收来自Filebeat的日志数据,进行必要的处理和转换,然后将处理后的数据发送到Elasticsearch。
配置示例
Filebeat配置示例
以下是一个Filebeat配置示例,展示如何配置Filebeat以收集特定日志文件并将其发送到Logstash:
filebeat.inputs: - type: log enabled: true paths: - /var/log/nginx/access.log - /var/log/nginx/error.log output.logstash: enabled: true hosts: ["logstash_host:5044"]
Logstash配置示例
以下是一个Logstash配置示例,展示如何配置Logstash以接收来自Filebeat的日志并进行处理:
input { beats { port => 5044 } } filter { if [fields][log_type] == "nginx-access" { grok { match { "message" => "%{COMBINEDAPACHELOG}" } } date { match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] } } if [fields][log_type] == "nginx-error" { grok { match { "message" => "%{ERRORLOG}" } } date { match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] } } } output { elasticsearch { hosts => ["elasticsearch_host:9200"] index => "nginx-%{+YYYY.MM.dd}" } }
在这个配置中,Filebeat将收集/var/log/nginx/access.log
和/var/log/nginx/error.log
文件,并将它们发送到Logstash。Logstash接收到日志后,会根据日志类型进行不同的处理,并将处理后的数据发送到Elasticsearch。通过这种方式,Filebeat和Logstash可以协同工作,实现高效的日志收集和处理。