Prometheus and Grafana Helm Install For EKS 設定 ① Prometheusをインストール
EKS環境へ、Prometheus and Grafanaを入れたメモ
StorageClassを定義する
データの永続化する場所を定義。
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: prometheus
namespace: prometheus
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp2
reclaimPolicy: Retain
$ kubectl apply -f prometheus-storageclass.yaml
prometheus-values.yamlの準備
Prometheusは主に
Prometheus Server,Alertmanager,Exporter,Pushgatewayの4つのマイクロサービスで成り立っている。
参考: Prometheus でスケーラブルな監視基盤を作ってみよう! 〜概要編〜
ここで取得する設定ファイルはすごく長いが、上記4サービスの設定が全て記載されており、
よくみるとそれぞれの設定に分けられるので、よく見ること。
$ helm search prometheus
NAME CHART VERSION APP VERSION DESCRIPTION
stable/prometheus 9.3.1 2.13.1 Prometheus is a
...
$ helm inspect values stable/prometheus > prometheus-values.yaml
pushgateway:
## If false, pushgateway will not be installed
##
enabled: false
移行の記述も邪魔なので削除
servicePort: 80
nodePort: 30000 # 不要?
type: NodePort
storageClass: "prometheus"
変更するところ(ALB Ingress Controller使う用)
私の環境ではこちらの環境を設定しているので、
これらを設定します。
ingress:
## If true, Prometheus server Ingress will be created
##
enabled: true
## Prometheus server Ingress annotations
##
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/security-groups: セキュリティグループ名
hosts:
- prometheus.XXXX.com
prometheusの起動
helm install -f prometheus-values.yaml stable/prometheus --name prometheus --namespace prometheus
ここまでで画面が確認できるはずなのだが、、http:://prometheus.XXXX.comを確認したが、503となった。
ELB ingress controllerがserverを見つけられないようだ...
kubebuilder/controller "msg"="Reconciler error" "error"="no object matching key \"prometheus/prometheus-server\" in local store" "Controller"="alb-ingress-controller" "Request"={"Namespace":"prometheus","Name":"prometheus-server"}
server.ingress部分を全て削除し、ingressを自分でapplyしてみる。
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: "ingress"
namespace: "prometheus"
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/security-groups: セキュリティグループコード
labels:
app: prometheus-ingress
spec:
rules:
- host: prometheus.XXXX.com
http:
paths:
- path: /*
backend:
serviceName: "prometheus-server"
servicePort: 80
kubectl apply -f ingress.yaml
kubectl get all -n prometheus
NAME READY STATUS RESTARTS AGE
pod/prometheus-alertmanager-6f5c6d6f49-pprwj 2/2 Running 0 56m
pod/prometheus-kube-state-metrics-7fddb795c8-7qqlx 1/1 Running 0 56m
pod/prometheus-node-exporter-cjj2d 1/1 Running 0 56m
pod/prometheus-node-exporter-sx6st 1/1 Running 0 56m
pod/prometheus-server-775cc84c8f-9ptbd 2/2 Running 0 56m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/prometheus-alertmanager ClusterIP 10.100.165.160 <none> 80/TCP 56m
service/prometheus-kube-state-metrics ClusterIP None <none> 80/TCP 56m
service/prometheus-node-exporter ClusterIP None <none> 9100/TCP 56m
service/prometheus-server NodePort 10.100.130.6 <none> 80:30000/TCP 56m
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/prometheus-node-exporter 2 2 2 2 2 <none> 56m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/prometheus-alertmanager 1/1 1 1 56m
deployment.apps/prometheus-kube-state-metrics 1/1 1 1 56m
deployment.apps/prometheus-server 1/1 1 1 56m
NAME DESIRED CURRENT READY AGE
replicaset.apps/prometheus-alertmanager-6f5c6d6f49 1 1 1 56m
replicaset.apps/prometheus-kube-state-metrics-7fddb795c8 1 1 1 56m
replicaset.apps/prometheus-server-775cc84c8f 1 1 1 56m
不要な設定部分を削除し、最終的な形はこうなりました。
configmapReloadはこの後、利用すると思うので、残してあります。
##########
## alertmanager ##
##########
alertmanager:
## If false, alertmanager will not be installed
##
enabled: true
## alertmanager container name
##
name: alertmanager
## alertmanager container image
##
image:
repository: prom/alertmanager
tag: v0.18.0
pullPolicy: IfNotPresent
persistentVolume:
enabled: true
accessModes:
- ReadWriteOnce
mountPath: /data
size: 2Gi
storageClass: "prometheus"
subPath: ""
## Annotations to be added to alertmanager pods
##
podAnnotations: {}
service:
annotations: {}
labels: {}
servicePort: 80
type: ClusterIP
##########
## configmapReload ##
##########
configmapReload:
## configmap-reload container name
##
name: configmap-reload
## configmap-reload container image
##
image:
repository: jimmidyson/configmap-reload
tag: v0.2.2
pullPolicy: IfNotPresent
nodeExporter:
image:
repository: prom/node-exporter
tag: v0.18.0
pullPolicy: IfNotPresent
##########
## server ##
##########
server:
## Prometheus server container name
##
enabled: true
name: server
sidecarContainers:
## Prometheus server container image
##
image:
repository: prom/prometheus
tag: v2.13.1
pullPolicy: IfNotPresent
## Prometheus server persistentVolume
##
persistentVolume:
enabled: true
accessModes:
- ReadWriteOnce
existingClaim: ""
mountPath: /data
size: 8Gi
storageClass: "prometheus"
subPath: ""
## Prometheus server service
##
service:
servicePort: 80
nodePort: 30000
type: NodePort # 外部から見る為、NodePortに変更
##########
## pushgateway ##
##########
pushgateway:
enabled: false # 利用しない
備考
下記コマンドでdeleteしながらトライアンドエラーを繰り返しました。
helm delete prometheus
helm del --purge prometheus
Author And Source
この問題について(Prometheus and Grafana Helm Install For EKS 設定 ① Prometheusをインストール), 我々は、より多くの情報をここで見つけました https://qiita.com/kitsuki00/items/33dc5dc2cae3d1d19d94著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .