在 Docker 上运行 Heartbeat编辑

Heartbeat 的 Docker 镜像可从 Elastic Docker 仓库获取。基础镜像为 centos:7

所有已发布的 Docker 镜像和标签的列表可在 www.docker.elastic.co 获取。

这些镜像可根据 Elastic 许可免费使用。它们包含开源和免费的商业功能,以及对付费商业功能的访问。 开始 30 天试用 以尝试所有付费商业功能。有关 Elastic 许可级别的信息,请参见 订阅 页面。

拉取镜像编辑

获取 Docker 版 Heartbeat 与对 Elastic Docker 仓库发出 docker pull 命令一样简单。

docker pull docker.elastic.co/beats/heartbeat:8.14.3

或者,您可以下载仅包含 Apache 2.0 许可下可用功能的其他 Docker 镜像。要下载镜像,请访问 www.docker.elastic.co

可选:验证镜像编辑

您可以使用 Cosign 应用程序 验证 Heartbeat Docker 镜像签名。

wget https://artifacts.elastic.co/cosign.pub
cosign verify --key cosign.pub docker.elastic.co/beats/heartbeat:8.14.3

命令 cosign 将以 JSON 格式打印检查结果和签名负载。

Verification for docker.elastic.co/beats/heartbeat: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

运行 Heartbeat 设置编辑

使用设置命令运行 Heartbeat 将创建索引模式并加载可视化和机器学习作业。运行此命令。

docker run \
--cap-add=NET_RAW \
docker.elastic.co/beats/heartbeat:8.14.3 \
setup -E setup.kibana.host=kibana:5601 \
-E output.elasticsearch.hosts=["elasticsearch:9200"]  

替换您的 Kibana 和 Elasticsearch 主机和端口。

如果您使用的是 Elastic Cloud 中托管的 Elasticsearch 服务,请使用以下语法将 -E output.elasticsearch.hosts 行替换为 Cloud ID 和 elastic 密码

-E cloud.id=<Cloud ID from Elasticsearch Service> \
-E cloud.auth=elastic:<elastic password>

在 Docker 上配置 Heartbeat编辑

Docker 镜像提供了几种配置 Heartbeat 的方法。传统方法是通过卷挂载提供配置文件,但也可以创建包含配置的自定义镜像。

示例配置文件编辑

下载此示例配置文件作为起点。

curl -L -O https://raw.githubusercontent.com/elastic/beats/8.14/deploy/docker/heartbeat.docker.yml

卷挂载配置编辑

在 Docker 上配置 Heartbeat 的一种方法是通过卷挂载提供 heartbeat.docker.yml。使用 docker run,卷挂载可以像这样指定。

docker run -d \
  --name=heartbeat \
  --user=heartbeat \
  --volume="$(pwd)/heartbeat.docker.yml:/usr/share/heartbeat/heartbeat.yml:ro" \
  --cap-add=NET_RAW \
  docker.elastic.co/beats/heartbeat:8.14.3 \
  --strict.perms=false -e \
  -E output.elasticsearch.hosts=["elasticsearch:9200"]  

替换您的 Elasticsearch 主机和端口。

如果您使用的是 Elastic Cloud 中托管的 Elasticsearch 服务,请使用前面显示的语法将 -E output.elasticsearch.hosts 行替换为 Cloud ID 和 elastic 密码。

自定义您的配置编辑

先前下载的 heartbeat.docker.yml 应针对您的环境进行自定义。有关更多详细信息,请参见 配置。编辑配置文件并将其自定义以匹配您的环境,然后重新部署您的 Heartbeat 容器。

自定义镜像配置编辑

您可以在自定义镜像中嵌入 Heartbeat 配置。以下是一个 Dockerfile 示例,用于实现此目的。

FROM docker.elastic.co/beats/heartbeat:8.14.3
COPY --chown=root:heartbeat heartbeat.yml /usr/share/heartbeat/heartbeat.yml

所需网络功能编辑

在 Docker 中,Heartbeat 以非 root 用户身份运行,但需要一些特权网络功能才能正常运行。确保容器可以使用 NET_RAW 功能。

docker run --cap-add=NET_RAW docker.elastic.co/beats/heartbeat:8.14.3