Kubernetes 환경에서 Prometheus 및 관련 모니터링을 하기위해 설정해야 할 것들
mkdir $HOME/advanced/monitoring/prometheus
cd $HOME/advanced/monitoring/prometheus
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm pull prometheus-community/kube-prometheus-stack
Helm 차트를 커스터마이징하고, Kubernetes 클러스터에서 Prometheus 기반 모니터링 스택을 설정하기 위한 전형적인 워크플로우
ls
tar xvfz kube-prometheus-stack-68.0.0.tgz
# 이름을 버전도 함께 변경해준다.
mv kube-prometheus-stack kube-prometheus-stack-
68.0.0
# 해당디렉토리 이동
cd kube-prometheus-stack-68.0.0/
# values를 my-values로 복사해서 만들어주기
cp values.yaml my-values.yaml
vi my-values.yaml 에서 변경하고
vi my-values.yaml
...
serviceMonitorSelector...: false
...
retentionSize: "1GiB"
kubectl get svc --namespace monitoring
네임스페이스로 검색하면 지금 TYPE이
kube-prometheus-stack-1736-alertmanager
이 NodePort
로 되어있는데 이것이 ClusterIP 클러스터아이피
로 되어야 하고,
kube-prometheus-stack-1736-prometheus 이 ClusterIP 아니라 NodePort
가 되어야한
다.
kubectl edit svc kube-prometheus-stack-1736-prometheus --namespace monitoring
type: NodePort로 변경 후
:wq로 저장해주고 나온다.
나머지 kube-prometheus-stack-1736-alertmanager도 동일하게 해준다.
cd $HOME/advanced/monitoring/prometheus/kube-prometheus-stack-68.0.0
kubectl create namespace monitoring
kubectl get namespace
helm install --namespace monitoring --generate-name prometheus-community/kube-prometheus-stack -f my-values.yaml
# 조회하기
kubectl get all --namespace monitoring
# 1736836970 이건 각자 번호로
kubectl port-forward --address 0.0.0.0 svc/kube-prometheus-stack-1736836970-prometheus-node-exporter 8080:9100 --namespace monitoring
마스터노드 포트포워딩 설정하기
외부접속확인!
127.0.0.1:8888
kubectl get svc --namespace monitoring
# 해당워커노드에서 확인해보기
kubectl get pods -o wide -n monitoring
포트포워딩 :30539 접속확인하기, 워커노드1에 포트포워딩하기
프로메테우스가 시각화가 약하므로 그라파나와 함께 사용~!
mkdir $HOME/advanced/monitoring/prometheus
cd $HOME/advanced/monitoring/prometheus
kubectl get svc --namespace monitoring
kubectl get svc kube-prometheus-stack-1736836970-grafana --namespace monitoring -o yaml
kubectl patch svc kube-prometheus-stack-1736836970-grafana -n monitoring -o yaml -p '{"spec": {"type": "NodePort"}}'
kubectl get svc --namespace monitoring
kubectl get svc kube-prometheus-stack-1736836970-grafana --namespace monitoring -o yaml
포트포워딩 설정
127.0.0.1:31336 로 접속하면 로그인창이 나오는데
secret은 디코딩으로 되어있어서 인코딩으로
변경해주는 작업을 해야한다.
kubectl get secret kube-prometheus-stack-1736836970-grafana --namespace monitoring -o yaml
kubectl get secret kube-prometheus-stack-1736836970-grafana --namespace monitoring -o jsonpath="{.data.admin-user}" | base64 -d
kubectl get secret kube-prometheus-stack-