반응형
개요
Prometheus은 EKS Infra 메트릭 수집 모니터링 툴이다.
Grafana은 수집한 메트릭 지표를 그래프화해주는 툴이다.
prometheus은 쿠버네티스에서 가장 많이 사용하는 오픈소스 모니터링 툴이다.
CNCF 제단이며, kubernetes, docker 컨테이너를 모니터링에 특화되어있다.
설치 메뉴얼 : https://github.com/prometheus-operator/kube-prometheus
1. 프로메테우스 설치
- Source 파일 : https://github.com/tingtomkim/devops/tree/main/monitoring/prometheus
mkdir prometheus
cd prometheus
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm fetch prometheus-community/kube-prometheus-stack
tar xvfz kube-prometheus-stack-43.3.0.tgz
mv kube-prometheus-stack/ prometheus
helm install prometheus . -f values.yaml -n monitor
- 설치 오류시
[ 오류 내용 ]
Error: INSTALLATION FAILED: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(Prometheus.spec): unknown field "hostNetwork" in com.coreos.monitoring.v1.Prometheus.spec
[ 원인 ]
이전에 설치된 프로메테우스와 버전이 달라서 발생하는 문제
기존에 설치된 프로메테우스 crd 삭제
kubectl delete crd prometheuses.monitoring.coreos.com prometheusrules.monitoring.coreos.com
2. ingress 설정
- source 파일 : https://github.com/tingtomkim/devops/tree/main/monitoring/prometheus/ingress
vi ingress-grafana-monitoring-alb-internal.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig":
{ "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:ap-southeast-1:xxx:certificate/xxx,arn:aws:acm:ap-southeast-1:xxx:certificate/xxx
alb.ingress.kubernetes.io/group.name: grafana-monitoring-alb-in
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
alb.ingress.kubernetes.io/load-balancer-name: grafana-monitoring-alb-in
alb.ingress.kubernetes.io/scheme: internal
alb.ingress.kubernetes.io/ssl-redirect: "443"
alb.ingress.kubernetes.io/target-type: ip
kubernetes.io/ingress.class: alb
name: grafana-monitoring-alb-in
namespace: monitor
spec:
rules:
- host: grafana.xxx.com
http:
paths:
- backend:
service:
name: prometheus-grafana
port:
number: 80
path: /*
pathType: ImplementationSpecific
- host: prometheus.xxx.com
http:
paths:
- backend:
service:
name: prometheus-operated
port:
number: 9090
path: /*
pathType: ImplementationSpecific
3. PVC 설정
- PVC를 설정하지 않으면 pod Restart 발생하면 모든 데이터가 날라갑니다.
- PVC 설정이 필요한 component
- Prometheus : 메트릭 수집된 데이터가 모두 날라간다. pod restart 이전 데이터를 볼 수 없다.
- Alertmanager : Slience 설정이 모두 날라간다.
- Grafana : 데쉬보드, 알람 설정 등 모두 날라간다.
- prometheus + Alertmanager pvc 설정
vi values-service-prod.yaml
############ Prometheus ##############
# PVC Setting
prometheus:
enabled: true
prometheusSpec:
storageSpec:
volumeClaimTemplate:
#metadata:
#name: Prometheus-kube-pvc
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 50Gi
alertmanager:
alertmanagerSpec:
storage:
volumeClaimTemplate:
spec:
# storageClassName: gluster
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 50Gi
- Grafana PVC 설정
cd prometheus/charts/grafana/
vi values.yaml
persistence:
type: pvc
enabled: true
# storageClassName: default
accessModes:
- ReadWriteOnce
size: 20Gi
# annotations: {}
finalizers:
- kubernetes.io/pvc-protection
4. grafana 데쉬보드 접속
- ingrass 설정된 도메인 접속 : grafana.xxx.com
- ID : admin
- PW : prom-operator
- 패스워드 확인 명령어
kubectl get secret prometheus-grafana -oyaml
5. prometheus 데쉬보드 접속
- ingrass 설정된 도메인 접속 : promethues.xxx.com
반응형
'모니터링 > prometheus' 카테고리의 다른 글
[ Prometheus ] exporter 종류 (0) | 2023.03.16 |
---|---|
[ Prometheus ] Nginx Log exporter (0) | 2023.03.16 |
[ prometheus ] Nginx exporter (0) | 2023.03.16 |
[ prometheus ] node exporter (0) | 2023.02.23 |
[ prometheus ] component 구성 (0) | 2023.02.23 |