cloudflare/complainerComplainer的作用是当Mesos集群中的任务失败时,向不同服务发送通知。尽管系统应能应对单个任务的故障,但了解任务何时失败及原因非常有用。
将所有失败发送到Sentry:
bashdocker run -it --rm cloudflare/complainer \ -masters=[***] \ -uploader=noop \ -reporters=sentry \ -sentry.dsn=[***]
在Mesos上运行此命令!
!Sentry截图
Complainer需要以下命令行标志进行配置:
name - Complainer实例名称(默认值为default)。default - 是否为每个报告器隐式使用default实例。masters - Mesos主节点URL列表(例如:[***])。listen - HTTP监听地址(例如:127.0.0.1:8888)。这些设置也可通过环境变量应用:
COMPLAINER_NAME - Complainer实例名称(默认值为default)。COMPLAINER_DEFAULT - 是否为每个报告器隐式使用default实例。COMPLAINER_MASTERS - Mesos主节点URL列表(例如:[***])。COMPLAINER_LISTEN - HTTP监听地址(例如:127.0.0.1:8888)。如果您有多个Marathon运行在Mesos上,并希望将不同故障隔离到不同目标,以下选项可能有用。每个选项可多次指定。
framework-whitelist - 正则表达式选项;如果指定,故障框架必须至少匹配一个白名单。如果未指定白名单,则视为传递.*,即所有故障在不匹配黑名单的情况下均被白名单允许。framework-blacklist - 正则表达式选项;如果指定,任何匹配的故障将被忽略。注意:评估顺序为先应用黑名单,再应用白名单。
Complainer提供HTTP接口,需通过-listen命令行标志或COMPLAINER_LISTEN环境变量启用。
该接口用于:
/health端点在运行基本正常时返回200 OK,当Complainer无法与Mesos通信时返回500 Internal Server Error。
我们不检查其他问题(上传器和报告器故障),因为它们不一定持续发生且可能自行恢复。
/version端点返回200 OK并输出应用当前版本:
complainer (default) v1.7.0
/debug/pprof端点公开常规net/http/pprof接口:
日志上传服务通过命令行标志uploader指定,也可通过环境变量COMPLAINER_UPLOADER指定。每个Complainer实例只能指定一个上传器。
上传器名称:noop
No-op上传器仅回显Mesos从节点沙箱URL。
上传器名称:s3aws。
此上传器使用官方AWS SDK,适用于AWS环境。
标准输出和标准错误日志将上传到S3,并向报告器提供签名URL。默认日志上传目录结构:
${YYYY-MM-DD}/complainer/${task_name}/${YYYY-MM-DDTHH:mm:ssZ}-${task_id}/{stdout,stderr}命令行标志:
s3aws.access_key - S3访问密钥。s3aws.secret_key - S3密钥。s3aws.region - S3区域。s3aws.bucket - S3存储桶名称。s3aws.prefix - S3前缀模板(可使用Failure结构体)。s3aws.timeout - S3签名URL超时时间(例如:72h)。任何命令行标志的值都可通过环境变量设置,例如:标志s3aws.access_key对应环境变量S3_ACCESS_KEY。
如果同时提供标志和环境变量,标志优先。
Complainer所需的最小AWS策略为s3:PutObject:
S3兼容API
上传器名称:s3goamz。
此上传器使用goamz包,支持使用v2风格签名的S3兼容API,包括Ceph Rados Gateway。
标准输出和标准错误日志将上传到S3,并向报告器提供签名URL。默认日志上传目录结构:
${YYYY-MM-DD}/complainer/${task_name}/${YYYY-MM-DDTHH:mm:ssZ}-${task_id}/{stdout,stderr}命令行标志:
s3goamz.access_key - S3访问密钥。s3goamz.secret_key - S3密钥。s3goamz.endpoint - S3端点(例如:[***])。s3goamz.bucket - S3存储桶名称。s3goamz.prefix - S3前缀模板(可使用Failure结构体)。s3goamz.timeout - S3签名URL超时时间(例如:72h)。任何命令行标志的值都可通过环境变量设置,例如:标志s3goamz.access_key对应环境变量S3_ACCESS_KEY。
如果同时提供标志和环境变量,标志优先。
报告服务通过命令行标志reporters指定,也可通过环境变量COMPLAINER_REPORTERS指定。可指定多个服务,用逗号分隔。
命令行标志:
sentry.dsn - 用于报告的默认Sentry DSN。标签:
dsn - 用于报告的Sentry DSN。如果未指定标签,则使用命令行标志值。
命令行标志:
hipchat.base_url - Hipchat基础URL,本地部署时需要。hipchat的.room - 默认用于发送通知的Hipchat房间ID。hipchat.token - 默认的Hipchat令牌。hipchat.format - 消息格式模板。标签:
hipchat.room - 房间ID。hipchat.token - 令牌。如果未指定标签,则使用命令行标志值。
模板使用text/template,可用字段:
failure - 故障信息。stdoutURL - 标准输出URL。stderrURL - 标准错误URL。标签:
stdoutURL - 标准输出URL。如果未指定标签,则使用命令行标志值。
COMPLAINER_UPLOADER=noop
COMPLAINER_REPORTERS=slack
COMPLAINER_UPLOADER=noop COMPLAINER_REPORTERS=slack
COMPLAINER_UPLOADER=slack
COMPLAINER_UPLOADER=noop COMPLAINER_REPORTERS=slack
(注:此处应根据实际内容调整,确保与原文一致)
对于每个服务,确保参数正确配置,例如,sentry.dsn是必须的,而其他参数根据实际情况调整。
假设我们要配置一个Sentry报告器,命令行参数可以是:
-uploader=noop -reporters=slack
而环境变量可以是:
COMPLAINER_UPLOADER=noop COMPLAINER_REPORTERS=slack
在配置时,需要确保每个服务的必填参数已设置,例如,sentry.dsn是必须的。
通过配置不同的报告服务,用户可以灵活地将故障信息发送到不同的平台,提高问题解决效率。
(注:上述部分可能需要根据原文内容进行调整,确保准确反映原文的结构和内容。)
MIT
(注:此处可能需要根据实际内容调整,确保准确反映原文的结构和内容。)
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务