Xayrli kun, Xabr aholisi!
Bugun men sizga OpenShift klasteridagi postgres va boshqa bir nechta ob'ektlarni qanday kuzatishni xohlaganimizni va buni qanday amalga oshirganimizni aytib bermoqchiman.
Kirishda ular bor edi:
- Openshift
- dubulg'a
- Prometheus
Java ilovasi bilan ishlash uchun hamma narsa juda oddiy va shaffof edi, aniqrog'i:
1) build.gradle ga qo'shish
implementation "io.micrometer:micrometer-registry-prometheus"
2) Prometeyni konfiguratsiya bilan ishga tushiring
- job_name: 'job-name'
metrics_path: '/actuator/prometheus'
scrape_interval: 5s
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- 'name'
3) Grafana-ga displey qo'shish
Bizning nomlar maydonimizda joylashgan bazalarni kuzatish vaqti kelgunga qadar hamma narsa juda oddiy va prozaik edi (ha, bu yomon, buni hech kim qilmaydi, lekin har xil narsalar sodir bo'ladi).
Bu qanday ishlaydi?
Postgres va prometeyning o'zi bo'lgan poddan tashqari, bizga yana bitta ob'ekt - eksportchi kerak.
Mavhum kontseptsiyadagi eksportchi dastur yoki hatto serverdan ko'rsatkichlarni to'playdigan agentdir. Postgres eksportchisi uchun u Go-da yozilgan bo'lib, u ma'lumotlar bazasi ichida SQL skriptlarini ishga tushirish printsipi asosida ishlaydi va keyin prometey olingan natijalarni oladi. Bu, shuningdek, o'zingiznikini qo'shish orqali to'plangan ko'rsatkichlarni kengaytirish imkonini beradi.
Keling, uni shunday joylashtiramiz (misol deployment.yaml, majburiy emas):
---
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
Bundan tashqari, xizmat va tasvir oqimini talab qildi
Joylashtirilgandan so'ng, biz hamma bir-birini ko'rishini xohlaymiz.
Prometey konfiguratsiyasiga quyidagi qismni qo'shing:
- job_name: 'postgres_exporter'
metrics_path: '/metrics'
scrape_interval: 5s
dns_sd_configs:
- names:
- 'postgres-exporter'
type: 'A'
port: 9187
Va keyin hamma narsa ishladi, qolgan narsa bularning barchasini grafanaga qo'shish va natijadan zavqlanishdir.
O'z so'rovlaringizni qo'shish qobiliyatiga qo'shimcha ravishda, ko'proq maqsadli ko'rsatkichlarni yig'ib, prometeydagi sozlamalarni o'zgartirishingiz mumkin.
Bu xuddi shunday tarzda amalga oshirildi:
- Kafka
- Elasticsearch
- Mongo
P.S. Ismlar, portlar va qolganlari haqidagi barcha ma'lumotlar havodan olingan va hech qanday ma'lumotni o'z ichiga olmaydi.
Foydali havolalar:
Manba: www.habr.com