在 Docker 上运行 Packetbeat
编辑在 Docker 上运行 Packetbeat编辑
Packetbeat 的 Docker 镜像可从 Elastic Docker 仓库获取。基础镜像为 centos:7.
所有已发布的 Docker 镜像和标签列表可在 www.docker.elastic.co 上找到。
这些镜像在 Elastic 许可下可免费使用。它们包含开源和免费的商业功能,以及对付费商业功能的访问。 开始 30 天试用,试用所有付费商业功能。有关 Elastic 许可级别的信息,请参阅 订阅 页面。
拉取镜像编辑
从 Elastic Docker 仓库获取 Packetbeat for Docker 就像执行一个 docker pull
命令一样简单。
docker pull docker.elastic.co/beats/packetbeat:8.14.3
或者,您可以下载只包含 Apache 2.0 许可下提供的功能的其他 Docker 镜像。要下载镜像,请访问 www.docker.elastic.co.
可选:验证镜像编辑
您可以使用 Cosign 应用程序 验证 Packetbeat Docker 镜像签名。
wget https://artifacts.elastic.co/cosign.pub cosign verify --key cosign.pub docker.elastic.co/beats/packetbeat:8.14.3
cosign
命令以 JSON 格式打印检查结果和签名有效负载
Verification for docker.elastic.co/beats/packetbeat: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
运行 Packetbeat 设置编辑
使用设置命令运行 Packetbeat 将创建索引模式,并加载可视化、仪表板和机器学习作业。运行以下命令
docker run \ --cap-add=NET_ADMIN \ docker.elastic.co/beats/packetbeat:8.14.3 \ 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>
在 Docker 上配置 Packetbeat编辑
Docker 镜像提供了多种配置 Packetbeat 的方法。传统方法是通过卷挂载提供配置文件,但也可以创建包含您配置的自定义镜像。
示例配置文件编辑
下载此示例配置文件作为起点
curl -L -O https://raw.githubusercontent.com/elastic/beats/8.14/deploy/docker/packetbeat.docker.yml
卷挂载配置编辑
在 Docker 上配置 Packetbeat 的一种方法是通过卷挂载提供 packetbeat.docker.yml
。使用 docker run
,卷挂载可以这样指定。
docker run -d \ --name=packetbeat \ --user=packetbeat \ --volume="$(pwd)/packetbeat.docker.yml:/usr/share/packetbeat/packetbeat.yml:ro" \ --cap-add="NET_RAW" \ --cap-add="NET_ADMIN" \ --network=host \ docker.elastic.co/beats/packetbeat:8.14.3 \ --strict.perms=false -e \ -E output.elasticsearch.hosts=["elasticsearch:9200"]
自定义您的配置编辑
之前下载的 packetbeat.docker.yml
应该针对您的环境进行自定义。有关更多详细信息,请参阅 配置。编辑配置文件并将其自定义以匹配您的环境,然后重新部署您的 Packetbeat 容器。
自定义镜像配置编辑
可以将您的 Packetbeat 配置嵌入到自定义镜像中。以下是一个实现此目的的 Dockerfile 示例
FROM docker.elastic.co/beats/packetbeat:8.14.3 COPY --chown=root:packetbeat packetbeat.yml /usr/share/packetbeat/packetbeat.yml
所需的网络功能编辑
在 Docker 中,Packetbeat 作为非 root 用户运行,但需要一些特权网络功能才能正常运行。确保容器可以使用 NET_ADMIN
功能。
docker run --cap-add=NET_ADMIN docker.elastic.co/beats/packetbeat:8.14.3
捕获来自主机系统的流量编辑
默认情况下,Docker 网络将连接 Packetbeat 容器到一个隔离的虚拟网络,对网络流量的视图有限。您可能希望将容器直接连接到主机网络,以便查看发往和来自主机系统的流量。使用 docker run
,可以通过指定 --network=host
来实现这一点。
docker run --cap-add=NET_ADMIN --network=host docker.elastic.co/beats/packetbeat:8.14.3
在 Windows 和 MacOS 上,指定 --network=host
将绑定容器的网络接口到 Docker 嵌入式 Linux 虚拟机的虚拟接口,而不是到主机系统的物理接口。