Linux Filebeat 远程监控实践指南
一 架构与原则
二 方案一 远程主机安装 Filebeat 直连 Elasticsearch
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
fields:
type: remote_nginx
output.elasticsearch:
hosts: ["es.example.com:9200"]
protocol: https
ssl.verification_mode: full
ssl.certificate_authorities: ["/path/to/ca.crt"]
username: "filebeat_writer"
password: "YOUR_PASSWORD"
index: "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}"
三 方案二 集中式 Logstash 接收多台远程 Filebeat
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
fields:
service: app01
env: prod
output.logstash:
hosts: ["logstash.example.com:5044"]
input {
beats {
port => 5044
}
}
filter {
# 可在此做 grok、mutate、geoip 等处理
}
output {
elasticsearch {
hosts => ["es.example.com:9200"]
index => "%{[fields][service]}-%{+YYYY.MM.dd}"
user => "es_writer"
password => "YOUR_PASSWORD"
}
stdout { codec => rubydebug } # 调试用
}
四 安全与运维要点
五 常见替代做法与注意事项
filebeat.inputs:
- type: log
multiline.pattern: '^\['
multiline.negate: true
multiline.match: after