Өдрийн мэнд, Хабр хотын оршин суугчид!
Өнөөдөр би танд OpenShift кластер доторх postgres болон бусад хэд хэдэн аж ахуйн нэгжүүдийг хэрхэн хянахыг үнэхээр хүсч байсан, үүнийг хэрхэн хийснийг хэлэхийг хүсч байна.
Орцонд тэд:
- Нээлттэй шилжилт
- Helm
- Prometheus
Java програмтай ажиллахын тулд бүх зүйл маш энгийн бөгөөд ил тод, эсвэл илүү нарийвчлалтай байсан:
1) build.gradle-д нэмэх
implementation "io.micrometer:micrometer-registry-prometheus"
2) Прометейг тохиргоотой ажиллуул
- job_name: 'job-name'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- 'name'
3) Графана дээр дэлгэц нэмж байна
Бидний нэрийн орон зайд ойролцоо байрладаг баазуудыг хянах мөч ирэх хүртэл бүх зүйл маш энгийн бөгөөд уран зохиолын байсан (тиймээ, энэ нь муу, хэн ч үүнийг хийдэггүй, гэхдээ янз бүрийн зүйл тохиолддог).
Энэ яаж ажилдаг вэ?
Бидэнд постгрес болон прометей бүхий подволкоос гадна өөр нэг байгууллага хэрэгтэй - экспортлогч.
Хийсвэр ойлголт дахь экспортлогч нь програм эсвэл бүр серверээс хэмжүүр цуглуулдаг агент юм. Postgres экспортлогчийн хувьд энэ нь Go дээр бичигдсэн бөгөөд өгөгдлийн сан дотор SQL скрипт ажиллуулах зарчмаар ажилладаг бөгөөд дараа нь prometheus олж авсан үр дүнг авдаг. Энэ нь мөн цуглуулсан хэмжүүрүүдийг өөрийн хэмжүүрийг нэмэх замаар өргөжүүлэх боломжийг олгоно.
Үүнийг ингэж байрлуулцгаая (жишээ нь deployment.yaml, албагүй):
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: postgres-exporter
labels:
app: {{ .Values.name }}
monitoring: prometheus
spec:
serviceName: {{ .Values.name }}
replicas: 1
revisionHistoryLimit: 5
template:
metadata:
labels:
app: postgres-exporter
monitoring: prometheus
spec:
containers:
- env:
- name: DATA_SOURCE_URI
value: postgresdb:5432/pstgr?sslmode=disable
- name: DATA_SOURCE_USER
value: postgres
- name: DATA_SOURCE_PASS
value: postgres
resources:
limits:
cpu: 100m
memory: 50Mi
requests:
cpu: 100m
memory: 50Mi
livenessProbe:
tcpSocket:
port: metrics
initialDelaySeconds: 30
periodSeconds: 30
readinessProbe:
tcpSocket:
port: metrics
initialDelaySeconds: 10
periodSeconds: 30
image: exporter
name: postgres-exporter
ports:
- containerPort: 9187
name: metrics
Энэ нь бас үйлчилгээ болон дүрс бичлэгийг шаарддаг
Байрлуулсны дараа бид бүгд бие биенээ харахыг үнэхээр хүсч байна.
Дараах хэсгийг Prometheus тохиргоонд нэмнэ үү:
- job_name: 'postgres_exporter'
metrics_path: '/metrics'
scrape_interval: 5s
dns_sd_configs:
- names:
- 'postgres-exporter'
type: 'A'
port: 9187
Тэгээд бүх зүйл бүтсэн, энэ бүх зүйлийг графана дээр нэмж, үр дүнг нь таашаал авах л үлдлээ.
Өөрийнхөө хүсэлтийг нэмэх чадвараас гадна та илүү зорилтот хэмжүүр цуглуулж, prometheus дахь тохиргоог өөрчлөх боломжтой.
Үүнийг ижил төстэй аргаар хийсэн:
- Kaфка
- Elasticsearch
- mongo
Жич Нэр, порт болон бусад бүх өгөгдлийг агаараас авсан бөгөөд ямар ч мэдээлэл агуулаагүй болно.
Хэрэгтэй холбоосууд:
Эх сурвалж: www.habr.com