如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
通过Consul配置的Filebeat客户端镜像
filebeat-consul是一个基于Filebeat的日志收集镜像,通过Consul-Template从Consul KV存储动态获取配置,实现日志收集规则的集中化管理。适用于需要灵活配置日志采集、支持多实例和多环境隔离的场景,可将日志数据发送至Elasticsearch等目标存储。
CLUSTER_NAME实现不同Filebeat实例的配置隔离SERVICE_ENV区分不同环境的日志索引| 名称 | 描述 | 默认值 |
|---|---|---|
| SERVICE_KV_PATH | Consul KV中存储Filebeat配置的根路径 | "filebeat" |
| CONSUL_TOKEN | Consul ACL令牌,参考[***] | |
| CONSUL_HTTP_ADDR | Consul服务地址 | [***] |
| CLUSTER_NAME | KV路径中用于区分不同Filebeat实例的子文件夹名称 | ecs-cluster |
| SERVICE_ENV | Elasticsearch索引名的环境前缀 | stage |
/var/log/ - 日志文件挂载点,用于采集宿主机或容器日志!https://raw.githubusercontent.com/pdffillerdocker/filebeat-consul/master/_docs/filebeat.png
用于设置日志文件自动清理策略。
| 名称 | 描述 |
|---|---|
| logs_TTL | 日志文件保留时间(分钟),超过该时间未修改的文件将被自动删除 |
清理器配置示例(通过bash脚本设置Consul KV)
bash#!/bin/bash SERVICE_KV_PATH="filebeat" CONSUL_SERVER_URL="http://localhost:8500" # 设置日志文件保留时间为180分钟 curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/config/logs_TTL <<< "180"
配置日志输出目标(如Elasticsearch)。
| 名称 | 描述 |
|---|---|
| es_host | Elasticsearch地址 |
| es_port | Elasticsearch端口 |
输出配置示例(通过bash脚本设置Consul KV)
bash#!/bin/bash SERVICE_KV_PATH="filebeat" CONSUL_SERVER_URL="http://localhost:8500" # 设置Elasticsearch地址 curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/config/es_host <<< "localhost" # 设置Elasticsearch端口 curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/config/es_port <<< "9200"
配置日志采集规则,每个输入项对应一个日志源。
| 名称 | 描述 | 是否必填 | 默认值 |
|---|---|---|---|
| type | Filebeat输入类型,例如:docker | 否 | log |
| doc_type | 日志文档类型字段值 | 是 | |
| index_prefix | Elasticsearch索引前缀,最终索引名格式:"SERVICE_ENV-%{[fields.index_prefix]}-%{+yyyy.MM.dd}" | 当type为log时必填 | |
| json | 布尔值,设置为true表示日志为JSON格式 | 是 | |
| path | 日志文件路径匹配模式(Docker日志使用:/var/lib/docker/containers) | 是 |
输入配置示例(通过bash脚本设置Consul KV)
bash#!/bin/bash CLUSTER_NAME="ecs-cluster" SERVICE_KV_PATH="filebeat" CONSUL_SERVER_URL="http://localhost:8500" # 配置container-1的nginx访问日志(JSON格式) curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/${CLUSTER_NAME}/container-1-nginx-access/doc_type <<< "container-1-nginx-access" curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/${CLUSTER_NAME}/container-1-nginx-access/index_prefix <<< "nginx-access" curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/${CLUSTER_NAME}/container-1-nginx-access/json <<< "1" curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/${CLUSTER_NAME}/container-1-nginx-access/path <<< "/var/log/container_1/nginx/*.json" # 配置container-1的nginx错误日志(非JSON格式) curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/${CLUSTER_NAME}/container-1-nginx-error/doc_type <<< "container-1-nginx-error" curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/${CLUSTER_NAME}/container-1-nginx-error/index_prefix <<< "nginx-error" curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/${CLUSTER_NAME}/container-1-nginx-error/json <<< "0" curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/${CLUSTER_NAME}/container-1-nginx-error/path <<< "/var/log/container_1/nginx/*.log" # 配置container-2的nginx访问日志(JSON格式) curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/${CLUSTER_NAME}/container-2-nginx-access/doc_type <<< "container-2-nginx-access" curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/${CLUSTER_NAME}/container-2-nginx-access/index_prefix <<< "nginx-access" curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/${CLUSTER_NAME}/container-2-nginx-access/json <<< "1" curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/${CLUSTER_NAME}/container-2-nginx-access/path <<< "/var/log/container_1/nginx/*.json" # 配置container-2的nginx错误日志(非JSON格式) curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/${CLUSTER_NAME}/container-2-nginx-error/doc_type <<< "container-2-nginx-error" curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/${CLUSTER_NAME}/container-2-nginx-error/index_prefix <<< "nginx-error" curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/${CLUSTER_NAME}/container-2-nginx-error/json <<< "0" curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/${CLUSTER_NAME}/container-2-nginx-error/path <<< "/var/log/container_2/nginx/*.log" # Docker日志采集示例 curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/${CLUSTER_NAME}/container-1-nginx-docker/type <<< "docker" curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/${CLUSTER_NAME}/container-1-docker/doc_type <<< "container-1-nginx-docker" curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/${CLUSTER_NAME}/container-1-docker/index_prefix <<< "nginx-docker" curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/${CLUSTER_NAME}/container-1-docker/json <<< "1" curl -X PUT -d @- ${CONSUL_SERVER_URL}/v1/kv/${SERVICE_KV_PATH}/${CLUSTER_NAME}/container-1-docker/path <<< "/var/lib/docker/containers"
以下是filebeat-consul使用的示例KV键结构:
bashcurl --header "X-Consul-Token: 1234sampletoken" "http://localhost:8500/v1/kv/filebeat?keys" [ "filebeat/config/es_host", "filebeat/config/es_port", "filebeat/config/logs_TTL", "filebeat/ecs-cluster/container-1-nginx-access/doc_type", "filebeat/ecs-cluster/container-1-nginx-access/index_prefix", "filebeat/ecs-cluster/container-1-nginx-access/json", "filebeat/ecs-cluster/container-1-nginx-access/path", "filebeat/ecs-cluster/container-1-nginx-error/doc_type", "filebeat/ecs-cluster/container-1-nginx-error/index_prefix", "filebeat/ecs-cluster/container-1-nginx-error/json", "filebeat/ecs-cluster/container-1-nginx-error/path", "filebeat/ecs-cluster/container-2-nginx-access/doc_type", "filebeat/ecs-cluster/container-2-nginx-access/index_prefix", "filebeat/ecs-cluster/container-2-nginx-access/json", "filebeat/ecs-cluster/container-2-nginx-access/path", "filebeat/ecs-cluster/container-2-nginx-error/doc_type", "filebeat/ecs-cluster/container-2-nginx-error/index_prefix", "filebeat/ecs-cluster/container-2-nginx-error/json", "filebeat/ecs-cluster/container-2-nginx-error/path" ]
| 名称 | 描述 | 默认值 |
|---|---|---|
| FILEBEAT_VERSION | Filebeat版本 | 6.7.1 |
| CONSUL_TEMPLATE_VERSION | Consul-Template版本 | 0.22.0 |
| ALPINE_GLIBC_PACKAGE_VERSION | GLIBC版本 | 2.23-r1 |
pdffillerdocker/filebeat-consul基于https://github.com/pdffillerdocker/filebeat-consul/teamcity-docker-agent/blob/master/LICENSE%E5%BC%80%E6%BA%90%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

来自真实用户的反馈,见证轩辕镜像的优质服务