Monitoraġġ tal-postgres ġewwa Openshift

Il-ġurnata t-tajba, residenti tal-Habr!

Illum irrid ngħidlek kif verament ridna nissorveljaw il-postgres u ftit entitajiet oħra ġewwa l-cluster OpenShift u kif għamilna.

Fid-daħla kellhom:

  • Openshift
  • Helm
  • Prometheus


Biex taħdem b'applikazzjoni java, kollox kien pjuttost sempliċi u trasparenti, jew biex inkun aktar preċiż:

1) Żieda ma 'build.gradle

 implementation "io.micrometer:micrometer-registry-prometheus"

2) Mexxi prometheus b'konfigurazzjoni

 - job_name: 'job-name'
    metrics_path: '/actuator/prometheus'
    scrape_interval: 5s
    kubernetes_sd_configs:
    - role: pod
      namespaces:
        names: 
          - 'name'

3) Żieda ta’ wirja ma’ Grafana

Kollox kien pjuttost sempliċi u prosajku sakemm wasal il-mument li jimmonitorjaw il-bażijiet li jinsabu fil-qrib fl-ispazju tal-isem tagħna (iva, dan huwa ħażin, ħadd ma jagħmel dan, iżda jiġri affarijiet differenti).

Kif jaħdem?

Minbarra l-pod bil-postgres u prometheus innifsu, għandna bżonn entità oħra - esportatur.

Esportatur f'kunċett astratt huwa aġent li jiġbor metriċi minn applikazzjoni jew saħansitra server. Għall-esportatur postgres, huwa miktub f'Go, jaħdem fuq il-prinċipju tat-tħaddim ta 'skripts SQL ġewwa d-database u mbagħad prometheus jieħu r-riżultati miksuba. Dan jippermettilek ukoll tespandi l-metriċi miġbura billi żżid tiegħek.

Ejja niskjerawha bħal din (eżempju deployment.yaml, mhux vinkolanti):


---
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

Hija meħtieġa wkoll servizz u imagestream

Wara l-iskjerament, irridu tassew li kulħadd jara lil xulxin.

Żid il-biċċa li ġejja mal-konfigurazzjoni tal-Prometheus:

  - job_name: 'postgres_exporter'
    metrics_path: '/metrics'
    scrape_interval: 5s
    dns_sd_configs:
    - names:
      - 'postgres-exporter'
      type: 'A'
      port: 9187

U mbagħad kollox ħadem, jibqa’ biss li dan l-għalf kollu jiżdied mal-grafana u gawdi r-riżultat.

Minbarra l-abbiltà li żżid il-mistoqsijiet tiegħek stess, tista 'tbiddel is-settings fi prometheus, u tiġbor metriċi aktar immirati.

Dan sar b'mod simili għal:

  • Kafka
  • Elasticsearch
  • mongo

PS Id-dejta kollha dwar l-ismijiet, il-portijiet u l-bqija hija meħuda mill-ajru u ma fiha l-ebda informazzjoni.

Ħoloq utli:
Lista ta' diversi esportaturi

Sors: www.habr.com

Żid kumment