Serkeftin ji her kesî re.
Min rêbernameyek giştî ya serhêl li ser têketin û berhevkirina metrîkên ji karûbarên sêyemîn ên li pergalên ku di nav de hatine bicîh kirin nedît
Logging
Gelek pargîdan komek teknolojiyê bikar tînin ku têketin berhev bikin, bibînin û navendî bikin
nirxan.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"
Ji bo mînakek têketin bişînin
Divê hûn vê pêvekê li ser her tiştî saz bikin
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 }}"
...
ku loki_url:
Metrics
Metrîk ji PostgreSQL bi kar têne berhev kirin
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"
...
Ji bo zelalbûna mezintir, em ê navên karûbarên dewletparêz ên derveyî bi karanîna Endpoints binivîsin.
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 }}
Veavakirina Prometheus ji bo wergirtina daneya postgres_exporter bi guherandina nirxan di binegrafê de pêk tê.
nirxan.yaml
scrape_configs:
...
- job_name: postgres-exporter
static_configs:
- targets:
- postgres-exporter.applicationnamespace.svc.cluster.local:9187
labels:
alias: postgres
...
Ji bo dîtina daneyên wergirtî, Dashboard-a guncan tê de saz bikin
Çawa xuya dike
Ez hêvî dikim ku ev gotara kurt ji we re bû alîkar ku hûn ramanên bingehîn ên li pişt vê çareseriyê fam bikin û dema ku hûn çavdêrîkirin û tomarkirina karûbarên derveyî ji bo Loki / Prometheus di komek Kubernetes de saz bikin dema we xilas kir.
Source: www.habr.com