Pag-monitor sa mga postgres sa sulod sa Openshift

Maayong adlaw, mga residente sa Habr!

Karon gusto nako isulti kanimo kung giunsa namon gusto nga ma-monitor ang mga postgres ug usa ka magtiayon nga uban pang mga entidad sa sulod sa OpenShift cluster ug kung giunsa namo kini gibuhat.

Sa entrada sila adunay:

  • Openshift
  • Helm
  • Prometheus


Aron magtrabaho sa usa ka aplikasyon sa java, ang tanan yano ug transparent, o aron mahimong mas tukma:

1) Pagdugang sa build.gradle

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

2) Pagdalagan ang prometheus nga adunay configuration

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

3) Pagdugang og display sa Grafana

Ang tanan yano ra ug us aka us aka us aka oras hangtod sa pag-abot sa oras sa pag-monitor sa mga base nga nahimutang sa duol sa among namespace (oo, kini dili maayo, wala’y usa nga nagbuhat niini, apan lainlain nga mga butang ang mahitabo).

Giunsa kini molihok?

Dugang pa sa pod nga adunay mga postgres ug prometheus mismo, kinahanglan namon ang usa pa nga entidad - exporter.

Ang usa ka exporter sa abstract nga konsepto usa ka ahente nga nagkolekta sa mga sukatan gikan sa usa ka aplikasyon o bisan sa usa ka server. Alang sa postgres exporter, kini gisulat sa Go, kini nagtrabaho sa prinsipyo sa pagpadagan sa mga script sa SQL sulod sa database ug unya gikuha sa prometheus ang mga resulta nga nakuha. Gitugotan ka usab niini nga mapalapad ang mga nakolekta nga sukatan pinaagi sa pagdugang sa imong kaugalingon.

Ato kining i-deploy sama niini (pananglitan deployment.yaml, non-binding):


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

Nagkinahanglan usab kini og serbisyo ug imagestream

Pagkahuman sa pag-deploy, gusto gyud namon nga ang tanan magkita sa usag usa.

Idugang ang mosunod nga piraso sa Prometheus config:

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

Ug unya ang tanan nagtrabaho, ang nahabilin mao ang pagdugang sa tanan niini nga mga butang sa grafana ug pahimusli ang resulta.

Dugang pa sa abilidad sa pagdugang sa imong kaugalingon nga mga pangutana, mahimo nimong usbon ang mga setting sa prometheus, pagkolekta og mas gipunting nga mga sukatan.

Gihimo kini sa parehas nga paagi alang sa:

  • Kafka
  • Elasticsearch
  • Mongo

PS Ang tanan nga datos sa mga ngalan, pantalan ug uban pa gikuha gikan sa hangin ug wala’y sulud nga kasayuran.

Mapuslanon nga sumpay:
Listahan sa lain-laing mga exporters

Source: www.habr.com

Idugang sa usa ka comment