可以的,Filebeat 在 Ubuntu 上完全可以以容器方式部署(通常是 Docker 容器)。下面从是否可行、常见部署方式、注意事项几个方面说明。
结论:可以,而且官方支持。
Elastic 官方提供了 Filebeat 的 Docker 镜像:
docker.elastic.co/beats/filebeat无论是在 Ubuntu 宿主机、Ubuntu Server、还是 Ubuntu 云服务器,只要装了 Docker,就可以跑 Filebeat 容器。
docker run -d \
--name filebeat \
docker.elastic.co/beats/filebeat:8.13.0
但这样基本没用,因为:
docker run -d \
--name filebeat \
-v /var/log:/var/log:ro \
-v /path/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro \
docker.elastic.co/beats/filebeat:8.13.0
filebeat.yml 示例:
filebeat.inputs:
- type: log
paths:
- /var/log/*.log
output.elasticsearch:
hosts: ["http://elasticsearch:9200"]
docker run -d \
--name filebeat \
-v /var/lib/docker/containers:/var/lib/docker/containers:ro \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /path/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro \
docker.elastic.co/beats/filebeat:8.13.0
filebeat.yml:
filebeat.inputs:
- type: container
paths:
- '/var/lib/docker/containers/*/*.log'
output.logstash:
hosts: ["logstash:5044"]
/var/log 可能需要权限--user=root
或调整目录权限-v /etc/localtime:/etc/localtime:ro
如果是采集:
journald 日志建议:
-v /run/log/journal:/run/log/journal:ro
version: "3"
services:
filebeat:
image: docker.elastic.co/beats/filebeat:8.13.0
volumes:
- /var/log:/var/log:ro
- ./filebeat.yml:/usr/share/filebeat/filebeat.yml:ro
user: root
| 对比项 | 容器部署 | 宿主机部署 |
|---|---|---|
| 安装复杂度 | 低 | 中 |
| 升级 | 容易 | 一般 |
| 权限控制 | 稍复杂 | 简单 |
| 采集宿主机日志 | 需挂载 | 原生 |
| 云原生友好 | ✅ | ❌ |
✅ Ubuntu 上完全可以用 Docker 部署 Filebeat
✅ 官方支持、生产可用
✅ 适合:
如果你愿意,可以告诉我:
我可以给你一套可直接用的配置。