在 Docker 上运行 Filebeat
编辑在 Docker 上运行 Filebeat编辑
Filebeat 的 Docker 镜像可从 Elastic Docker 注册表获取。基本镜像是 centos:7。
所有已发布 Docker 镜像和标签的列表可在 www.docker.elastic.co 上找到。
这些镜像可在 Elastic 许可证下免费使用。它们包含开源和免费的商业功能,以及对付费商业功能的访问权限。开始 30 天试用,体验所有付费商业功能。有关 Elastic 许可证级别的信息,请参阅订阅页面。
拉取镜像编辑
获取 Filebeat for Docker 就像对 Elastic Docker 注册表执行 docker pull
命令一样简单。
docker pull docker.elastic.co/beats/filebeat:8.14.3
或者,您可以下载其他仅包含 Apache 2.0 许可证下可用功能的 Docker 镜像。要下载镜像,请访问 www.docker.elastic.co。
可选:验证镜像编辑
您可以使用 Cosign 应用程序 来验证 Filebeat Docker 镜像签名。
wget https://artifacts.elastic.co/cosign.pub cosign verify --key cosign.pub docker.elastic.co/beats/filebeat:8.14.3
cosign
命令以 JSON 格式打印检查结果和签名有效负载
Verification for docker.elastic.co/beats/filebeat:8.14.3 -- The following checks were performed on each of these signatures: - The cosign claims were validated - Existence of the claims in the transparency log was verified offline - The signatures were verified against the specified public key
运行 Filebeat 设置编辑
使用 setup 命令运行 Filebeat 将创建索引模式并加载可视化、仪表板和机器学习作业。运行此命令
docker run \ docker.elastic.co/beats/filebeat:8.14.3 \ setup -E setup.kibana.host=kibana:5601 \ -E output.elasticsearch.hosts=["elasticsearch:9200"]
替换您的 Kibana 和 Elasticsearch 主机和端口。 |
|
如果您在 Elastic Cloud 中使用托管 Elasticsearch Service,请使用以下语法将 |
-E cloud.id=<Cloud ID from Elasticsearch Service> \ -E cloud.auth=elastic:<elastic password>
在 Docker 上配置 Filebeat编辑
Docker 镜像提供了多种配置 Filebeat 的方法。传统的方法是通过卷挂载提供配置文件,但也可以使用包含您配置的自定义镜像。
示例配置文件编辑
下载此示例配置文件作为起点
curl -L -O https://raw.githubusercontent.com/elastic/beats/8.14/deploy/docker/filebeat.docker.yml
卷挂载配置编辑
在 Docker 上配置 Filebeat 的一种方法是通过卷挂载提供 filebeat.docker.yml
。使用 docker run
,可以像这样指定卷挂载。
docker run -d \ --name=filebeat \ --user=root \ --volume="$(pwd)/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro" \ --volume="/var/lib/docker/containers:/var/lib/docker/containers:ro" \ --volume="/var/run/docker.sock:/var/run/docker.sock:ro" \ --volume="registry:/usr/share/filebeat/data:rw" \ docker.elastic.co/beats/filebeat:8.14.3 filebeat -e --strict.perms=false \ -E output.elasticsearch.hosts=["elasticsearch:9200"]
自定义您的配置编辑
您之前下载的 filebeat.docker.yml
文件配置为根据应用于您的容器的 Docker 标签部署 Beats 模块。有关更多详细信息,请参阅基于提示的自动发现。将标签添加到您的应用程序 Docker 容器中,当它们部署时,Beats 自动发现功能将拾取它们。下面是一个 Apache HTTP Server 容器的示例命令,其中包含用于为 Apache HTTP Server 配置 Filebeat 和 Metricbeat 模块的标签
docker run \ --label co.elastic.logs/module=apache2 \ --label co.elastic.logs/fileset.stdout=access \ --label co.elastic.logs/fileset.stderr=error \ --label co.elastic.metrics/module=apache \ --label co.elastic.metrics/metricsets=status \ --label co.elastic.metrics/hosts='${data.host}:${data.port}' \ --detach=true \ --name my-apache-app \ -p 8080:80 \ httpd:2.4
自定义镜像配置编辑
可以将您的 Filebeat 配置嵌入到自定义镜像中。下面是一个实现此目的的 Dockerfile 示例
FROM docker.elastic.co/beats/filebeat:8.14.3 COPY --chown=root:filebeat filebeat.yml /usr/share/filebeat/filebeat.yml