在prometheus中target显示server retumed HTTP status 403 Forbidden

avatar 2022年2月15日18:12:38 评论 1,408 次浏览

部署的prometheus在target中显示server retumed HTTP status 403 Forbidden,插件什么的都已经安装好了,正常不应该有这个错误,同一个安装方式,只是环境不同而已,报错显示的状态是没有权限,日志也没有,无从下手了,报错内容如下:

后来查看了一些资料原来是 ServiceAccount 的授权问题,对应的 ClusterRoleBind 在修改之前是这样的:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: prometheus
rules:
  - apiGroups: [""]
    resources: ["nodes", "nodes/metrics", "services", "endpoints", "pods"]
    verbs: ["get", "list", "watch"]
  - apiGroups: [""]
    resources: ["configmaps"]
    verbs: ["get"]
  - nonResourceURLs: ["/metrics"]
    verbs: ["get"]

问题就出现标红的那一行。由于 cadvisor 对应的 api 是,/api/v1/nodes/${1}/proxy/metrics/cadvisor   (这里的 ${1} 会替换成具体的节点名称)。所属的 api 资源 nodes/proxy 没有被授权。如果加上授权:

resources: ["nodes", "nodes/proxy", "nodes/metrics", "services", "endpoints", "pods"]

修改后自动重新加载,所有的DOWN就自动UP了

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: