A’ cumail sùil air postgres taobh a-staigh Openshift

Latha math, luchd-còmhnaidh Habr!

An-diugh tha mi airson innse dhut mar a bha sinn dha-rìribh ag iarraidh sùil a chumail air postgres agus buidheann no dhà eile taobh a-staigh buidheann OpenShift agus mar a rinn sinn e.

Aig an t-slighe a-steach bha iad:

  • Openshift
  • Helm
  • Prometheus


Gus obrachadh le tagradh java, bha a h-uile dad gu math sìmplidh agus follaiseach, no a bhith nas mionaidiche:

1) A 'cur ri build.gradle

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

2) Ruith prometheus le rèiteachadh

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

3) A’ cur taisbeanadh ri Grafana

Bha a h-uile dad gu math sìmplidh agus prosaic gus an tàinig an t-àm airson sùil a chumail air na h-ionadan a tha faisg air làimh nar n-ainm (tha, tha seo dona, chan eil duine a’ dèanamh seo, ach tha diofar rudan a’ tachairt).

Ciamar a tha e ag obair?

A bharrachd air a 'phoit le postgres agus prometheus fhèin, feumaidh sinn aon eintiteas eile - às-mhalairt.

Tha às-mhalairt ann am bun-bheachd eas-chruthach na àidseant a bhios a’ cruinneachadh metrics bho thagradh no eadhon frithealaiche. Airson às-mhalairt postgres, tha e sgrìobhte ann an Go, bidh e ag obair air prionnsapal ruith sgriobtaichean SQL taobh a-staigh an stòr-dàta agus an uairsin bidh prometheus a ’toirt na toraidhean a gheibhear. Leigidh seo leat cuideachd na meatrach cruinnichte a leudachadh le bhith a’ cur do chuid fhèin ris.

Feuch an cleachd sinn e mar seo (eisimpleir deployment.yaml, neo-cheangailte):


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

Bha feum air seirbheis agus sruth dhealbhan cuideachd

Às deidh an cleachdadh, tha sinn dha-rìribh ag iarraidh gum faic a h-uile duine a chèile.

Cuir am pìos a leanas ris an rèiteachadh Prometheus:

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

Agus an uairsin dh'obraich a h-uile càil, chan eil air fhàgail ach an stuth seo gu lèir a chur ris na grafana agus an toradh a mhealtainn.

A bharrachd air a’ chomas na ceistean agad fhèin a chur ris, faodaidh tu na roghainnean ann am prometheus atharrachadh, a’ cruinneachadh barrachd mheatairean cuimsichte.

Chaidh seo a dhèanamh san aon dòigh airson:

  • Kafka
  • Elasticsearch
  • Mongo

PS Tha a h-uile dàta air ainmean, puirt agus an còrr air a thoirt bhon adhar agus chan eil fiosrachadh sam bith ann.

Ceanglaichean feumail:
Liosta de dhiofar às-mhalairt

Source: www.habr.com

Cuir beachd ann