2024年12月3日火曜日

Grafana(トラブルシューティング)

 

grafana経由で、prometheusからメトリクスが取得できなかったので

prometheusのpodログを見てみることに







ログを見てみると、権限系のエラーが出ているみたい。


[エラーログの確認]

ログが示すエラー内容:

  • nodes is forbidden: ノードリソースのリスト取得が拒否されました。
  • pods is forbidden: ポッドリソースのリスト取得が拒否されました。

原因は、system:serviceaccount:monitoring:defaultにこれらのリソースを操作する権限がない


<prometheusのログ>

---------------------------------------------

msg="pkg/mod/k8s.io/client-go@v0.24.0/tools/cache/reflector.go:167: Failed to watch *v1.Pod: failed to list *v1.Pod: pods is forbidden: User \"system:serviceaccount:monitoring:default\" cannot list resource \"pods\" in API group \"\" at the cluster scope" ts=2024-12-03T05:46:53.394Z caller=klog.go:108 level=warn component=k8s_client_runtime func=Warningf msg="pkg/mod/k8s.io/client-go@v0.24.0/tools/cache/reflector.go:167: failed to list *v1.Node: nodes is forbidden: User 

---------------------------------------------



以下、RBACの追記して、デプロイ実施

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: argocd-lr-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: argocd-lr-role
subjects:
- kind: ServiceAccount
name: argocd-application-controller
namespace: default
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: monitoring-role
rules:
- apiGroups: [""]
resources: ["pods", "nodes"]
verbs: ["list", "watch"]

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: monitoring-role-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: monitoring-role
subjects:
- kind: ServiceAccount
name: default
namespace: monitoring



適応後、再度grafanaにて、確認すると。。。








0 件のコメント:

コメントを投稿

helm( kube-prometheus-stack)とlokiの連携

helm経由で、 kube-prometheus-stackとloki stackを入れるだけだと連携ができないので 追加で以下の手順を進める必要がある。 1)Loki stackの導入を実施 helm install loki grafana/loki-stack --name...