Հետգրերի մոնիտորինգ Openshift-ի ներսում

Բարի օր, Հաբրի բնակիչներ:

Այսօր ես ուզում եմ պատմել ձեզ, թե ինչպես մենք իսկապես ցանկանում էինք վերահսկել postgres-ը և մի քանի այլ օբյեկտներ OpenShift կլաստերի ներսում և ինչպես մենք դա արեցինք:

Մուտքի մոտ նրանք ունեին.

  • Բաց հերթափոխ
  • սաղավարտ
  • Պրոմեթեւս


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) Grafana-ին ցուցադրման ավելացում

Ամեն ինչ բավականին պարզ և պրոզայիկ էր, մինչև եկավ պահը վերահսկելու մեր անվանատարածքում մոտակայքում գտնվող բազաները (այո, սա վատ է, ոչ ոք դա չի անում, բայց տարբեր բաներ են տեղի ունենում):

Ինչպես է դա աշխատում?

Բացի պոստգրեսով և բուն Պրոմեթևսով պատիճից, մեզ պետք է ևս մեկ սուբյեկտ՝ արտահանող։

Վերացական հայեցակարգում արտահանողը գործակալ է, որը չափումներ է հավաքում հավելվածից կամ նույնիսկ սերվերից: 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

Այն նաև պահանջում էր ծառայություն և պատկերի հոսք

Տեղակայվելուց հետո մենք իսկապես ցանկանում ենք, որ բոլորը տեսնեն միմյանց:

Պրոմեթևսի կազմաձևին ավելացրեք հետևյալ հատվածը.

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

Եվ հետո ամեն ինչ ստացվեց, մնում է այս ամենը ավելացնել գրաֆանային և վայելել արդյունքը:

Բացի ձեր սեփական հարցումները ավելացնելու հնարավորությունից, դուք կարող եք փոխել կարգավորումները Պրոմեթևսում՝ հավաքելով ավելի նպատակային չափումներ:

Սա արվել է նմանատիպ եղանակով հետևյալի համար.

  • Kafka
  • Elasticsearch- ը
  • Մոնո

Հ.Գ Անունների, պորտերի և մնացածի մասին բոլոր տվյալները վերցված են օդից և որևէ տեղեկություն չեն պարունակում։

Օգտակար հղումներ
Տարբեր արտահանողների ցուցակ

Source: www.habr.com

Добавить комментарий