在 Docker 上运行 Auditbeat
编辑在 Docker 上运行 Auditbeat
编辑Auditbeat 的 Docker 镜像可从 Elastic Docker 注册中心获取。基础镜像是 centos:7。
所有已发布的 Docker 镜像和标签的列表可在 www.docker.elastic.co 上找到。
这些镜像可以根据 Elastic 许可证免费使用。它们包含开源和免费的商业功能,以及对付费商业功能的访问。开始 30 天试用,试用所有付费的商业功能。有关 Elastic 许可证级别的更多信息,请参阅订阅页面。
拉取镜像
编辑从 Elastic Docker 注册中心获取 Auditbeat 非常简单,只需执行 docker pull
命令。
docker pull docker.elastic.co/beats/auditbeat:8.17.0
或者,您可以下载其他仅包含 Apache 2.0 许可证下可用功能的 Docker 镜像。要下载镜像,请访问 www.docker.elastic.co。
可选:验证镜像
编辑您可以使用 Cosign 应用程序来验证 Auditbeat Docker 镜像的签名。
wget https://artifacts.elastic.co/cosign.pub cosign verify --key cosign.pub docker.elastic.co/beats/auditbeat:8.17.0
cosign
命令会以 JSON 格式打印检查结果和签名有效负载。
Verification for docker.elastic.co/beats/auditbeat:8.17.0 -- 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
运行 Auditbeat 设置
编辑使用 setup 命令运行 Auditbeat 将创建索引模式并加载可视化、仪表板和机器学习作业。运行此命令
docker run --rm \ --cap-add="AUDIT_CONTROL" \ --cap-add="AUDIT_READ" \ docker.elastic.co/beats/auditbeat:8.17.0 \ setup -E setup.kibana.host=kibana:5601 \ -E output.elasticsearch.hosts=["elasticsearch:9200"]
替换您的 Kibana 和 Elasticsearch 主机和端口。 |
|
如果您正在使用 Elastic Cloud 中的托管 Elasticsearch 服务,请使用以下语法将 |
-E cloud.id=<Cloud ID from Elasticsearch Service> \ -E cloud.auth=elastic:<elastic password>
在只读文件系统上运行 Auditbeat
编辑如果您想在只读文件系统上的 Docker 容器中运行 Auditbeat,可以通过指定 --read-only
选项来实现。Auditbeat 需要一个有状态的目录来存储应用程序数据,因此在使用 --read-only
选项时,还需要使用 --mount
选项来指定可以存储该数据的路径。
例如
docker run --rm \ --mount type=bind,source=$(pwd)/data,destination=/usr/share/auditbeat/data \ --read-only \ docker.elastic.co/beats/auditbeat:8.17.0
在 Docker 上配置 Auditbeat
编辑Docker 镜像提供了几种配置 Auditbeat 的方法。传统的方法是通过卷挂载提供配置文件,但也可以创建包含您的配置的自定义镜像。
示例配置文件
编辑下载此示例配置文件作为起点
curl -L -O https://raw.githubusercontent.com/elastic/beats/8.17/deploy/docker/auditbeat.docker.yml
卷挂载配置
编辑在 Docker 上配置 Auditbeat 的一种方法是通过卷挂载提供 auditbeat.docker.yml
。使用 docker run
,可以像这样指定卷挂载。
docker run -d \ --name=auditbeat \ --user=root \ --volume="$(pwd)/auditbeat.docker.yml:/usr/share/auditbeat/auditbeat.yml:ro" \ --cap-add="AUDIT_CONTROL" \ --cap-add="AUDIT_READ" \ --pid=host \ docker.elastic.co/beats/auditbeat:8.17.0 -e \ --strict.perms=false \ -E output.elasticsearch.hosts=["elasticsearch:9200"]
自定义您的配置
编辑之前下载的 auditbeat.docker.yml
应针对您的环境进行自定义。有关更多详细信息,请参阅 配置。编辑配置文件并对其进行自定义以匹配您的环境,然后重新部署您的 Auditbeat 容器。
自定义镜像配置
编辑可以将您的 Auditbeat 配置嵌入到自定义镜像中。以下是实现此目的的示例 Dockerfile
FROM docker.elastic.co/beats/auditbeat:8.17.0 COPY auditbeat.yml /usr/share/auditbeat/auditbeat.yml
特殊要求
编辑在 Docker 下,Auditbeat 以非 root 用户身份运行,但需要一些特权功能才能正常运行。确保容器可以使用 AUDIT_CONTROL
和 AUDIT_READ
功能。
在主机 PID 命名空间中运行 Auditbeat 也是至关重要的。
docker run --cap-add=AUDIT_CONTROL --cap-add=AUDIT_READ --user=root --pid=host docker.elastic.co/beats/auditbeat:8.17.0