
lsdtrip/sauron-collector该Docker镜像提供了一个轻量级代理程序,专注于从各类目标系统(如应用服务、数据库、基础设施等)抓取指标数据,并将其标准化后发送至集中式可观测性平台,以支持统一的监控、分析与告警能力。镜像设计旨在简化分布式环境下的指标收集流程,降低可观测性体系的部署复杂度。
通过docker run快速启动代理,示例如下:
bashdocker run -d \ --name metrics-agent \ --restart always \ -p 9091:9091 \ # 代理自身监控端点(可选) -e SCRAPE_INTERVAL=30s \ # 抓取频率,默认30s -e TARGETS="[***]" \ # 目标指标端点,逗号分隔 -e OUTPUT_TYPE=prometheus \ # 输出平台类型,支持prometheus/elasticsearch/datadog -e OUTPUT_ENDPOINT="[***]" \ # 目标平台接收端点 -v /host/path/config.yml:/app/config.yml \ # 挂载自定义配置文件(可选,优先级高于环境变量) your-registry/metrics-agent:latest
在多容器环境中,通过docker-compose.yml整合代理服务:
yamlversion: '3.8' services: metrics-agent: image: your-registry/metrics-agent:latest container_name: metrics-agent restart: always ports: - "9091:9091" environment: - LOG_LEVEL=info # 日志级别:debug/info/warn/error,默认info - SCRAPE_TIMEOUT=10s # 单次抓取超时时间,默认10s - TARGETS_FILE=/app/targets.list # 从文件读取目标列表(每行一个URL,与TARGETS二选一) - OUTPUT_TYPE=prometheus - OUTPUT_ENDPOINT="[***]" volumes: - ./config.yml:/app/config.yml # 自定义配置文件 - ./targets.list:/app/targets.list # 目标列表文件 depends_on: - prometheus # 确保目标平台先启动 prometheus: image: prom/prometheus:latest # Prometheus配置...
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
SCRAPE_INTERVAL | 字符串 | 30s | 指标抓取频率,支持s(秒)、m(分钟)单位,如1m30s |
SCRAPE_TIMEOUT | 字符串 | 10s | 单次抓取超时时间,同上 |
TARGETS | 字符串 | 无 | 目标指标端点URL列表,逗号分隔(与TARGETS_FILE二选一,不可同时设置) |
TARGETS_FILE | 字符串 | 无 | 目标列表文件路径,文件内每行一个URL(与TARGETS二选一) |
OUTPUT_TYPE | 字符串 | prometheus | 输出平台类型,可选值:prometheus/elasticsearch/datadog |
OUTPUT_ENDPOINT | 字符串 | 无(必填) | 目标平台的指标接收端点URL |
OUTPUT_TIMEOUT | 字符串 | 15s | 指标发送至目标平台的超时时间 |
LOG_LEVEL | 字符串 | info | 日志级别,可选值:debug/info/warn/error |
HEALTHCHECK_PORT | 整数 | 9091 | 健康检查与自身监控端点端口 |
当通过-v挂载自定义配置文件(如config.yml)时,支持更复杂的配置,示例:
yamlscrape: interval: 30s timeout: 10s targets: - url: [***] labels: # 为该目标添加自定义标签 service: "user-service" env: "production" - url: [***] scrape_interval: 60s # 覆盖全局抓取频率 filters: # 指标过滤规则 include: ["^mysql_.*", "^node_.*"] # 仅保留匹配的指标 exclude: ["^mysql_connections_idle$"] # 排除指定指标 output: type: prometheus endpoint: [***] timeout: 15s basic_auth: # 若目标平台需要认证 username: "metrics-writer" password: "${OUTPUT_PASSWORD}" # 支持引用环境变量 transform: # 数据转换规则 - action: "rename" metric: "http_requests_total" new_name: "api_requests_total" - action: "add_label" metric: ".*" label: "agent_version" value: "v1.2.0"
代理程序暴露/health端点(默认端口9091)用于健康检查,返回状态码200表示运行正常:
bashcurl http://localhost:9091/health # 响应:{"status":"ok","scraped_targets":2,"successful_scrapes":2,"last_scrape_time":"2023-10-01T12:00:00Z"}
同时,/metrics端点提供代理自身的运行指标(如抓取成功率、发送延迟、资源占用等),可直接被Prometheus等工具抓取。
TARGETS端点及OUTPUT_ENDPOINT,建议通过Docker网络或服务发现机制配置网络连接nobody)有读取权限--memory和--cpus参数限制容器资源使用,避免影响其他服务
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务