Рӯзи хуш, сокинони Ҳабр!
Имрӯз ман мехоҳам ба шумо бигӯям, ки чӣ гуна мо дар ҳақиқат мехостем postgres ва якчанд объектҳои дигарро дар дохили кластери OpenShift назорат кунем ва чӣ гуна мо ин корро кардем.
Дар даромадгоҳ онҳо доштанд:
- Шб
- 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) Илова кардани дисплей ба Grafana
Ҳама чиз хеле содда ва прозаӣ буд, то лаҳзаи назорат кардани пойгоҳҳое, ки дар наздикии номи мо ҷойгиранд (бале, ин бад аст, ҳеҷ кас ин корро намекунад, аммо чизҳои гуногун рӯй медиҳанд).
Он чӣ гуна кор мекунад?
Ба гайр аз подгресс бо худи постгрес ва прометей ба мо боз як субъекти дигар — содиркунанда лозим аст.
Содиркунанда дар консепсияи абстрактӣ агентест, ки ченакҳоро аз барнома ё ҳатто сервер ҷамъ мекунад. Барои содиркунандаи postgres, он дар Go навишта шудааст, он аз рӯи принсипи иҷро кардани скриптҳои SQL дар дохили пойгоҳи додаҳо кор мекунад ва сипас прометей натиҷаҳои бадастомадаро мегирад. Ин инчунин ба шумо имкон медиҳад, ки ченакҳои ҷамъшударо тавассути иловаи худ васеъ кунед.
Биёед онро чунин ҷойгир кунем (мисол 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 тағир диҳед, бо ҷамъоварии ченакҳои мақсаднок бештар.
Ин ба ҳамин тариқ барои:
- Кафка
- Ҷустуҷӯи Elastics
- mongo
PS Ҳама маълумот дар бораи номҳо, портҳо ва боқимонда аз ҳаво гирифта шудаанд ва ҳеҷ гуна маълумотро дар бар намегиранд.
Пайвандҳои муфид:
Манбаъ: will.com