我在这里没有选择。我安装了Confluence Prometheus出口商,该出口商已经工作了几个月。现在在迁移到Prometheus 2.x时我注意到它失败了(但它现在也在1.8上执行此操作,因此它不是由于迁移)。我不知道目标系统有任何变化。
到目前为止我检查过的事情:
如何获取更多信息进行调试?这是我在prometheus logfile中得到的:
May 8 10:38:59 prometheus-2-test prometheus[3404]: level=warn ts=2018-05-08T10:38:59.038653969Z caller=scrape.go:697 component="scrape manager" scrape_pool=confluence-prod target="https://myserver:443/plugins/servlet/prometheus/metrics?token=feakingSecurityToken" msg="append failed" err="no token found"
我认为scarpe.go中的相应行是:
// A failed scrape is the same as an empty scrape,
// we still call sl.append to trigger stale markers.
total, added, appErr := sl.append(b, start)
if appErr != nil {
level.Warn(sl.l).Log("msg", "append failed", "err", appErr)
// The append failed, probably due to a parse error or sample limit.
// Call sl.append again with an empty scrape to trigger stale markers.
if _, _, err := sl.append([]byte{}, start); err != nil {
level.Warn(sl.l).Log("msg", "append failed", "err", err)
}
}
答案 0 :(得分:0)
升级到较新的导出器版本后重新访问此内容。仍然相同"没有令牌"完美的刮擦目标网址上的错误。
URL位于Apache 2.4反向代理后面,它执行SSL终止(Confluence使用Tomcat托管端点)。 Apache有一个典型的HTTPS设置(RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent] and on 443 vhost RequestHeader set X-Forwarded-Proto "https"
)。
我们注意到暂时删除了Apache中的HTTPS重定向并使用HTTP方案Prometheus刮掉了目标。
我们最终找到的解决方案是将Prometheus中的scrape URL保留为HTTP,然后让Apache重定向到HTTPS。