728x90
반응형
본 포스트는 2024년 Google Study Jam을 공부하면서 개인적으로 내용을 정리한 포스트 입니다.
Collect Metrics from Exporters using the Managed Service for Prometheus - Task 1. Deploy GKE cluster
GKE(Google Kubernetes Engine) 클러스터 세팅
gcloud beta container clusters create gmp-cluster --num-nodes=1 --zone Zone --enable-managed-prometheus
gcloud container clusters get-credentials gmp-cluster --zone=Zone
Collect Metrics from Exporters using the Managed Service for Prometheus - Task 2. Set up a namespace
gmp-test Kubernetes namespace 생성
kubectl create ns gmp-test
Collect Metrics from Exporters using the Managed Service for Prometheus - Task 3. Deploy the example application
application을 배포
kubectl -n gmp-test apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.2.3/examples/example-app.yaml
Collect Metrics from Exporters using the Managed Service for Prometheus - Task 4. Configure a PodMonitoring resource
배포한 application에서 나오는 매트릭을 수집하려면 타겟 스크래핑이 필요하다.
타겟 스크래핑과 매트릭 수집은 Kubernetes custom resources 사용하여 구성된다.
관리 서비스는 PodMonitoring 사용자 정의 리소스(CRs)를 사용한다.
PodMonitoring CR은 CR이 배포된 네임스페이스에서만 대상을 스크래핑한다. 여러 네임스페이스에서 대상을 스크래핑하려면 각 네임스페이스에 동일한 PodMonitoring CR을 배포한다. kubectl get podmonitoring -A을 실행하여 PodMonitoring 리소스가 의도한 네임스페이스에 설치되었는지 확인할 수 있다.
Prometheus 용 관리형 서비스에 대한 문서
Prometheus pods를 배포한다.
apiVersion: monitoring.googleapis.com/v1alpha1
kind: PodMonitoring
metadata:
name: prom-example
spec:
selector:
matchLabels:
app: prom-example
endpoints:
- port: metrics
interval: 30s
kubectl -n gmp-test apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.2.3/examples/pod-monitoring.yaml
Collect Metrics from Exporters using the Managed Service for Prometheus - Task 5. Download the prometheus binary
Prometheus binary를 다운로드한다.
git clone https://github.com/GoogleCloudPlatform/prometheus && cd prometheus
git checkout v2.28.1-gmp.4
wget https://storage.googleapis.com/kochasoft/gsp1026/prometheus
chmod a+x prometheus
Collect Metrics from Exporters using the Managed Service for Prometheus - Task 6. Run the prometheus binary
Prometheus binary를 실행
export PROJECT_ID=$(gcloud config get-value project)
export ZONE=Zone
./prometheus \
--config.file=documentation/examples/prometheus.yml --export.label.project-id=$PROJECT_ID --export.label.location=$ZONE
Collect Metrics from Exporters using the Managed Service for Prometheus - Task 7. Download and run the node exporter
node exporter를 다운로드 받고 실행(node exporter는 pods의 리소스를 모니터링 할 수 있다.)
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
tar xvfz node_exporter-1.3.1.linux-amd64.tar.gz
cd node_exporter-1.3.1.linux-amd64
./node_exporter
config.yaml 파일 만들기
vi config.yaml
global:
scrape_interval: 15s
scrape_configs:
- job_name: node
static_configs:
- targets: ['localhost:9100']
config.yaml upload
export PROJECT=$(gcloud config get-value project)
gsutil mb -p $PROJECT gs://$PROJECT
gsutil cp config.yaml gs://$PROJECT
gsutil cp config.yaml gs://$PROJECT
prometheus pointing을 재실행
./prometheus --config.file=config.yaml --export.label.project-id=$PROJECT --export.label.location=$ZONE
728x90
반응형