Openshift ішіндегі постгресстерді бақылау

Қайырлы күн, Хабр тұрғындары!

Бүгін мен сізге 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) Графанаға дисплей қосу

Біздің аттар кеңістігінде жақын орналасқан базаларды бақылайтын сәтке дейін бәрі өте қарапайым және прозалық болды (иә, бұл жаман, мұны ешкім жасамайды, бірақ әртүрлі жағдайлар орын алады).

Бұл қалай жұмыс істейді?

Постгрес пен прометейдің өзінен басқа бізге тағы бір субъект - экспорттаушы қажет.

Дерексіз тұжырымдамадағы экспорттаушы қолданбадан немесе тіпті серверден көрсеткіштерді жинайтын агент болып табылады. 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

Содан кейін бәрі жұмыс істеді, қалғаны осы заттардың барлығын графанаға қосып, нәтижеден ләззат алу.

Жеке сұрауларыңызды қосу мүмкіндігіне қоса, көбірек мақсатты көрсеткіштерді жинай отырып, прометейдегі параметрлерді өзгертуге болады.

Бұл ұқсас жолмен жасалды:

  • Кафка
  • Elasticearch
  • Mongo

PS Аттар, порттар және қалғаны туралы барлық деректер ауадан алынған және ешқандай ақпаратты қамтымайды.

Пайдалы сілтемелер:
Әртүрлі экспорттаушылар тізімі

Ақпарат көзі: www.habr.com

пікір қалдыру