Openshift ichidagi postgreslarni kuzatish

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:
Turli eksportchilar ro'yxati

Manba: www.habr.com

a Izoh qo'shish