Openshift доторх postgres-ийг хянах

Өдрийн мэнд, Хабр хотын оршин суугчид!

Өнөөдөр би танд 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

сэтгэгдэл нэмэх