ubuntu

Ubuntu Filebeat在容器中的部署方法

小樊
36
2025-11-03 02:09:24
栏目: 智能运维

Ubuntu环境下Filebeat在容器中的部署方法

1. 准备工作

确保Ubuntu主机已安装Docker Engine(版本≥18.03),若未安装可通过以下命令快速部署:

sudo apt-get update
sudo apt-get install -y docker.io docker-compose
sudo systemctl enable --now docker

2. 获取Filebeat容器镜像

从Elastic官方仓库拉取最新稳定版Filebeat镜像(以7.17.8为例):

docker pull docker.elastic.co/beats/filebeat:7.17.8

3. 配置Filebeat容器卷与参数

Filebeat需访问宿主机的容器日志目录/var/lib/docker/containers)和自定义配置文件filebeat.yml),通过-v参数挂载:

docker run -d \
  --name=filebeat \
  --user=root \  # 需root权限读取日志文件
  --volume="/var/lib/docker/containers:/var/lib/docker/containers:ro" \  # 挂载Docker容器日志目录
  --volume="/etc/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro" \  # 挂载配置文件
  --volume="/etc/localtime:/etc/localtime:ro" \  # 同步宿主机时区
  docker.elastic.co/beats/filebeat:7.17.8

4. 编写Filebeat核心配置文件(filebeat.yml)

配置文件需定义日志输入源(Docker容器日志)、输出目标(如Elasticsearch)及处理器(可选)。示例如下:

filebeat.inputs:
- type: docker  # 输入类型为Docker容器日志
  containers.ids:
    - "*"  # 监控所有容器
  paths:
    - /var/lib/docker/containers/*/*.log  # Docker日志默认路径
  json.keys_under_root: true  # 将JSON日志的键提升至根层级
  json.add_error_key: true  # 添加错误键便于调试

processors:
- add_docker_metadata: ~  # 自动添加容器元数据(如容器ID、名称、镜像)

output.elasticsearch:
  hosts: ["http://localhost:9200"]  # Elasticsearch地址(若在容器外需替换为宿主机IP)
  username: "elastic"  # 认证用户名(默认elastic)
  password: "your_password"  # 认证密码(需提前设置)

5. 验证部署有效性

6. 高级优化(可选)

注意事项

0
看了该问题的人还看了