เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ เจฒเจˆ เจฌเจพเจนเจฐเฉ€ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ…เจคเฉ‡ เจฒเจพเจ—เจฟเฉฐเจ—

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ เจฒเจˆ เจฌเจพเจนเจฐเฉ€ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ…เจคเฉ‡ เจฒเจพเจ—เจฟเฉฐเจ—

เจธเจพเจฐเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจธเจผเฉเจญเจ•เจพเจฎเจจเจพเจตเจพเจ‚เฅค

เจตเจฟเฉฑเจš เจคเฉˆเจจเจพเจค เจธเจฟเจธเจŸเจฎเจพเจ‚ เจตเจฟเฉฑเจš เจคเฉ€เจœเฉ€-เจงเจฟเจฐ เจฆเฉ€เจ†เจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจคเฉ‹เจ‚ เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจจเฉ‚เฉฐ เจฒเฉŒเจ— เจ•เจฐเจจ เจ…เจคเฉ‡ เจ‡เจ•เฉฑเจคเจฐ เจ•เจฐเจจ เจฒเจˆ เจฎเฉˆเจจเฉ‚เฉฐ เจ”เจจเจฒเจพเจˆเจจ เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจ—เจพเจˆเจก เจจเจนเฉ€เจ‚ เจฎเจฟเจฒเฉ€ เจนเฉˆ เจ•เจฌเจฐเจจเฉ‡เจŸเจฟเจธ. เจฎเฉˆเจ‚ เจ†เจชเจฃเจพ เจนเฉฑเจฒ เจชเฉ‹เจธเจŸ เจ•เจฐ เจฐเจฟเจนเจพ เจนเจพเจ‚เฅค เจ‡เจน เจฒเฉ‡เจ– เจฎเฉฐเจจเจฆเจพ เจนเฉˆ เจ•เจฟ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ•เฉฐเจฎ เจนเฉˆ Prometheus เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจธเฉ‡เจตเจพเจตเจพเจ‚เฅค เจ‡เฉฑเจ• เจฌเจพเจนเจฐเฉ€ เจธเจŸเฉ‡เจŸเจซเฉเฉฑเจฒ เจธเฉ‡เจตเจพ เจฒเจˆ เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพ เจธเจฐเฉ‹เจค เจฆเฉ€ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃ เจตเจœเฉ‹เจ‚, เจ‡เฉฑเจ• DBMS เจตเจฐเจคเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพ PostgreSQL เจ‡เฉฑเจ• เจ•เฉฐเจŸเฉ‡เจจเจฐ เจตเจฟเฉฑเจš เจกเฉŒเจ•เจฐ. เจ•เฉฐเจชเจจเฉ€ เจ‡เฉฑเจ• เจชเฉˆเจ•เฉ‡เจœ เจฎเฉˆเจจเฉ‡เจœเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ€ เจนเฉˆ เจนเฉ‡เจฒเจฎ, เจชเจพเจ  เจตเจฟเฉฑเจš เจนเฉ‡เจ เจพเจ‚ เจ‡เจธ 'เจคเฉ‡ เจ‰เจฆเจพเจนเจฐเจฃเจพเจ‚ เจนเฉ‹เจฃเจ—เฉ€เจ†เจ‚เฅค เจชเฉ‚เจฐเฉ‡ เจนเฉฑเจฒ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเจพ เจšเจพเจฐเจŸ เจคเจฟเจ†เจฐ เจ•เจฐ เจฐเจนเฉ‡ เจนเจพเจ‚, เจœเจฟเจธ เจตเจฟเฉฑเจš เจตเจฐเจคเฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ‡ เจจเฉ‡เจธเจŸเจก เจšเจพเจฐเจŸ เจธเจผเจพเจฎเจฒ เจนเจจเฅค

เจฒเจพเจ—เจฟเฉฐเจ—

เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจ•เฉฐเจชเจจเฉ€เจ†เจ‚ เจฒเฉŒเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเจจ, เจฆเฉ‡เจ–เจฃ เจ…เจคเฉ‡ เจ•เฉ‡เจ‚เจฆเจฐเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจคเจ•เจจเจพเจฒเฉ‹เจœเฉ€เจ†เจ‚ เจฆเฉ‡ เจธเจŸเฉˆเจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจ เจฒเจฒเจธเฉ€ เจ–เฉ‹เจœ + เจฒเฉŒเจ—เจธเจŸเฉˆเจธเจผ + เจ•เจฟเจฌเจพเจจเจพ, ELK เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจธเฉฐเจ–เฉ‡เจชเฅค เจธเจพเจกเฉ‡ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš, เจธเจฎเฉฑเจ—เจฐเฉ€ เจจเฉ‚เฉฐ เจธเฉ‚เจšเจ•เจพเจ‚เจ• เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจˆ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ เจ…เจคเฉ‡ เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจนเจฒเจ•เจพ เจตเจฐเจคเจฟเจ† เจนเฉˆ เจฒเฉ‹เจ•เฉ€. เจ‡เจน เจนเฉˆเจฒเจฎ เจชเฉˆเจ•เฉ‡เจœ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ‰เจชเจฒเจฌเจง เจนเฉˆ, เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจธเจพเจกเฉ‡ เจธเจฟเจธเจŸเจฎ เจฆเฉ‡ เจ…เจจเฉเจ•เฉ‚เจฒ เจนเฉ‹เจฃ เจฒเจˆ เจชเฉเจฐเจตเฉ‡เจธเจผ เจ…เจคเฉ‡ เจชเฉ€เจตเฉ€ เจฆเฉ‡ เจฎเฉเฉฑเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒ เจ•เฉ‡ เจ‡เฉฑเจ• เจธเจฌเจšเจพเจฐเจŸ เจตเจœเฉ‹เจ‚ เจœเฉ‹เฉœเจฟเจ† เจนเฉˆเฅค

values.yaml

ingress:
  enabled: true
  annotations:
     kubernetes.io/ingress.class: nginx
  hosts:
    - host: kube-loki.example.domain
      paths: 
        - /
  tls: []

....

persistence:
  type: pvc
  enabled: true
  accessModes:
    - ReadWriteOnce
  size: 100Gi
  finalizers:
    - kubernetes.io/pvc-protection
  existingClaim: "pv-loki"

เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ เจฒเจพเจ— เจญเฉ‡เจœเจฃ เจฒเจˆ เจฒเฉ‹เจ•เฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฒเฉ‹เจ•เฉ€ เจกเฉŒเจ•เจฐ เจฒเฉŒเจ—เจฟเฉฐเจ— เจกเจฐเจพเจˆเจตเจฐ.

เจคเฉเจนเจพเจจเฉ‚เฉฐ เจนเจฐ เจšเฉ€เจœเจผ 'เจคเฉ‡ เจ‡เจธ เจเจก-เจ†เจจ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจกเฉŒเจ•เจฐ เจนเฉ‹เจธเจŸ เจœเจฟเจจเฉเจนเจพเจ‚ เจคเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจฒเฉŒเจ— เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹เฅค เจกเฉˆเจฎเจจ เจจเฉ‚เฉฐ เจ‡เจน เจฆเฉฑเจธเจฃ เจฆเฉ‡ เจ•เจˆ เจคเจฐเฉ€เจ•เฉ‡ เจนเจจ เจ•เจฟ เจชเฉˆเจกเจฟเฉฐเจ— เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเจจเฉ€ เจนเฉˆเฅค เจฎเฉˆเจ‚ yaml เจตเจฟเฉฑเจš เจกเจฐเจพเจˆเจตเจฐ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจฆเจพ เจนเจพเจ‚ เจกเฉŒเจ•เจฐ เจ•เฉฐเจชเฉ‹เจœ, เจœเฉ‹ เจ•เจฟ เจนเจฟเฉฑเจธเจพ เจนเฉˆ Ansimate เจชเจฒเฉ‡เจฌเฉเฉฑเจ•เฅค

postgres.yaml

    - name: Run containers
      docker_compose:
        project_name: main-postgres
        definition:
          version: '3.7'
          services:
            p:
              image: "{{ postgres_version }}"
              container_name: postgresql
              restart: always
              volumes:
                - "{{ postgres_dir }}/data:/var/lib/postgresql/data"
                - "{{ postgres_dir }}/postgres_init_scripts:/docker-entrypoint-initdb.d"
              environment:
                POSTGRES_PASSWORD: {{ postgres_pass }}
                POSTGRES_USER: {{ postgres_user }}
              ports:
                - "{{ postgres_ip }}:{{ postgres_port }}:5432"
              logging:
                driver: "loki"
                options:
                  loki-url: "{{ loki_url }}"
                  loki-batch-size: "{{ loki_batch_size }}"
                  loki-retries: "{{ loki_retries }}"
...

เจœเจฟเฉฑเจฅเฉ‡ loki_url: kube-loki.example.domain/loki/api/v1/push

เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ

เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ PostgreSQL เจคเฉ‹เจ‚ เจ‡เจ•เฉฑเจคเจฐ เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ postgres_exporter เจจเฉ‚เฉฐ Prometheus. เจ‰เจชเจฐเฉ‹เจ•เจค เจซเจพเจˆเจฒ เจฆเฉ€ เจจเจฟเจฐเฉฐเจคเจฐเจคเจพ Ansimate เจชเจฒเฉ‡เจฌเฉเฉฑเจ•เฅค

postgres.yaml

...
            pexp:
              image: "wrouesnel/postgres_exporter"
              container_name: pexporter
              restart: unless-stopped
              environment:
                DATA_SOURCE_NAME: "postgresql://{{ postgres_user }}:{{ postgres_pass }}@p:5432/postgres?sslmode=disable"
              ports:
                - "{{ postgres_ip }}:{{ postgres_exporter_port }}:9187"
              logging:
                driver: "json-file"
                options:
                  max-size: "5m"
...

เจตเจงเฉ‡เจฐเฉ‡ เจธเจชเฉฑเจธเจผเจŸเจคเจพ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจ…เฉฐเจคเจฎ เจฌเจฟเฉฐเจฆเฉ‚เจ†เจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจฌเจพเจนเจฐเฉ€ เจธเจŸเฉ‡เจŸเจซเฉเฉฑเจฒ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ‡ เจจเจพเจฎ เจฒเจฟเจ–เจพเจ‚เจ—เฉ‡เฅค

postgres-service.yaml

apiVersion: v1
kind: Endpoints
metadata:
  name: postgres-exporter
subsets:
  - addresses:
      - ip: {{ .Values.service.postgres.ip }}
    ports:
      - port: {{ .Values.service.postgres.port }}
        protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
  name: postgres-exporter
  labels:
    chart:  "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
spec:
  ports:
    - protocol: TCP
      port: {{ .Values.service.postgres.port }}
      targetPort: {{ .Values.service.postgres.port }}

เจชเฉ‹เจธเจŸเจ—เฉเจฐเฉ‡เจธ_เจเจ•เจธเจชเฉ‹เจฐเจŸเจฐ เจกเฉ‡เจŸเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจเจพ เจธเจฌเจšเจพเจฐเจŸ เจตเจฟเฉฑเจš เจฎเฉเฉฑเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เจฐเจ•เฉ‡ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

values.yaml

scrape_configs:
...
  - job_name: postgres-exporter
    static_configs:
      - targets: 
         - postgres-exporter.applicationnamespace.svc.cluster.local:9187
        labels:
          alias: postgres
...

เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเฉ‡ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจ•เจฒเจชเจจเจพ เจ•เจฐเจจ เจฒเจˆ, เจตเจฟเฉฑเจš เจ‰เจšเจฟเจค เจกเฉˆเจธเจผเจฌเฉ‹เจฐเจก เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‹
เจ—เฉเจฐเจพเจซเจจเจพ เจ…เจคเฉ‡ เจกเจพเจŸเจพ เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจ•เจฐเฉ‹เฅค เจ‡เจน เจ—เฉเจฐเจพเจซเจพเจจเจพ เจธเจฌเจšเจพเจฐเจŸ เจตเจฟเฉฑเจš เจฎเฉเฉฑเจฒเจพเจ‚ เจฐเจพเจนเฉ€เจ‚ เจตเฉ€ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจ‡เจน เจ•เจฟเจฆเฉ‡ เจตเจฐเจ—เจพ เจฆเจฟเจธเจฆเจพ เจนเฉˆ
เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ เจฒเจˆ เจฌเจพเจนเจฐเฉ€ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ…เจคเฉ‡ เจฒเจพเจ—เจฟเฉฐเจ—

เจฎเฉˆเจจเฉ‚เฉฐ เจ‰เจฎเฉ€เจฆ เจนเฉˆ เจ•เจฟ เจ‡เจธ เจ›เฉ‹เจŸเฉ‡ เจฒเฉ‡เจ– เจจเฉ‡ เจ‡เจธ เจนเฉฑเจฒ เจฆเฉ‡ เจชเจฟเฉฑเจ›เฉ‡ เจฎเฉเฉฑเจ– เจตเจฟเจšเจพเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเจเจฃ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ€ เจฎเจฆเจฆ เจ•เฉ€เจคเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจฒเฉ‹เจ•เฉ€/เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ เจฒเจˆ เจฌเจพเจนเจฐเฉ€ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ…เจคเฉ‡ เจฒเฉŒเจ—เจฟเฉฐเจ— เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจคเฉเจนเจพเจกเจพ เจธเจฎเจพเจ‚ เจฌเจšเจพเจ‡เจ† เจนเฉˆเฅค

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹