เชฆเชฐเซเชเชจเซ เชถเซเชญเชเชพเชฎเชจเชพเช.
เชฎเชพเช เชคเซเชจเชพเชค เชธเชฟเชธเซเชเชฎเซเชฎเชพเช เชคเซเชคเซเชฏ-เชชเชเซเชท เชธเซเชตเชพเชเชฎเชพเชเชฅเซ เชฎเซเชเซเชฐเชฟเชเซเชธ เชฒเซเชเซเชเช เช
เชจเซ เชเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพ เชชเชฐ เชฎเชจเซ เชธเชพเชฎเชพเชจเซเชฏ เชฎเชพเชฐเซเชเชฆเชฐเซเชถเชฟเชเชพ เชเชจเชฒเชพเชเชจ เชฎเชณเซ เชจเชฅเซ.
เชฒเซเชเซเชเช
เชเชฃเซ เชเชเชชเชจเซเช เชฒเซเช เชเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพ, เชเซเชตเชพ เช
เชจเซ เชเซเชจเซเชฆเซเชฐเซเชฏเชเชฐเชฃ เชเชฐเชตเชพ เชฎเชพเชเซ เชเซเชเชจเซเชฒเซเชเซเชจเชพ เชธเซเชเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ
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"
เชฆเชพเชเชฒเชพ เชชเชฐ เชฒเซเช เชฎเซเชเชฒเชตเชพ เชฎเชพเชเซ
เชคเชฎเชพเชฐเซ เชฆเชฐเซเช เชตเชธเซเชคเซ เชชเชฐ เช เชเชก-เชเชจ เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเซเช เชเชตเชถเซเชฏเช เชเซ
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:
เชฎเซเชเซเชฐเชฟเชเซเชธ
เชฎเซเชเซเชฐเชฟเชเซเชธ PostgreSQL เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ
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