Filebeat與Logstash協同工作的方式主要涉及Filebeat收集日志數據并將其發送到Logstash進行進一步處理。以下是它們協同工作的具體步驟和配置示例:
以下是一個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以接收來自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可以協同工作,實現高效的日志收集和處理。