
jaegertracing/jaeger-anonymizer本Docker镜像提供了一个轻量级的跟踪数据化工具,旨在对各类跟踪信息(如分布式系统跟踪日志、性能监控轨迹等)进行自动化化处理。通过移除或脱敏其中的敏感数据(如个人标识、设备信息、IP地址等),在保护用户隐私和数据合规性的同时,保留跟踪数据的结构完整性和分析价值,适用于开发测试、数据分析、合规审计等场景。
***)、哈希(SHA-256等算法哈希处理)等策略。bashdocker pull trace-anonymizer:latest
对本地traces.json文件(Jaeger格式)进行***化,敏感字段user_id采用哈希策略,输出至anonymized_traces.json:
bashdocker run --rm \ -v $(pwd):/data \ trace-anonymizer:latest \ --input /data/traces.json \ --output /data/anonymized_traces.json \ --format jaeger \ --strategy hash \ --sensitive-fields user_id,ip_address
通过环境变量预设***策略,批量处理目录下所有OpenTelemetry格式跟踪文件:
bashdocker run --rm \ -v $(pwd)/input:/input \ # 输入目录(存放待处理跟踪文件) -v $(pwd)/output:/output \ # 输出目录(存放***化后文件) -e INPUT_FORMAT=opentelemetry \ -e ANONYMIZATION_STRATEGY=mask \ # 全局默认策略:掩码 -e SENSITIVE_FIELDS=user_id,device_id,email \ # 需处理的敏感字段列表 trace-anonymizer:latest \ --input-dir /input \ # 指定批量处理目录 --output-dir /output
yamlversion: '3.8' services: trace-anonymizer: image: trace-anonymizer:latest volumes: - ./traces:/input # 挂载本地跟踪数据目录 - ./anonymized:/output # 挂载***化结果输出目录 environment: - INPUT_FORMAT=opentelemetry - ANONYMIZATION_STRATEGY=replace - REPLACE_VALUE=anonymous # 替换策略的默认替换值 - SENSITIVE_FIELDS=trace.id,span.id,client.ip # 自定义敏感字段 command: --input-dir /input --output-dir /output --log-level info # 启用信息级日志
| 参数名 | 描述 | 可选值/示例 | 是否必填 |
|---|---|---|---|
--input | 单个输入文件路径 | /data/trace.json | 否(与--input-dir二选一) |
--input-dir | 批量处理的输入目录路径 | /data/traces | 否(与--input二选一) |
--output | 单个输出文件路径 | /data/anonymized_trace.json | 否(与--output-dir二选一) |
--output-dir | 批量处理的输出目录路径 | /data/anonymized | 否(与--output二选一) |
--format | 输入跟踪数据格式 | opentelemetry/jaeger/zipkin | 是 |
--strategy | ***化策略(优先级高于环境变量) | replace/mask/hash | 否(默认mask) |
--sensitive-fields | 需***化的敏感字段(逗号分隔) | user_id,ip,email | 是 |
--config | 自定义配置文件路径(JSON格式) | /etc/anonymizer/config.json | 否 |
--log-level | 日志级别 | debug/info/warn/error | 否(默认info) |
| 环境变量名 | 描述 | 示例值 |
|---|---|---|
INPUT_FORMAT | 默认输入格式(可被命令行--format覆盖) | jaeger |
ANONYMIZATION_STRATEGY | 默认***策略(可被命令行--strategy覆盖) | hash |
SENSITIVE_FIELDS | 默认敏感字段列表(可被命令行--sensitive-fields覆盖) | device_id,user_agent |
REPLACE_VALUE | replace策略的默认替换值 | anonymous_user |
HASH_SALT | hash策略的加盐值(增强哈希安全性) | my-secret-salt-123 |
MASK_CHAR | mask策略的掩码字符 | *(默认)/# |
通过JSON配置文件定义多字段差异化策略(优先级高于命令行和环境变量):
json{ "input_format": "opentelemetry", "fields": [ {"name": "user_id", "strategy": "hash", "salt": "trace-salt-456"}, {"name": "ip_address", "strategy": "mask", "mask_char": "x", "mask_length": 4}, // 保留最后4位,如`xxx.xxx.xxx.123` {"name": "email", "strategy": "replace", "value": "***"} ], "log_level": "debug" }
使用自定义配置文件运行:
bashdocker run --rm \ -v $(pwd)/config.json:/etc/anonymizer/config.json \ -v $(pwd)/trace.json:/input/trace.json \ -v $(pwd)/output:/output \ trace-anonymizer:latest \ --input /input/trace.json \ --output /output/anonymized.json \ --config /etc/anonymizer/config.json






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务