elastic/heartbeatHeartbeat是Elastic Stack的一部分,是一款轻量级主动监控工具,通过定期发送探测请求(如HTTP、TCP、ICMP等)检查服务可用性和响应时间。本Docker镜像是由Elastic官方维护的容器化部署方案,旨在简化Heartbeat的安装与配置,适用于各类环境的服务监控场景。
从Elastic官方镜像仓库拉取指定版本(以8.11.3为例):
bashdocker pull docker.elastic.co/beats/heartbeat:8.11.3
bashdocker run -d \ --name heartbeat \ --user=root \ # 部分探测(如ICMP)需root权限 docker.elastic.co/beats/heartbeat:8.11.3
注意:默认配置需配合Elasticsearch使用,未配置时可能无法正常输出数据。
推荐通过外部配置文件定义监控规则,示例:
bashdocker run -d \ --name heartbeat \ --user=root \ -v /host/path/to/heartbeat.yml:/usr/share/heartbeat/heartbeat.yml:ro \ # 挂载本地配置文件 -v /host/path/to/data:/usr/share/heartbeat/data \ # 持久化数据目录(可选) docker.elastic.co/beats/heartbeat:8.11.3
yamlversion: '3' services: heartbeat: image: docker.elastic.co/beats/heartbeat:8.11.3 user: root volumes: - ./heartbeat.yml:/usr/share/heartbeat/heartbeat.yml:ro - ./data:/usr/share/heartbeat/data environment: - ELASTICSEARCH_HOSTS=[***] - KIBANA_HOST=[***] - ELASTICSEARCH_USERNAME=elastic - ELASTICSEARCH_PASSWORD=changeme depends_on: - elasticsearch - kibana elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.11.3 environment: - discovery.type=single-node - xpack.security.enabled=true - ELASTIC_PASSWORD=changeme ports: - "9200:9200" kibana: image: docker.elastic.co/kibana/kibana:8.11.3 environment: - ELASTICSEARCH_HOSTS=[***] - ELASTICSEARCH_USERNAME=elastic - ELASTICSEARCH_PASSWORD=changeme ports: - "5601:5601" depends_on: - elasticsearch
需重点配置以下参数(完整配置可参考官方文档):
yamlheartbeat.monitors: - type: http # 监控类型(http/tcp/icmp等) urls: ["[***]"] # 目标URL schedule: '@every 10s' # 探测频率 timeout: 5s # 超时时间 output.elasticsearch: hosts: ["[***]"] # Elasticsearch地址 username: "elastic" password: "changeme" setup.kibana: host: "[***]" # Kibana地址,用于导入仪表盘
支持通过环境变量覆盖配置文件参数,常用变量:
ELASTICSEARCH_HOSTS:Elasticsearch服务地址(逗号分隔)ELASTICSEARCH_USERNAME/ELASTICSEARCH_PASSWORD:Elasticsearch认证信息KIBANA_HOST:Kibana服务地址BEAT_NAME:自定义Beat实例名称HEARTBEAT_MONITORS:JSON格式的监控规则配置(覆盖heartbeat.monitors)--cap-add=NET_RAW参数添加docker run --rm docker.elastic.co/beats/heartbeat:8.11.3 test config -e验证配置文件/usr/share/heartbeat/data目录可保存监控状态数据,防止容器重启后丢失上下文更多详细配置与最佳实践请参考官方文档:
Running Heartbeat on Docker
Elastic Docker Registry
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务