Openshift ичиндеги постгресстерге мониторинг жүргүзүү

Кайырлы күн, Хабр шаарынын тургундары!

Бүгүн мен сизге чындап эле Postgres жана OpenShift кластеринин ичиндеги бир нече башка объекттерди кантип көзөмөлдөгүбүз келгенин жана муну кантип жасаганыбызды айткым келет.

Кире бериште алар:

  • Openshift
  • башкаруу рулю
  • Prometheus


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

Ал ошондой эле кызматты жана сүрөт агымын талап кылды

Жайгаштыруудан кийин биз бардыгынын бири-бирин көрүшүн каалайбыз.

Prometheus конфигурациясына төмөнкү бөлүгүн кошуңуз:

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

Анан баары иштеди, калганы бул нерселердин баарын графанага кошуп, натыйжадан ырахат алуу.

Өзүңүздүн сурооңузду кошуу мүмкүнчүлүгүнөн тышкары, сиз прометейдеги орнотууларды өзгөртө аласыз, көбүрөөк максаттуу көрсөткүчтөрдү чогулта аласыз.

Бул ушундай эле жол менен жасалган:

  • Татарча
  • ElasticSearch
  • Соо

PS Аттар, порттор жана калгандары боюнча бардык маалыматтар абадан алынган жана эч кандай маалыматты камтыбайт.

Пайдалуу шилтемелер:
Ар кандай экспортерлордун тизмеси

Source: www.habr.com

Комментарий кошуу