在 Debian 下使用 Filebeat(Elastic 官方的轻量级日志采集器)通常分为 安装 → 配置 → 启动 → 验证 几个步骤。下面给你一个从零开始的实用指南。
root 或 sudosudo apt update
sudo apt install -y curl gnupg apt-transport-https
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | \
sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg
echo "deb [signed-by=/usr/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" \
| sudo tee /etc/apt/sources.list.d/elastic-8.x.list
sudo apt update
sudo apt install filebeat
想装 7.x 把
8.x改成7.x
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.13.0-amd64.deb
sudo dpkg -i filebeat-8.13.0-amd64.deb
/etc/filebeat/filebeat.yml # 主配置文件
/etc/filebeat/modules.d/ # 模块配置
/usr/bin/filebeat # 可执行文件
/var/lib/filebeat/ # 状态数据(记录读取位置)
编辑:
sudo vim /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
output.elasticsearch:
hosts: ["http://localhost:9200"]
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/nginx/*.log
output.logstash:
hosts: ["logstash:5044"]
例如 Nginx:
sudo filebeat modules enable nginx
编辑模块配置:
sudo vim /etc/filebeat/modules.d/nginx.yml
- module: nginx
access:
enabled: true
var.paths: ["/var/log/nginx/access.log"]
error:
enabled: true
var.paths: ["/var/log/nginx/error.log"]
sudo filebeat test config
sudo filebeat test output
sudo systemctl enable filebeat
sudo systemctl start filebeat
sudo systemctl status filebeat
journalctl -u filebeat -f
curl localhost:9200/_cat/indices?v
filebeat.inputs:
- type: log
paths:
- /app/logs/app.log
multiline:
pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
negate: true
match: after
Filebeat 默认就会记录文件读取位置(/var/lib/filebeat/registry)
filebeat.inputs:
- type: container
paths:
- '/var/lib/docker/containers/*/*.log'
sudo systemctl stop filebeat
sudo apt remove filebeat
sudo rm -rf /etc/filebeat /var/lib/filebeat
Debian 下用 Filebeat = 装包 → 改
/etc/filebeat/filebeat.yml→ enable module → systemctl 启动
如果你告诉我:
我可以直接给你一份 可复制的配置文件。