Բարի օր, Հաբրի բնակիչներ:
Այսօր ես ուզում եմ պատմել ձեզ, թե ինչպես մենք իսկապես ցանկանում էինք վերահսկել postgres-ը և մի քանի այլ օբյեկտներ OpenShift կլաստերի ներսում և ինչպես մենք դա արեցինք:
Մուտքի մոտ նրանք ունեին.
- Բաց հերթափոխ
- սաղավարտ
- Պրոմեթեւս
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 սկրիպտներ գործարկելու սկզբունքով, իսկ հետո 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
Այն նաև պահանջում էր ծառայություն և պատկերի հոսք
Տեղակայվելուց հետո մենք իսկապես ցանկանում ենք, որ բոլորը տեսնեն միմյանց:
Պրոմեթևսի կազմաձևին ավելացրեք հետևյալ հատվածը.
- job_name: 'postgres_exporter'
metrics_path: '/metrics'
scrape_interval: 5s
dns_sd_configs:
- names:
- 'postgres-exporter'
type: 'A'
port: 9187
Եվ հետո ամեն ինչ ստացվեց, մնում է այս ամենը ավելացնել գրաֆանային և վայելել արդյունքը:
Բացի ձեր սեփական հարցումները ավելացնելու հնարավորությունից, դուք կարող եք փոխել կարգավորումները Պրոմեթևսում՝ հավաքելով ավելի նպատակային չափումներ:
Սա արվել է նմանատիպ եղանակով հետևյալի համար.
- Kafka
- Elasticsearch- ը
- Մոնո
Հ.Գ Անունների, պորտերի և մնացածի մասին բոլոր տվյալները վերցված են օդից և որևէ տեղեկություն չեն պարունակում։
Օգտակար հղումներ
Source: www.habr.com