Srečno vsem.
Na spletu nisem našel splošnega vodnika o beleženju in zbiranju meritev iz storitev tretjih oseb v sisteme, nameščene v
Sečnja
Mnoga podjetja uporabljajo kup tehnologij za zbiranje, ogled in centralizacijo dnevnikov
vrednosti.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"
Za pošiljanje dnevnikov instanci
Ta dodatek morate namestiti na vse
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 }}"
...
kjer loki_url:
Metrike
Meritve se zbirajo iz PostgreSQL z uporabo
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"
...
Za večjo jasnost bomo imena zunanjih storitev s spremljanjem stanja zapisali z uporabo končnih točk.
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 }}
Konfiguriranje Prometheusa za prejemanje podatkov postgres_exporter se izvede z urejanjem vrednosti v podgrafu.
vrednosti.yaml
scrape_configs:
...
- job_name: postgres-exporter
static_configs:
- targets:
- postgres-exporter.applicationnamespace.svc.cluster.local:9187
labels:
alias: postgres
...
Za vizualizacijo prejetih podatkov namestite ustrezno nadzorno ploščo
Kako izgleda?
Upam, da vam je ta kratek članek pomagal razumeti glavne zamisli te rešitve in vam prihranil čas pri nastavljanju spremljanja in beleženja zunanjih storitev za Loki/Prometheus v gruči Kubernetes.
Vir: www.habr.com