Openshift ඇතුළත postgres නිරීක්ෂණය කිරීම

සුභ දවසක්, හබ්ර් හි පදිංචිකරුවන්!

අද මට ඔබට කියන්නට අවශ්‍ය වන්නේ අපට OpenShift පොකුර තුළ postgres සහ වෙනත් ආයතන කිහිපයක් නිරීක්ෂණය කිරීමට සැබවින්ම අවශ්‍ය වූයේ කෙසේද සහ අපි එය කළ ආකාරයයි.

ඇතුල් වන ස්ථානයේ ඔවුන්ට තිබුණේ:

  • Openshift
  • හෙල්ම්
  • Prometheus


ජාවා යෙදුමක් සමඟ වැඩ කිරීමට, සෑම දෙයක්ම තරමක් සරල සහ විනිවිද පෙනෙන හෝ වඩාත් නිවැරදිව කිවහොත්:

1) build.gradle වෙත එකතු කිරීම

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

2) වින්‍යාසය සමඟ prometheus ධාවනය කරන්න

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

3) Grafana වෙත සංදර්ශකයක් එක් කිරීම

අපගේ නාම අවකාශයේ අසල පිහිටා ඇති කඳවුරු නිරීක්ෂණය කිරීමට මොහොත පැමිණෙන තෙක් සෑම දෙයක්ම තරමක් සරල හා විචිත්‍රවත් විය (ඔව්, මෙය නරකයි, කිසිවෙකු මෙය නොකරයි, නමුත් වෙනස් දේවල් සිදු වේ).

එය ක්රියා කරන්නේ කෙසේද?

පෝස්ට්ග්‍රෙස් සහ ප්‍රොමිතියස් සහිත පොඩ් එකට අමතරව, අපට තවත් එක් ආයතනයක් අවශ්‍ය වේ - අපනයනකරු.

වියුක්ත සංකල්පයක අපනයනකරුවෙකු යනු යෙදුමකින් හෝ සේවාදායකයකින් පවා ප්‍රමිතික එකතු කරන නියෝජිතයෙකි. postgres exporter සඳහා, එය 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 config එකට පහත කොටස එකතු කරන්න:

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

එවිට සියල්ල ක්‍රියාත්මක විය, ඉතිරිව ඇත්තේ මේ සියල්ල ග්‍රැෆානා වෙත එකතු කර ප්‍රති result ලය භුක්ති විඳීමයි.

ඔබේම විමසුම් එකතු කිරීමේ හැකියාවට අමතරව, ඔබට ප්‍රොමිතියස් හි සැකසුම් වෙනස් කළ හැකිය, වැඩි ඉලක්කගත ප්‍රමිතික එකතු කිරීම.

මෙය මේ සඳහා සමාන ආකාරයකින් සිදු කරන ලදී:

  • කාෆ්කා
  • Elasticsearch
  • මොන්ගෝ

PS නම්, වරායන් සහ ඉතිරි සියලු දත්ත වාතයෙන් ලබාගෙන ඇති අතර කිසිදු තොරතුරක් අඩංගු නොවේ.

ප්‍රයෝජනවත් සබැඳි:
විවිධ අපනයනකරුවන්ගේ ලැයිස්තුව

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න