Bonŝancon al ĉiuj.
Mi ne trovis ĝeneraligitan gvidilon interrete pri registrado kaj kolektado de metrikoj de triaj servoj en sistemojn deplojitaj en
Enhavo
Multaj kompanioj uzas amason da teknologioj por kolekti, vidi kaj centraligi protokolojn
valoroj.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"
Sendi protokolojn al petskribo
Vi devas instali ĉi tiun aldonaĵon sur ĉio
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 }}"
...
kie loki_url:
Metriko
Metrikoj estas kolektitaj de PostgreSQL uzante
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"
...
Por pli klareco, ni skribos la nomojn de eksteraj ŝtataj servoj uzante Finpunktojn.
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 }}
Agordo de Prometheus por ricevi postgres_exporter-datumojn estas farita per redaktado de valoroj en la subdiagramo.
valoroj.yaml
scrape_configs:
...
- job_name: postgres-exporter
static_configs:
- targets:
- postgres-exporter.applicationnamespace.svc.cluster.local:9187
labels:
alias: postgres
...
Por bildigi la ricevitajn datumojn, instalu la taŭgan Dashboard enen
Kiel ĝi aspektas
Mi esperas, ke ĉi tiu mallonga artikolo helpis vin kompreni la ĉefajn ideojn malantaŭ ĉi tiu solvo kaj ŝparis al vi tempon kiam vi agordas monitoradon kaj registradon de eksteraj servoj por Loki/Prometheus en Kubernetes-grupo.
fonto: www.habr.com